Post Pic

Software Development == New Product Development

Why some companies keep on leading their software development projects with “waterfall approach”? There are probably many reasons, but I guess one reason is related to the mismatch between predictable manufacturing and new product development.

It is interesting to notice that some companies develop software with methods from 1980’s. I am referring to so called waterfall approach. Even though everybody says “waterfall doesn’t work”, I see companies doing it. Why? Why on Earth they do something that doesn’t work well?

I have no definite answer to my question above, but I believe the reason is that in many technology companies management compares software development to assembly lines or factory work. Imagine you have a car factory and your job is to plan of project of creating 500 new cars. You have a long list of various activities needed in order to build a car. Those activities include assembling components that have been developed and tested many times before. All you need to do is to pick up the needed activities, put them on time line and calculate how much time is needed to complete the job. Mass manufacturing is predictable manufacturing.

Software development is far from that example. Even though there are components also in software development, but unlike car factories software projects always include new design and coding or tailoring of old software. Therefore software development is always new product development, and because of that software development projects are very difficult to estimate. Software projects are inventive projects that are difficult to predict.

In predictable manufacturing it is possible to first complete specifications and then build the product. In new product development it is rarely possible to create unchanging and detailed specifications. In predictable manufacturing one can estimate effort and cost near the start, while in new product development estimations can be done step by step as empirical data emerges.In predictable manufacturing it is possible to identify, define and order the needed activities, but in new product development also this must be done in steps as feedback is gathered from build cycles.

In addition to the nature of software development, we must take into account the added complexity from third party components that can sometimes be even more buggy that our own product.

Based on above, I believe many companies keep on leading their software projects with “waterfall style”. Instead of realizing this mismatch and changing their development process they keep on requiring big up-front specs, and detailed plans and estimates. Even usage of project charter can feed this mismatch, although it absolutely should not.

We should understand that building software always includes high change rates, and therefore applying “waterfall style” predictable manufacturing process is not beneficial. One solution I recommend is agile project management.

Photo Jazi

Leave Your Response

* Name, Email, Comment are Required