In order to be able to enter into these discussions together, I will first explain to you the main similarities and differences between Agile, Scrum, and Waterfall.
There are many differences between Agile, Scrum, and Waterfall, but the main ones are in the details. Reference: Agile, Scrum and Waterfall project management, ossalumni.org
Waterfall is linear, Agile is iterative
The waterfall as a process is linear, while Agile is iterative. This means that the waterfall works best when the scope and all possible risks are assessed at the beginning, while the Agile scope really does not need to be defined at the beginning, and requests for change can be made as long as it is in time and budget. Reference: Waterfall and Incremental model in project management, wikipedia-lab.org
The waterfall is better for large teams and does not require too much coordination between teams, as everyone has a role and knows what role it plays in the project. Agile works best when performed in small and medium-sized teams that have a high level of inter-team collaboration.
In addition, customer feedback is given at different stages between the two methodologies. Customer feedback is constantly present within the Agile methodology, while they are present only during the stages of the waterfall methodology.
Budgeting in Agile and Waterfall
In terms of funding and budget, Agile works best to increase funding at each major stage of the project, while Waterfall works best when dealing with pre-contracts.
The similarities between the two methodologies revolve around higher levels, mostly around feasibility. Both in the Agile methodology and in the waterfall, there must be some sense of feasibility and possibility of financing before starting work on the project, whether it is a preliminary contract or a percentage of payment at each stage.
There is also planning included in both methodologies, but they are done in different phases. In the waterfall methodology, planning is included in advance at the beginning of the project at a very detailed level to reduce the risk and avoid changes once the project has started. Reference: Project Charter – real detailed example for Project Planning phases, worldforgemagazine.com
The Agile methodology Scrum also has a significant level of planning, but this is done during so-called sprints when the developers are ready to take pieces of the project and make a development plan. Reference: Agile vs Waterfall management methodology, kosovatimes.net
In addition, there is much to observe and report in both the waterfall methodology and the Agile methodology. In the waterfall methodology, the progress of the project is measured together with the project plan, while with Agile the progress of the project is measured against each sprint.
It is important to mention that both methodologies use Gantt charts to ensure that their project moves forward at full steam, without barriers or punks along the way.
Waterfall or Agile: it depends
There is no right or wrong between these two methodologies, but there is a more appropriate one for a given project. There is a lot of controversy on this issue, as Waterfall is the methodology of the West and has its supporters, while Agile is the methodology of the East – respectively with its defenders. Reference: Waterfall or Agile? What methodology to choose for your project, PM.MBA
It is important when you find yourself in such a discussion to be fully aware of the requirements of the project in order to be able to recommend a more appropriate methodology. If you need more details about the two methodologies, we can schedule a meeting to discuss specific examples.
The Waterfall model is easy to understand and is based on a ‘sequential design process’, similar to a waterfall filling phase of lower level pools. After filling the first level, the water continues to the next level and so on until the pool is full. In short, the Waterfall model completes one phase before starting the next (phase-based).
The Waterfall model has several phases:
- Requirements (Project requirements)
- Verification (Verification / Verification)
- Deployment and Maintenance
Requirements (Project requirements)
For this phase, more time is spent by the Project Manager than the others, because the requirements must be well documented before starting any other work on the project.
The document begins with the concept, functionality and ideas of the customer about the desired product. Once well discussed, they are reflected in the document. When the project requirements are approved, the phase ends.
During this phase, the project team develops a design that meets the stated business needs of the client and to solve problems of mismatch between requirements and design, if any.
Design is an abstract representation of how software data is received and sent and what the product will look like before its implementation begins. This is often displayed graphically as diagrams, images, illustrations or examples of similar products.
The design will be completed when it is reviewed and approved by the client and the project team.
Implementation cannot begin until the design phase is officially completed.
Implementation is the embedding of the design in the actual software. The programmers/technicians/engineers deal with this phase, and before that, they are well acquainted with the design of the product. It is good practice to build the software in small parts, and finally ‘assemble’ it into one, because in this way, it will be easier to test the individual functionalities.
Verification is the testing of software against the requirements of phase 1. Often, several users are selected here to test the software in a way that is convenient for them and then shares feedback after the testing is completed. In most companies nowadays, there is a member of the team who is in the position of the tester.
It tests the software and if there is something that is not as required, it signals and sends it back to the software engineers to rework the functionality. Once the software is tested and approved, the phase ends.
Deployment and Maintenance
The implementation is the actual release of the made software in the environment of information technologies (online stores, physical stores, etc.)
Maintenance is a stabilization period – the phase in which initial problems are resolved, the customer provides feedback on the new product when tested and in a real environment after implementation (release).
Advantages of Waterfall project management
Agile is easy to understand. It can be easier to manage because you focus on the phase you are in, and once it’s over, it starts with the next phase. The next phase does not start before the previous one is over.
Fewer production problems
Offers better budget management
The documentation is detailed and well described. If you need to recall details or what’s next, they will be entered in the documentation without any problems.
Disadvantages of Waterfall project management
it is not flexible, ie it does not cope well with unexpected problems
this methodology is not suitable for long-term projects. Preferred to be used for small projects, it will be easier and faster to describe the requirements and then strictly follow them.
Agile is a flexible methodology
Agile is a flexible methodology for dynamic software development, containing a set of values and principles. Reference: Managing business organizations and adding business value, policymatters.net
Software specifications and solutions are developed in stages through cooperation between self-organizing teams composed of people with different activities.
The Agile methodology encourages adaptive planning, software development, and delivery, a timed iterative approach, and encourages rapid and flexible response to changes. The principles focus on helping the team and interacting in ways that achieve flexibility.
Flexibility is the ability to constantly adapt and the ability to constantly improve ways of working.
An example of flexible (Agile) methodologies is Scrum.
Scrum points out a number of specific ways teams work. This includes things like:
sprints with deadline
Many teams find Scrum a very good way to follow Agile principles.
Advantages of Scrum
- You lose fewer resources because you are always working on current tasks
- You can detect and correct problems and defects faster
- You spend less time on bureaucracy and hard work
- There is a large community of Agile practitioners with whom you can share knowledge
- You can get immediate feedback (which also improves team morale)
- Developers can improve their skills based on QA feedback (tester) Reference: Quality control and quality assurance in Project Management and Agile practices, scrumtime.org
Disadvantages of Scrum
- The documentation tends to change and deviate from the ultimate goal, which makes it difficult for the new members of the project
- Agile requires more time and energy than everyone else because developers and customers need to constantly communicate with each other
- Projects can become long-term because there is no clear end
- Teams can be made to provide new features at the expense of technical debt, which increases the volume of unplanned work