Saturday, November 3, 2007

Balancing Agility and Discipline in Software Projects



























I have been an advocate of agile software development methodologies since 2001. Over the years, I have managed many projects using Extreme Programming and have observed my colleagues manage projects using agile and XP.

I came to notice that agile methodologies, offer no silver bullet to software engineering. One of the main risks of agile methodologies is the assumption that the customer will play a major role in the project by working closely together with the team. However, in practice, I have seen many situations where the customer is not willing to spend the effort of working together with the project team to make the project a success. I have also seen instances where the customer took advantage of the agility to push for more requirements into the project. These issues may not happen with all customers but these risks cannot be ignored (especially in some cultures).

I've started reading the book "Balancing Agility and Discipline" by Barry Boehm and Richard Turner. I'm into the second chapter, and already I am beginning to like this book. The book tries to find a middle path between agile and plan-driven software development. This is something I have always believed in. Instead of considering 2 extreme ends of software development methodologies, each claiming to be the answer to all questions, I believe, we need to understand the features of each approach that would be suitable for a given context and come up with the right mix of agility and discipline in each case.

I would like to quote the following from the book:
"If one has strong discipline without agility, the result is bureaucracy and stagnation. Agility without discipline is the unencumbered enthusiasm of a start-up company before it has to turn to profit"

I will post more thoughts as I continue to read the book.

More thoughts

No comments: