on 30 April 2007
This book attempts to find the common ground between two differing software development methods: plan-driven and agile-driven. Plan-driven methods are based on strong engineering principles, with an emphasis on a well-defined and -documented process and, usually, a sequential "waterfall" approach of requirements, design, construction and deployment. Agile-driven methods are based on iterative delivery, with a focus on business-value to the customer rather than on the process of delivery itself. The authors seek to find the middle-ground between the two approaches and describe ways of defining which approach is suitable for which types of project.
After providing useful contrasts and similarities between agile- and plan-driven approaches, the authors summarise the following as key factors in the decision as to which approach to use in a particular project. These factors are:
- Size. Agile approaches discriminate towards small products and teams. Large products and teams will favour a plan-driven approach.
- Criticality - in the sense that failure of the system under design causes loss of life and/or large monetary loss. Projects of high criticality will favour a plan-driven approach.
- Personnel. Generally speaking, agile approaches require workers that are more highly skilled than plan-driven ones. The rationale is that in the latter, the development process is more highly proscribed and hence easier to learn.
- Dynamism. This factor relates to the stability of the project environment; where the business environment is highly dynamic and system requirements are rapidly changing, then agile-driven approach is favoured. In highly-stable environments, the additional overhead of putting in place the infrastructure to deal with rapid change may not be necessary.
- Culture. A factor that is often overlooked - maybe the most important one. If the team experience is one where it can adapt quickly to changing circumstances and is empowered to "get the job done" in a turbulent environment, then the agile approach is preferred. Conversely, if the team is more comfortable with clearly-defined job roles and procedures, then the plan-driven approach is favoured.
The authors summarise:
- Neither approach is a silver bullet, that is one approach will not be applicable in all situations.
- Each approach has project types where one will dominate the other.
- In future, a combined approach is more likely to be successful.
- Some methods already combine the best of both approaches.
- Experience has shown that it is better to start with simple method and build it up rather than start with a heavyweight method and tailor it down.
- While methods are important, more critical success factors will revolve around the management of people, value and expectations.
on 13 February 2009
Boehm and Turner cut through the hype and evangelical hysteria generated by the opposing camps of Agility versus Discipline.
For developers of large, critical and Software Intensive Systems-of-Systems (SISoS), ignore these gentlemen at your peril!