Tuesday, 7 November 2006

Tech Ed - Agile Methodology


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: