Blog

Knowledge box and the information we’re up-to

Which development methodology to go for - Agile Vs Waterfall

Before starting on with any project, one question which always comes up is which project development methodology to opt for - Waterfall or Agile. Both the methodologies are mature and well proven but there is always a hot discussion. Selection depends on various factors like type of project, deliveries, client expectations and most importantly the company executing the project.

The end goal of opting either one is delivery top quality end product with budget and timeframe as stipulated by client.

Here, we will discuss with details about each of the methodology, differences and which one suits your project best.

What is Agile?

Agile also known as Rapid Application Development is a development methodology focussing on rapid application deliveries. With Agile we define “Sprints” which directs the team towards delivery of a particular component within defined time. Delivery to be made in a sprint is defined as “build” in software world. Build is a smaller version of the app; a small chunk of the overall app to be launched/released.

Prioritizing the features is very important, and it is defined from most important to least important considering the values these features bring to the business.

As the sprints are released and completed these are pushed which can be reviewed by the project execution team and also the client

What is Waterfall?

Waterfall is a conventional methodology which focuses on regular progression of various development steps which is based on stringent planning. Sequence of events under waterfall is defined as follow:

1. Gathering and documenting requirements
2. Design
3. Code, Implementation and unit test
4. System & User acceptance testing
5. Bug Fixing
6. Delivery of the end product to the customer

Project Attributes and Development Methodologies

Next important aspect is to understand the advantages and disadvantages of these methodologies and how these methodologies can be used in accordance with the projects.

Clients inputs and involvement over the project life cycle

Agile - Depending upon the project size there will be a number of builds and deliverables which will be shared with the client over the project life cycles. After testing the builds these deliverables will be shared with the client for his review and feedback. This will develop the sense of ownership as clients will work with the execution team directly.

Pros : As the client is working directly he will be investing more time into the project and will also invest more funds to receive the best quality end product. Client and execution team will have a better understanding of their responsibility and thus raise the sense of ownership.

Cons : As Agile is based on sprint and requires customer feedback and testing from the very first go. If a client doesn’t provide timely feedback or have limited time to test or share feedback this may create issues later on.

Waterfall - When project requirements are well defined before the project, we assume they are well set in steel cover.

Pros: With Waterfall, App Developers and clients define the project scope and prepare a specification document before the execution team starts to bang the keys. Milestones are defined and deliveries are easily measurable.

Cons: As delivery is based on milestone and specification document, client will see the actual build and deliverable at the end of the milestone only.

Feature Prioritization

Agile : Core set of features are developed on priority in pilot development. This allows developers to develop/launch the Application with the most important set of features even if the budget runs low.

Pros: As you have the basic version ready with you and due to some reason funds have been squeezed or exhausted, the client will still be in a position to go to his friends or close circle to test the app use and take their feedback. Also clients can get to investors and showcase the functionality for further investment.

Cons: As specifications/features are not freezed beforehand, it does not showcase the clear picture/workflow of the project beforehand. This may lead to gaps to arise later on and make clients opt for wrong choices.

Waterfall : Specification is freezed beforehand so clients know what to expect. There is no inbetween, it's all or nothing. It can be the case that end product doesn't match what the client expected.

Team

Agile : With Agile, effectiveness inseparable from team cohesiveness therefore a smaller team is preferred. To get things executed with quality and correctly, communication and synchronization is the key. Adding more team members directly affects these traits.

Pros: Everyone in the team is clear on what he is doing and what is expected of him. End result which needs to be delivered to the client within the sprint is clear due to the small team which is working on the project.

Cons: If delivery timeframes are short or the client wants results quicker it sometimes becomes an issue as a limited number of team members are working.

Waterfall Pros: Project progress is easy to measure as full scope of the project is known well in advance.

Cons: It may sometimes become to explain the project specification, workflow, use cases precisely well in advance and thus we may end up with some individual pieces which may not fit perfectly or don’t fit in properly.

Funding

Agile : Agile methodology is based on quick and rapid change and welcomes it with open arms, therefore fixed funding is not recommended. It's always recommended to opt for pay as you go model as it may arise a scenario in which clients may keep on asking the changes to the project and team may end up as slaves.

Pros: If clients like how the project is coming up and can see progress this may lead to additional work. At the same time giving a clear picture on what is being built.

Cons: In case there is a fixed budget allocated by the client there can be an argument as to what was VS what is delivered in the agreed scope.

Waterfall : If budget is limited its best to opt for this model and define the specifications well in advance and take a sign-off.

Pros: What is expected in terms of price/budget is shared with the client well in advance and thus giving clear idea to the client how much he has to invest.

Cons: Clients may feel that they did not receive what they expected as all the delivery is done at the end.

Conclusion

To sum up, it depends upon the above factors. What organizations can do is to develop a cross between waterfall and agile so that it is win-win for both clients and execution teams. God created you uniquely, Take out the best parts from both Agile and waterfall to create a unique methodology which is best for clients and organization.

Drop us a line and our team is available to provide you with free consultation.