I have seen far too many large waterfall projects fail - people spend years defining what the market needs up front, but finally what they deliver comprehensively misses the mark (NetWare 4 or Windows Vista anyone?).
Even in smaller companies, the amount of churn and change control meetings to get to a released product is unpleasant and combative - there has to be a better way. And does anyone really think in our current economy that the market needs are going to remain static for long periods of time?
Luckily there is a better way - Agile Development - this was described at the conference as "building a mountain 1000 feet at a time". To quote from Chris's handout:
"Agile development employs the same steps as the waterfall method: requirements gathering, design, coding and testing. But instead of completing each step before moving onto the next, an agile team does a little bit of requirements gathering, a little bit of design, coding and testing, and delivers a little bit of value to a customer. They then do it all over again... and again, refining and tweaking their process as they go..
Agile is actually a fairly disciplined approach to software development. It is agile, not ad hoc."
The biggest takeaway were the four core values of Agile versus Waterfall
- Focus on individuals and interactions (over process and tools)
- Working software (over comprehensive documentation)
- Customer and stakeholder collaboration (over contract negotiation)
- Responding to change (instead of following a plan)
But more on that later...