There are several software development methodologies, but among all, Agile and Waterfall are the most important and widespread ones. We at EXE successfully use both of them and that’s why we proudly show you our perspective on them, in a nutshell.
- The deliverable: the product.
- Suitable for software applications that need to be delivered as quickly as possible.
It’s very common these days, when a client’s needs are very urgent. For this reason, 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. However, we also 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 that 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 uses a few specific methods of project management: Scrum, Extreme Programming, Agile Unified Process and Agile Microsoft Solutions Framework. Since it is the most popular, you will probably come across Scrum the most in your software development endeavours. Scrum is also the one we choose 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, invariably, in this 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 to deliver 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 which choice of software development methodology to choose, it’s best to keep a clear view of your business and its main features. To help you evaluate all the features so that you can make an informed decision, we have designed an infographic that pictures the decision making process as a journey. Find out how Agile you are by following the path below!