Overheads are just one aspect of total cost and total value in software industry. For most sensible purposes, they should not be considered independently because it is possible to trade one off against the other to some degree. People associated with software development always discuss which is the best option between Agile or Waterfall to bring down the cost of development. Agile brings visibility, transparency, increases productivity of the team and in turn improves quality of the product. Let us find out in which of these two models the overhead costs will be less.
Overheads cost in Waterfall
As a linear-sequential life cycle model, the basic rule in Waterfall is that all requirements have to be defined up front. So during the process if the customer needs any further change, it creates a lot of hassle, which ultimately delays time to market of the product. This apart, since the model is mainly process driven, it might happen that the developers can be shared or swapped. Such a scenario can have an adverse effect on the benchmark dates.
Since each phase in this model has to be completed fully before the next phase can begin, you might end up with something that is perfect according to the specification, but does not really solve the customer needs. Let us see why overhead costs tend to increase in Waterfall:
- Projects take much longer time to finish – Since the project timeline is planned at the beginning, a releasable product is only achieved at the end of the project timeline. If one phase is delayed all other phases also gets delayed. The time to complete Waterfall projects also gets extended as it often needs to be rebooted and restarted.
- Difficulty in handling bugs – In this model it is difficult to ensure a potentially shippable product at the end of each tested stage. It is not possible to ensure bugs are caught and eliminated in the development cycle. In the Waterfall method, since the product is tested only at the very end, any bugs found results in the entire programme having to be re-written.
- Customer requirement is hazy – This is definitely one of the most important challenges associated with this model. Usually, customers do not really know what they exactly require up-front. To make matters worse, what they want emerges out of repeated two-way interactions over the course of the project. This is also one of the primary reasons why Waterfall projects use more people.
- Late detection of technological and security risk – Waterfall projects often use unproven technology, and cause unforeseen delays in identifying problems with the technology. Because of the delays, improvising and adapting becomes difficult. Waterfall projects also fail to provide a product that can be tested for security until much further into the development process. It is not possible to address security issues even if they are discovered in an advanced stage.
Overheads cost in Agile
When considering total cost and total value, there are many factors that Agile has as an advantage over waterfall. Being Agile helps reduce overheads and also improves productivity by allowing flexibility in choosing the right mix of processes for your own development project. Let us find out why overheads cost are far lower with Agile:
- Refactoring - Refactoring is inevitable in an Agile project, when working with the traditional tools and programming languages. Refactoring is essential in adding value to the product and reducing maintenance costs. Refactoring makes it easier to fix bugs because the source code is easy to read and it becomes easier to extend the capabilities of the application if it uses recognizable design patterns.
- Team management - An Agile team is ideally self managed and is more mature than a conventional team. Each member is an equal partner in the team and is required to communicate and own work independently. On a regular basis, the team communicates the status of project as well as the issues they are facing, to scrum masters.
- Customer requirement – The main advantage of this model is that customer feedback can be collected throughout the software development cycle. In Agile development, the developers are more flexible through their iterative style of work and keep the customer constantly in the loop, requesting them for improvements and to review at every phase. As a result of frequent communication, reflective changes become easy and also increase customer satisfaction considerably.
- Burn rate - When done right, working in an environment that values Lean principles helps considerably lower overhead costs. It's also easier to make financial projections if your burn rate is constant. Agile projects do not usually have cost overruns or big expensive surprises at the end of the project. The burndown chart plays a crucial role in any agile project and is an effective way to clearly see what is happening and how progress is being made during each sprint. Badly conceived or managed projects always have high overhead, however, whether or not they are Agile.
- Feature teams – As an iterative and incremental software development process, Feature Teams reduce the team interdependencies which also removes the need for Gantt charts. A development team that uses the Feature Teams process is able to find problems earlier and thus, can replan to keep the development moving. The process also ensures that there is not much waiting time because of the team interdependencies. For large projects, this can vastly reduce the number of PMs and PMO staff that are needed. On the other hand, Feature teams have the potential to cut down waste created by hand-offs.
Agile over Waterfall
While, Waterfall works well for pre-defined projects where the requirements are fixed throughout the duration of the development process, Agile is the way to go for most other projects, where client requirements change constantly. It may be that when you transition to Agile, the overall maturity of your organisational capabilities will take a dip, but in the long run, this will normalize and move you in the direction of improved productivity. Also, assuming that just moving to Agile will lead to reduced costs is a fallacy. The key lies in implementation. No matter which software development methodology you use, proper implementation will make a world of difference in minimizing waste and maximizing efficency, which is the overarching business goal of any organization.