By John Cooke, a founder and managing director of Black Pepper Software
In the era of the cloud, software is at the forefront of business activities, from monitoring company accounts to facilitating web conferences and driving sales. It’s strange given how critical it is to the business that so few actually understand the practice of software development and the different options available to them. The most widely-used methods are Agile and Waterfall software development. The question is; which is right for your business?
Agile vs Waterfall
All development goes through certain stages: conception, initiation, analysis, design, construction, testing, implementation and maintenance. The difference between Agile and Waterfall is how they approach these various stages.
In Waterfall, the design and development requirements are mapped out up front so everyone knows exactly what they are aiming to achieve. This means the client knows what to expect and has an idea of the time frame, size and cost of the project. However, this does mean clients have far fewer opportunities to feedback or alter the software once development has begun. This is fairly risky for a business because if the initial requirements of the project change in any way, the project is almost guaranteed to fail to meet expectations. In turn businesses would then incur additional costs to rectifying any issues and the project would take longer than predicted.
On the other hand, Agile has a strong focus on the client. Developers start off with a simple project design instead of a large document and work on small modules. As short iterations are completed (usually in weekly or fortnightly cycles) priorities of the project are reviewed, evaluated and tested. At each stage an increasingly complete product is provided to the client which they are able to use and provide feedback on.
The mindset of an Agile development team is to plan for and embrace change. It is this responsiveness and flexibility that gives Agile the edge in the business environment. Businesses are constantly changing and may have to react to external changes and Agile can accommodate this. Testing is also done as the product is developed, ensuring that any bugs are found early on in the process and the product can be released much more quickly. Early feedback means that developers can create a more specific product – ensuring it meets the client’s needs more effectively.
Agile business efficiency
Although Waterfall is still a popular methodology, the last five years have seen Agile Development quickly becoming the preferred approach for many of the world’s leading technology companies. This is partially down to the increased business efficiency levels Agile promotes, both for the development team and the client.
Continuous communication and collaboration creates an environment in which working software is available at the end of each iteration. The Waterfall approach would force the client to wait months for the project to be completed before they had a fully-functioning product, which may not be as the client want it now and misses the revenue opportunity.
Alongside this, Agile development teams produce minimal documentation to enable them to focus on fulfilling project goals as efficiently as possible, rather than carrying out time-consuming administration. In short, if the document doesn’t directly help meet the client’s end goals, it will not be produced.
Efficiency levels therefore increase as the development team can focus on producing results, while clients aren’t forced to spend hours reading pointless documents which fail to add value. Adding value is the holy grail of business and the increased efficiency levels Agile promotes support this.