For those of you who didn't attend Scott Ambler and Terry Quatrani's keynote "Software Development Strategies, Philosophies, and Techniques: Traditional vs. Agile" at this week's SD West conference, let me give you the gist of the first half:
- Advocates of traditional software development approaches, such as waterfall and V-Model, are myopic bureaucrats who worship detailed specifications and denigrate the code necessary to build those specs.
- Agile development practitioners, on the other hand, are logical pragmatists whose only goal is to build what the customer wants.
In a parody of the Apple television ads where a hapless businessman personifies a PC and a know-it-all hipster portrays a Mac, Ambler and Quatrani debated the relative merits of traditional and Agile development models. Ambler, the practice leader for Agile Development at IBM, played his Bizarro doppelganger: a staunch traditional model supporter (the PC). IBM Rational Evangelist Quatrani portrayed an Agile proponent (the Mac). The results were much like the TV ads: the brain-dead PC always played the fool.
Watching Ambler mock the traditional approach was good for a few laughs. He sarcastically advocated detailed specifications with complicated models that an architect could throw over the wall to the "programming monkeys," who he joked are good only for writing code exactly to spec and documenting every detail as they go. All the while, Quatrani countered with Agile's iterative, test-driven process, where stakeholders are involved and the spec evolves as the team targets working code for each iteration.
In the second half of their talk, Ambler and Quatrani traded comedy for statistics, presenting some data to validate their pro-Agile satire. Based on surveys of Dr. Dobb's Journal readers (i.e., developers), the data compared the project success rates and effectiveness of the Agile and traditional development paradigms.
Considering the source—people who may have an axe to grind against a model that elevates the architect specialization while relegating developers to "programming monkey" status—I took the survey results with a grain of salt, but they still revealed some interesting tidbits. For example, the vast majority of modeling is performed by sketching on a white board or paper rather than by using software-based modeling tools. Also, while Agile came out ahead in most categories (surprise, surprise), the traditional model had a higher success rate in distributed development. Ambler admitted that Agile teams don't know how to do distributed Agile yet, and claimed the available tools aren't helping them.
The traditional-versus-Agile debate is nothing new, of course. Six years ago, an editorial by the DevX editor-in-chief at the time titled "Are You Passing the Requirements Buck?" prompted vehement rebuttals from a DevX author and even Scott Ambler himself. Since then, DevX has published editorials on the thorny developers-vs.-architects issue, from the polemical (David Talbot's "To Software Architects: Serve End Users, Not Your Egos," December 2004) to the conciliatory (Andy Schneider's "Bridging the Divide Between Developers and Architects," July 2006).
I sat in on Ambler and Quatrani's keynote to get a sense of whether cooler, more pragmatic heads had prevailed. I ended up more entertained than informed, and left with the impression that the debate remains as religious as ever.
architecture, modeling, agile, waterfall, documentation, Software Development Methodologies, V-Model