Tuesday, June 17, 2014

For hard projects, choose Agile


What’s the cheapest way to build software?  

Agile approach is expensive.  There are meetings that take valuable engineering time. There are non-engineering roles, i.e. people that need to be paid, that are not writing code and, therefore, whose contribution to the product comes into question.  There is a significant body of test code, and which is obviously not helpful to the end user. There is constant refactoring work as the team discovers better architecture for the emerging product.  

Waterfall is cheaper. Only hire an architect to for the initial phase of designing the system.  Pay the technical team just to write the code for user functionality, and to do it quickly.  The engineers can be cheaper, too, since all the thinking has already been done in the earlier design phase.  Let the engineers go once all the code is written. Next QA comes in, runs tests, and violá, the product is done.  No meetings ever needed, since all the people involved are working off the earlier phase’ documentation.

Why pay more?

Agile process has no single point of failure. Fault-tolerance of the process is extremely high, error detection and recovery is “baked in”. Waterfall, in contrast, requires perfect execution at every point in the process, i.e. every point is a single point of failure. Errors are hard to detect until the very end, and even harder to fix. As projects get more complex and require more investment, it makes sense to place a higher value on the probability of success, rather than on minimizing initial cost.