It’s the big match, in the red corner we have the Waterfall approach, and in the blue corner we have the Agile approach to software development.
Both are experienced, have proven results and give a good, clean fight but there can only be one winner. Let’s go a little more into their vital statistics to see how they work.
Seen by many as the “traditional” approach to software development, the Waterfall framework is straightforward and simple. A timetabled, meticulously planned approach to initiation, analysis, design, construction and testing means projects should be delivered on time and to the project brief.
In short, it’s all planned out from the beginning on how things will be done and by when.
However, with so much attention to planning and the linear nature of this approach, any hurdles or changes that may occur throughout the development process may not necessarily be accounted for, and the restrictions of not being able to change software once written can cause a rather large stumbling block, costing time and money for both parties.
Rather than steaming ahead with a project brief, as in Waterfall, Agile uses a much more customer-centric and “brick by brick” method to development.
Instead of visualising project delivery as one large start and finish line, an Agile approach divides tasks into smaller, bite size pieces over the same timespan, showing customers progress when each small part is completed.
Through the development and introduction of software on this incremental basis, customer feedback and any issues can be identified and adapted before product development goes too far.
There is an emphasis on face-to-face customer contact and real time communication, and all developers are usually in a central location.
It is important, however, that if the customer is to be involved in the development process that they are personally invested, as apathy within an Agile framework can defeat the object of this reciprocal development methodology.
We don’t exclusively subscribe to any particular approach to development and we understand that each project is different to the next—but we do use Agile as an influence, focusing on interaction, feedback and continual discussion to create the best software we possibly can.