Among the software development methodologies, these two are of such importance and so widespread that they rank as the household names of software development. We at EXE successfully use both of them and that’s why we proudly bring you Agile and Waterfall in a nutshell (with our personal take on them, obviously).
- The deliverable: the product.
- Suitable for software applications that need to be delivered as quickly as possible.
It’s very common these days that a client’s needs are very urgent, and so we’ve faced cases where the final product could not be very clearly envisioned at the beginning of the project. That’s why there’s no call for a detailed requirements specification document, because changes at the client’s request occur frequently (and it’s very encouraged that they do). In order for helpful changes to be implemented, the client needs to stand close by the software provider in the course of the development. Usually, the one to maintain the close communication with all the teams involved in the process is the so-called Product Owner appointed from amongst the stakeholders of the client business. We run projects where our client cannot appoint a 100% available Product Owner. In such cases, what we did was appoint our Business Analyst as Product Owner on behalf of the client. The BA maintains a minimal communication with the client’s stakeholders.
Agile begins with a high-level set of requirements (known as User Stories) which are evaluated and prioritised. These requirements, once prioritised, form a product backlog which is further divided into smaller tasks, composing what is called an iteration/sprint backlog.
The iteration is at the core of Agile. It’s a maximum thirty-day development period, aiming to implement the first few prioritised requirements. In our Agile process, we usually have a two or three-week iteration. At the end of an iteration, a session of acceptance testing is performed by the Quality Assurance department. With the iteration/sprint cycle complete, these few – fully functional – requirements are ready for release.
Now, you should know that Agile harnesses a few specific methods of project management: Scrum, Extreme Programming, Agile Unified Process and Agile Microsoft Solutions Framework. In all likelihood you will come across Scrum the most in your software development endeavours. Scrum is also how we chose to go about it when working with Agile and we can confirm that the results are great. What it does is it organises the entire process described above through brief, fifteen-minute daily meetings held by a Scrum Master who keeps track of the progress made with the scheduled small tasks.
- The deliverable: the project documentation, the software requirements specifications, the Test Cases, the user manual, the product.
- Suitable for large-scale software applications.
There’s no Waterfall without a solid requirements specification document to start with. Whilst Agile thrives on last minute negotiation and rewinds the process to implement changes with no problem whatsoever, Waterfall leaves no room for back turns. It sticks to the requirements specification document until the development is complete and then it ships the final product in its entirety to QA for bulk testing. If any change requests do come up in between, they are automatically submitted to the Change Management process which runs afterwards. Given that no changes can come up during the development process, a close communication between client and software provider is unnecessary. The client will receive the application in its complete form, a few months from the signing of the contract and the project kick-off. (Not familiar with the terms? Find out here what they mean!)
In theory, the phases of development are never interchangeable and they occur in this carved-in-stone order: analysis, design, coding, testing, and deployment. However, everyone knows what the main pitfall is: the risk that, in the end, the product does not fully cover the needs of the client. In order to minimise this risk, in our projects that require a strong formal documenting process, we apply some Agile principles as are delivering intermediate releases, checking each one with the client and gathering feedback. The Change Management process is still kept under formalism, but the advantage is that it occurs at an earlier stage.
When deciding upon the right choice of software development methodology, it’s best to keep a clear view of your business and its main features. To help make your way easier through the layers of features and make an informed decision, we have designed a decision-matrix-type-of-infographic as fun as a journey. Find out how Agile you are by following the path below!