Roy Osherove
So how can you define agile development?
- Executable requirements. That is something that can be measured.
- Short iterations with simpler requirements. So 2 to 4 weeks in duration for each iteration resulting with a shippable product (may not actually release). With this the developer should be left alone with no interruptions.
- To help with short iterations is to have automated test and build tools.
- Have team based estimations.
- Nothing wrong with change, so be adaptable.
- Lots of verbal communications to define the requirement and then a small concise document is written.
- Customer has more responsibility - They can contact us at any time to talk about change / They are responsible for feature priority order / Customer involved in testing.
- A motto is "give value quick by priority".
All these definitions can be summarised into the agile manifesto which compares agile vs. standard methodologies:
- Individuals and interactions vs. processes and tools.
- Working software vs. documentation.
- Customer collaboration vs. contract negotiation.
- Responding to change vs. following a plan.
So with an agile approach, the team must always accept and prepare for things definitely changing by adopting an adaptive and more people oriented vs. a predictive and process oriented approach.
Extreme Programming (XP) and SCRUM are implementations of an agile approach;
- As per the definitions of agile above.
- Short daily meeting by team lead. Each developer has 5 mins to answer: What did you do yesterday? For accurate estimations. / What are you going to do today? For accurate estimations. / What is stopping you?
- Developers work individually on feature design but whole team reviews designs and then code in pairs.
- Helps reduce risk management as sharing of knowledge thorough paired coding and short iterations which everyone can understand.
Problems:
- Generally need experienced developers.
- Always need an active customer.
- Will require a few iterations to see benefits.
Remember it is just a mind set, be flexible yourselves and feel free to change / create your own agile approach that works for your own team.
Read the good agile / bad agile article.
Visual Studio Team System provides a SCRUM template.
No comments:
Post a Comment