Let’s get Agile with it!

So you are finally convinced that it is time to develop this “Next Big Thing!”. Question is, what development method should you be looking at?

Well check out some of the key features of Agile Development and decide whether this is more suitable for your team or not. eWeek reports that the Microsoft Visual Studio 2008 (previously dubbed Orcas) development team employed the Agile process successfully in their recent development project. The article also notes that, Microsoft’s “patterns & practices” group has taken Agile to a whole different degree, even designing a workspace dedicated to agile development

So what is this buzzword?

Agile development helps teams minimize risk by developing software in short iterations. Each iteration results in basically an entire software project: including planning, requirements analysis, design, coding, testing, and documentation.”

As Scott Amber (of IBM Rational) rightfully notes, “…it is more of a cultural issue than a technological issue.” It is also worth noting that Agile development is not a goal, it is a means to becoming more effective.

Some key features of Agile Development:

  • close, daily cooperation between business people and developers – (eg. daily 10-minute pow-wows where everybody is brought up to speed with where things are and what needs to be done)
  • emphasize face-to-face communication over written documents
  • agile teams are located in single open culture offices (usually with no walls) called the “bullpen”
  • customer satisfaction by rapid, continuous delivery of useful software
  • working software is delivered frequently, at each iteration (within 1 to 4 weeks, not months)
  • working software is the principal  measure of progress
  • late changes in requirements are welcome
  • projects are built around motivated individuals, who should be trusted
  • continuous attention to technical excellence and good design
  • simplicity
  • self-organizing teams
  • regular adaptation to changing circumstances

When to choose an adaptive (“agile”) method over a predictive (“plan-driven”) method and vice versa:

Agile home ground:

  •  
    • Low criticality
    • Senior developers
    • Requirements change very often
    • Small number of developers
    • Culture that thrives on chaos

Plan-driven home ground:

  •  
    • High criticality
    • Junior developers
    • Requirements don’t change too often
    • Large number of developers
    • Culture that demands order
  • Check out this video  …”Why does Agile Software Development pay?”