While Waterfall is a linear, rigid, and sequential process for developing software, Agile takes a more flexible and iterative approach.
With Agile a team works within set periods of time (sprints or cycles) to deliver solutions incrementally which are meant to improve products while keeping the customer’s needs at the forefront.
With the customer’s current needs at the forefront improvements are made to the product based on feedback from customers post-release.
While Agile is characterized by flexibility, embracing change, and making quick changes where necessary, the most important characteristic of Agile is that it is focused on the customer and their needs.
On February 12, 2001 a group of 17 individuals met at a ski resort in Snowbird, Utah to discuss and find common ground. The purpose of this meeting was simple: to discover a better way to build software.
These attendees of this meeting were representatives from Pragmatic Programming, Extreme Programming, Scrum, Adaptive Software Development, and more.
What was the result of their numerous discussions? The Manifesto for Agile Software Development.
This manifesto is a set of principles that outlines the Agile values. It states:
“We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
1. Individuals and interactions over processes and tools
2. Working software over comprehensive documentation
3. Customer collaboration over contract negotiation
4. 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”
Check out the manifesto here. The original website is still available for viewing.
Let’s dissect these values a bit further:
Individuals are the ones who respond to business needs and drive the development process.
When processes and tools drive development this leads to teams being less responsive to change. As a result you will not be able to meet user needs.
Understanding user needs comes from interacting with individuals, not from obsessing over processes and tools.
An inordinate amount of time is spent on documentation for delivery, specifically the Product Requirement Document (PRD) that is heavily relied upon in Waterfall.
A PRD outlines all of the features and capabilities of a product to ensure that it is ready for release. If a feature is listed in the PRD but is not in the product then the product does not get released.
The extensive list of required documentation causes long delays in development, delays that can be costly given that market conditions can and do change.
Agile doesn’t seek to remove documentation entirely, documentation is important. With Agile leaner documentation is produced, documentation which outlines the problem statements, user stories, and technical requirements for the team.
This provides the team with the information that they need to get started on their work without being bogged down by an inordinate amount of details.
Documentation is valuable however getting started with working software has greater value.
Product managers should engage their customers and collaborate with them on a regular basis. This means including them as part of the product development process.
Doing this makes it easier for a team to validate their assumptions and gain product evangelists upon launch.
With Agile, customers are included in the product development process at regular intervals and shown work progressively for validation.
Due to the shortness of iterations Agile makes it easier to shift priorities when needed from iteration to iteration.
Bugs can be fixed, enhancements can be introduced, and new features can be added with each iteration.
Changes always improve a product as they provide additional value. It is the product manager’s job to define and measure the value that these changes will bring.
Agile has 12 principles that are derived from its four values. These principles are:
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
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 behaviour accordingly.
Now that we have a better understanding of Agile and how it differs from Waterfall let’s outline its many benefits.
Due to releasing an initial MVP to the market that focuses on the most valuable feedback, obtaining quick feedback, and having incremental sprints, following Agile reduces the chance of absolute failure.
This is when teams aim to begin with a working product from the first sprint.
In the case where there are failures then the team can fail fast and make corrections as needed based on reliable data from customers who have received and tested the product.
With faster releases customers are able to receive the initial MVP as well as added improvements sooner with each incremental release.
With frequent sprint reviews the team can demonstrate working functionality to their customers and key stakeholders can remain engaged throughout the product development process.
With Agile, each work period (sprint or cycle) has a fixed duration. This leads to a more predictable cost that is limited to the amount of work that can be performed by the team per sprint.
For those who work within an agency for example, prior to each sprint clients will know the approximate cost of the work to be performed within that specific sprint.
This also helps improve the decision making for the priority of solutions and the need for additional iterations.
Daily testing in the development process allows the development team to address issues early on.
The small incremental releases in Agile builds on previously tested functionality. Each release gets tested and validated for continuous software quality.
Along with this the frequent retrospectives enables teams to get better at their work. This is so long as they take the feedback from these meetings seriously.
There’s transparency within the team and key stakeholders on exactly how work is progressing, the challenges present, and what’s next. In addition, the regular sprint meetings (Scrum) make it easier for the team to assess where they are and what’s next.
Project managing Agile teams can be a tough task however with tools like airfocus project leads can supercharge their team’s agility and enable better focus.
airfocus combines the best elements of standard Agile software with some genuinely cutting edge innovations — making it one of the best Agile project management tools around.
Prioritize instantly with a number of readily available Agile roadmap templates, include team members in the decision making process via the Priority Poker function for collective prioritization, and among many other features, visualize project priorities with Kanban boarding.
Check out our list of The Best Agile Project Management Software in 2020 to learn more.
The metrics that are utilized in Agile software development to estimate time, cost and measure performance for data-informed decisions are more relevant and accurate than metrics for traditional projects.
With Agile you can determine the team capacity based on the team’s actual performance (based on how the team performed in past cycles/sprints) and accurately predict what to expect next.
Likewise, as the work is implemented you can refine the estimated effort, time, and cost on a recurring basis as the team learns more and gains further familiarity with their work.
Being a member of a self-managing team allows individuals to be creative, innovative, and acknowledged for their expertise.
Also, unlike the sequential and siloed approach to Waterfall software development, having cross-functional work facilitates team members to learn new skills and grow by teaching others.
Everyone works together, not in silos.
One final thing to note is that shipping a working product to customers and immediately receiving their positive validation boosts the team’s morale.
What more does a team want than to see that their hard work is benefiting their end users?
With all of these listed benefits, what are some of the downsides of Agile?
One of the claims that people have regarding the downsides for Agile is that it leads to reactionary development.
There is a semblance of truth to this.
This is because a team may build what users want now rather than planning a roadmap and maintaining a product vision for what they may need in the future.
However, if this is the case it’s not the fault of Agile but rather the product manager.
It is their responsibility to manage the roadmap and ensure that customers and users are receiving value from the product in the present but will also continue to receive value from the product in the future.
One thing to keep in mind is that Agile is output focused, not discovery focused. Dual-Track Agile is what enables product teams to add a discovery track and focus on understanding problems first.
When following Agile software development product managers are kept busy with the many tasks that they need to perform throughout their week.
Product managers already have a lot to do on a weekly basis. Their responsibilities include, but aren’t limited to, gathering and prioritizing customer feedback, defining problem statements and hypotheses for the problems they want to solve, enabling their stakeholders for product launches, and maintaining the product roadmap (check out The Ultimate Guide to a Product Manager’s Job.)
It’s an added responsibility for product managers to manage their teams as they discover, design, develop, launch, and iterate on feedback for each release of their product(s).
What benefit does Agile provide to product managers specifically?
Well, for one, it enables them to get a product to market faster and gain insights from their customers.
The way that a product is improved post-launch will mainly be based on customer feedback and metrics.
With Agile a working product is shipped and then improved via incremental releases.
Once the product has been launched, a product manager will meet with their customers and users to get feedback, assess their metrics, and prioritize what to deliver next to continue with improvements.
Irrespective of the software development framework employed for implementing Agile a product managers are still still responsible for:
Crafting and maintaining the product roadmap
Communicating feature prioritization and functional requirements to their team
Answering any questions their team has as work is implemented
Removing any blockers and ensuring clarity throughout design and development
Defining “done” and ensuring that the acceptance criteria are met prior to release
Communicating with customers and gathering their feedback to improve the solution post-launch
The responsibilities of product managers remain the same whether Agile is employed or not.