Tuesday, March 10, 2009

"Staggered Iterative Waterfall" is it an anti-pattern?

I read couple of articles last week anout "Staggered Iterative Waterfall" anti-pattern: The Staggered-Iterative-Waterfall (Anti-)Pattern and Slouching Towards Waterfall. I read them several times was trying to understand, but I failed. My expirience tells me that "Staggered-Iterative-Waterfall" IS successfull pattern. I disagree with most point in those aticles.
It seems to me that we understand terms (like iteration, phase, Waterfall) very differently.

Analysis, Design, Construction or Testing are not phases, they generaly shouldn't be separated into different iterations. They are activities that exist in every iterations but you just put diferent pressure on different activities in different iterations thru-out project life-cycle.

Staggering (I think overlapping is better term here) is effective because analysis (product owner/manager role), construction (development) and verification (QA engeneer) are different roles in the project. It is nothing about "ability to communicate and collaborate". They just represent different views on the project and it is not good idea generally to combine these roles in a single person, they are conflicting roles. Product owner concentrate on maximizing product value, development team concentrate on building live product, QA concentrate on finding ways to check product in real-life environment. I personally think about dev and QA as two fighting forces that allow to build great product. Great thing can be burn only in a battle.

It sounds stupid to me that "product owner" should not think about user stories for iteration (n+1) while dev team working on iteration (n). As well as it is stupid to me that development team should not start iteration (n) until QA executing tests for e.g. stability, performance, scallabilty of delivery from iteration (n-1).

Looks like confusion come from different understanding for e.g. "testing" term. Developer level testing dev.team responsible for is defenitelly part of current iteration and this activity is mixed with all other construction activities dev.team do. But professional testing QA team does is a different thing, it is a parallel process that interferrer little with development testing.
The same confusion for "analisys". I am speaking not about "analisys" developer does but about busines level analisys what what features to deliver to market and how they should look like on general level.

Here is a post with critique of "Staggered Iterative Waterfall" anti-pattern I thound: Every Process is an Iterative Waterfall. I tend to agree with most tesises there.

No comments: