Thursday, October 12, 2006

Agile and Discipline

Some critics equate agile methods with "hacking". They allege that employing agile methods is really about writing code without requirements, without planning, and without design. Contrary to what these critics allege, true agile methods involve planning, requirements, and design.

What differs from waterfall methods is that agile organizations practice these activities just-in-time. I.e., they plan, but they try not to invest a great deal of time on details that are likely to change. Same with requirements and design. Consequently, they have to constantly revisit and flesh out the details as development progresses. With waterfall methods, you try to complete detailed planning, requirements, and design as if there is little or no risk of them changing.

When you employ agile methods, there are constant temptations to lengthen iterations, put off getting feedback from users, put off revisiting requirements, and blow off writing tests first. Agile is not about hacking; in many ways it requires more discipline than waterfall.

1 comment :

John Dahle said...

Yep. I've come to the same conclusion myself. You can actually do more harm using agile if you don't think about your code as your foundation.