[This blog is Part Two of a three part series. Check you may also want to check out our blogs Agile vs. Waterfall Methodology - Which one is right for you? and The Waterfall Approach]
The Agile approach places a focus on iteration and testing of what works well and what doesn’t. It was formulated by a group of 17 software developers who called themselves “The Agile Alliance” and were interested in finding alternatives to the traditional documentation driven software development process.
In 2001, the Agile Alliance penned the Manifesto for Agile Software Development, which listed a set of values on which Agile was based. The four values prioritised:
Unlike Waterfall, Agile methodology involves concurrent development and testing. It is widely popular across IT, with one of its strengths being its emphasis on high levels of customer involvement throughout the project, with iterations based on the received customer feedback. This increases the likelihood of producing software that the customer actually wants and finds useful.
While there are many different applications of Agile methodology, at its core Agile involves the following 5 steps:
This involves understanding the customers’ background and vision for the project. The development team researchers the customers’ needs in order to develop as accurate as possible a sense of what is being built, for who, and why.
The team builds experiments and features that the customer wants and ranks them in order of value as a means of prioritising efforts leading towards the completion of the finished product.
The product or service is launched, with the intention that any issues will be identified and can be improved upon.
Through analysis and by using metrics, the team learns what went right and what went wrong. Focus is placed on the highest value features to deliver the greatest value as early as possible for the customer.
The cycle is repeated, additional sprints are conducted and iteration continues until the product is finished.
With each cycle, the development team makes changes and adds new features. When performed correctly, corrections are made based on feedback and occur as only minor changes. This means there are no drastic measures taken and each cycle progresses more smoothly than the last one.
The Agile process allows for a higher level of communication and collaboration between customers, developers, managers, and testers. Therefore it’s well suited to clients that are willing and able to be closely involved across the course of the whole project. In many cases clients prefer this as they have the opportunity to stay closely involved and informed of exactly how the project is progressing. In some cases, however, there will be clients who simply want to be able to issue a brief and be notified once the project is complete and therefore would likely benefit from an alternate process such as Waterfall being used.
The communication and iteration focuses of Agile also necessitates having a close knit team that is responsible for the entire process of the project. The team needs to be able to communicate regularly with one another, ideally in the same working space, and must all be committed to the project in order for it to be a success. Without complete buy-in from all team members, Agile projects are far more likely to run off track and miss deadlines.
Not sure if Agile is the right methodology for you? Check out our blogs Agile vs. Waterfall Methodology - Which one is right for you? and The Waterfall Approach.