Waterfall Versus Agile
Waterfall Project Management
A project is a temporary endeavor that has a specific and unique goal, and usually a budget. It has a definite beginning and end. It produces a unique goal e.g. a product, service, or something else. Budget within the context of a project typically refers to money, time and resource. Projects are not tasks that are business as usual or operational work. With Waterfall projects, all the requirements are defined at the beginning of the project to ensure all issues, questions, and risks are addressed before the beginning of the project. Waterfall assumes that most, if not all, the customer’s problems/requirements are known up front. The role of a Project Manager is to work out how to deliver value to the business using a project management methodology. They also need to determine how to deliver project objectives while meeting the schedule and budget. A project can be broken down into five main sections; Initiating, Planning, Executing, Monitoring and Controlling, and Closing.
The purpose of the Initiation phase is to get commitment and buy-in to start the project and move to the Planning phase. During the Initiation phase a Project Manager works to prepare the project charter, identify the problem to be solved, defines the project, develops the initial scope, estimates the cost, plans the resource allocation, and identify the project’s stakeholders. The scope management plan determines what should and should not be done in the project.
During the Planning phase, the Project Manager determines how the project will be performed. The Planning phase answers the questions “what are we going to do,” “how are we doing to do it,” and “how will we know when we’re done?” Additionally, objectives, requirements, deliverables, success criteria, assumptions and risks are also documented. Who will complete the work, how long it will take, when things happen and how much it will cost is also captured. Risk management, communication strategy, quality requirements is also documented within the Planning phase.
The Execution phase is used to acquire a project team, introduce them to the processes and guidelines, and launch the project. Typically, this is done with a kick-off meeting and a location to store all project documents. All the work identified in the work breakdown structure, established in the initiation phase, is completed here.
Monitoring And Controlling
The Monitoring and Controlling phase of the project is used to determine if the project is progressing according to the plan and, if not, what needs to be done to bring it back in scope. Monitoring allows the project team to collect data on an ongoing basis and respond to unexpected events, issues, challenges, etc. Controlling allows the project team to implement course corrections to realign the project outcomes with the project goal. Data is required to make informed course corrections. In order to do that, the project team needs to know what’s been done, how long it took, what’s left to do, and what it cost.
The Closing phase is used to confirm the project is complete, the client has signed off and accepted the work, gather lessons learned, and officially close the project. A close out report should be completed, archive the project and disband the project team.
Waterfall works well if the goals and solution is clearly defined and the scope and deliverables are known. Waterfall works well if a lot is known about what is to be done, how to do it, and familiar technology is used. A great example of where waterfall project management would be ideal is when building a house, building or bridge. There are well established guidelines, rules, regulations, standards etc and the process is well understood. Iterative project management works well when the solution is not known.
The implementation of Project Management is to make sure that what has been agreed to be done is being done. The role of the Project Manager is to determine the schedule, and determine there is enough time, resources and budget to get the project done. In addition, a Project Manager is responsible for scheduling the work that needs to be done, monitoring how well the team is doing at completing their assigned work load and communicating back to the project management team. A Project Manager owns the schedule and helps ensure the team is on track to meet any deadlines.
Software development projects often used the waterfall methodology to deliver projects however found it extremely time consuming and cumbersome. With large and complex projects, all the technical specifications needed to be completed at the beginning of the project. If any variations or oversights were identified during the project, this called for exceptions, delays or non-delivery of the original project specification. Due to the cumbersome nature of using the waterfall methodology for software development, a different project management style was developed – iterative project management. With the advent and price reduction of cloud technologies, hardware infrastructure and the speed of change in consumer behavior, it’s become quicker, easier and cheaper to build and deploy software in an iterative way. Of all the different iterative project management frameworks, Agile and Scrum are the most popular.
Agile product development operates in an adaptive way as opposed to waterfall’s predictive approach. One of Agile’s main differentiators is that it allows product development teams to operate in small cycles i.e. Sprints, with the aim of delivering the highest value piece of the product to the customer or market at regular intervals. This iterative approach allows the product team to gather data from the market and the organisation quickly and then incorporate that feedback into the next iteration of the product development cycle. Using the short release cycles significantly reduced the risk across the whole project allowing a product development team to reach product-market-fit and profitability much sooner.
Another major differentiator between waterfall and Agile is the need for documentation. In waterfall, everything is documented extensively even though much of the documentation may never actually be used. Agile, on the other hand, aims to develop as much documentation as necessary and no more. This keeps the product team focused on consistently delivering value to the customer and to an organisation. Below is a copy of the Agile Manifesto and Agile Principles which govern how Agile teams should operate in order to deliver the highest quality work in a sustainable way.
We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on
the right, we value the items on the left more.
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
Welcome changing requirements, even late in development. Agile processes harness change for the customer’s competitive advantage.
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
Business people and developers must work together daily throughout the project.
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Working software is the primary measure of progress.
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Continuous attention to technical excellence and good design enhances agility.
Simplicity–the art of maximizing the amount of work not done–is essential.
The best architectures, requirements, and designs emerge from self-organizing teams.
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
This blog has provided an overview of some of the main differences between waterfall and Agile methodologies. At this point, I’ve only mentioned Agile very briefly as I’ll be going into a lot more detail about Scrum methodologies in other blog posts.
As always, feel free to reach out if you have any questions or comment below.