Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am a trainee in development sector. My Boss says that i should be an agile programmer.

I went through through the net and found some interesting things about agile programming. Being a newbee how should I start with agile? What should be my first step in Agile programming?

At present I am in pair programming. But it's not exactly pair programming as I am just watching what my co-developer is doing. I also wish to be an agile developer. Can you suggest a way for me stepwise?

I wish to develop myself and also my programming skills.

share|improve this question

closed as off-topic by gnat, Bart van Ingen Schenau, GlenH7, MichaelT, Dynamic Dec 8 '13 at 23:33

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – gnat, Bart van Ingen Schenau, GlenH7, MichaelT, Dynamic
If this question can be reworded to fit the rules in the help center, please edit the question.

That's a kind of weird statement. Is the team using an agile methodology? Is it possible the boss doesn't know what the term means? –  JohnFx Oct 3 '10 at 16:10
OT: But remember as this is a publically searchable site, that username or bio isn't all that smart. –  Rob Stevenson-Leggett Oct 3 '10 at 17:52
To be agile I recommend routine exercise and practice. :) Wait, that actually is a decent answer... –  mctylr Dec 31 '10 at 20:10
Do mention the company you work for so that I can avoid dropping my resume :) –  legomaker Jan 12 '11 at 9:36

4 Answers 4

Test Driven Development is a big part of being Agile. It doesn't take much, but makes one a much better programmer fast. It will teach you to write better-designed code, while making it more maintainable.

Also read Practices of an Agile Developer. alt text

share|improve this answer
Though I find the question (or let me say that boss) kinda strange.. this is a good start :) –  Shady M. Najib Oct 3 '10 at 17:13

There's a difference between following agile practice and being an agile programmer. Be careful with this distinction.

Have a read of this: http://steve-yegge.blogspot.com/2006/09/good-agile-bad-agile_27.html

Learning good practice, to test, and above all to automate as much as you can will make you more productive.

Thinking and caring about what you're doing is half the battle.

share|improve this answer

Before you start being an agile programmer, you must aim to be a good programmer and software engineer. You cannot be the former without the later. Worry about code structure (including metrics such as LCOM and cyclomatic complexity), good practices, requirement analysis, software engineering, documentation, problem solving skills, etc.

That statement your boss made really and honestly amounts to nothing. He's just juggling with buzzwords. The fact that they have you just watching someone code without you being able to really do anything (pair programming or not) indicates me that their understanding of agility is superficial at best.

All in all, avoid gluing yourself to buzzwords. In a perfect world, every project would be lean and agile. But, unlike the actual physical engineering disciplines, we are not even there to develop an engineering discipline, and many self-called agilists are anything but.

Stick to the fundamentals and be good at them. Then focus about agility and pragmatism.

share|improve this answer

I agree with Rob Stevenson-Leggett that there is a distinction, and I think between being a programmer and an agile programmer is a mindset change.

I am an agile programmer working for a company that is still trying to move from no process or standards to having something better in place, but they don't know where they are going, so there are some struggles at times as I see development differently.

For example, with agile, you should release often, so that the users can see what you are doing, and help to correct if it isn't what they want. That is different than waiting until all the specs are implemented and tested. I would prefer to get something done, then as I get some features finished re-release.

But this also requires good bug tracking, so the users, or someone that interacts with users, can submit bugs and see what the state of them are, good version control, ideally with at least nightly builds and peer-reviewed unit testing.

Unit tests should be reviewed, at least initially, because bad unit tests are worse than no tests. If I know there are no tests I approach the software differently, but if the unit tests are very poor then I may trust that the code was tested and run into more problems later.

To start becoming an agile developer think in terms of use cases or stories. When you talk with users, don't be technical, ask them what it is they will want. Pictures are useful and just walk through what they are doing, what they expect to see, how they want to interact. Then, don't go create reams of diagrams/charts, break it down into small subtasks, and then organize that into priorities. Also, find out what must be done for it to be of any use, then, when those parts are done, do your first release, or next release.

For example, I recently had a chat with a couple end-users where I asked "What kind of questions will you be asked to justify the cost of this software". I am looking for what should be measured. I don't care for them to get into details about storing IP addresses or how to track users, they just need to tell me what type of questions need to be answered, as they create reports, or their superiors are curious, as I can't give them the info if I don't know what to collect.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.