The Agile Software Development Process
As I’ve been looking at the ROI of testing the last few years I found out that the most used numbers are still based on the initial study of Boehm from 1979. He calculated the cost of change of a waterfall model and found out that ‘the earlier you fix the problem, the cheaper it is’. That idea is still the most relevant of all. If you look at the implementation of LEAN you get the same. Fix the issues when it occurs, instead of waiting till the end. It improves the lead time and reduces the costs. The agile software development process mostly recommended to making critical & risk based software.
But the numbers from Boehm are based on the waterfall model, as said. Now what is the cost of change for agile software development process ? Of course you cannot really compare them both directly, but what I found out surprised me a little bit.
Both of them are based on studies, waterfall by Barry Boehm and STBC and the Agile by STBC again. Why am I looking at these studies? Well people in QA always use Boehm to elaborate why they want to start testing as soon as possible and both of them are used in the IV&V method for the Public Sector in the US.
When you look at both you see a rising amount of cost after the requirements phase of the Waterfall model and after the test phase these costs just go sky high. When you look at agile there is a slight rise in costs after the coding phase in the agile cycle, but when going into Production the costs will go sky high.
Why are the costs of Agile lower after the business case?
Well, one reason is that with Agile documents are created as needed for the development process. So during the full Agile cycle there is not so much need in changing documentation only the code when an error is found. But when the product is shipped for production that documentation still has to be delivered for the Management & Control team of the organization.
Note: This something that is often forgotten in agile development teams not doing a good usage of the method. Speed is generated by producing as less as possible documentation, but it still has to be delivered at the end of the project. And it’s only human to ‘forget’ this!
But statements from agile devotees like ‘collaboration between the various partners in the development process is what makes Agile better compared with Waterfall’ are bullshit. In Waterfall collaboration is also possible! That doesn’t have to be a difference. It’s only true that quite a lot of times this is not done in Waterfall. But maybe you have some ideas around this
But one thing is the same in Agile and Waterfall: issues found in Production are always very expensive to fix!