What is Agile Development?
Agile development is an approach to Product development that encourages adaptive planning, evolutionary development, early delivery, and continual improvement. As it sounds, Agile Product Development requires that everyone on the team be agile throughout the development process.
Agile became popular after a Manifesto was released and signed by seventeen software developers in 2001. Though it originated from software development, many other trades, including Product Management, have adopted the methods. The manifesto is based on twelve principles:
- Customer satisfaction by early and continuous delivery
- Welcome changing requirements
- Deliver working software frequently (working product)
- Close daily cooperation between business and developers
- Projects are built around motivated, trusted individuals
- Face – to – face communication is the best form
- Working software (product) is the primary measure of progress
- Sustainable development, able to make maintain pace
- Continuous attention to technical excellence
- Simplicity – The art of maximizing the amount of work not done
- Self-organizing teams produce the best results
- The team regularly reflects on how to become more effective
Agile Methodologies
Using the Agile approach, simply put, means you have the ability to adapt to change when required. There are two important concepts when working with Agile; Iterative and Incremental. Both words mean similar things, so let’s take a look at both in detail so they don’t get confused.
Incremental Product Development means you’re building the product piece by piece, like building a house brick by brick. Even though you’re building in small batches, incremental alone doesn’t allow for quick adjustments and changes.
Conversely, iterative Product Development means you’re building something in successive refinements. With Iterative Product Development you start with basic a gist and then refine the details as you go along, and as you gain more user insight. With each iteration, you are adding more information and value until you’ve created a successful product for your users.
Both incremental and Iterative approaches are applied while working with the Agile Framework. Each approach has its own value and is applied on a case by case basis.
Agile VS. Waterfall
Now that we have a general idea of Agile, let’s take a quick look at the Waterfall approach, for comparison. The Waterfall approach is a step by step process. The output of one phase becomes the input of the next phase, the phases do not overlap. Each phase is unique and organized with the following steps:
- Requirement Analysis – This phase is where you do research on what the users wants and needs are for the product you are developing.
- Design – As it sounds, this step is about designing the flow of the product.
- Development – This stage is all about developing the product based on the design elements that were determined in the Design Process.
- Testing – Testing the product and verifying that everything is a go technically. This stage is about making sure that steps 1,2 and 3 are all coming together to create a functional product.
- Maintenance – If any technical issues are found in the previous phase, they get worked out in this phase.
Waterfall can be a great approach when careful control of time and cost are required but the downfall of working with the Waterfall approach is that it’s very rigid, it takes longer to deliver any value, and presents a different type of risk with new product development since it means spending a lot more money before you ever get any market feedback by which to validate your product.
This is where some argue that Agile is a better practice, particularly when paired with a Lean approach to discovery – it all depends on what you’re trying to do.
Scrum – An Agile Framework
Scrum is the framework that is most commonly used with Agile Methodology, for complex projects and product development. Scrum is an Agile Framework that teams use to develop, deliver and sustain complex products. At its core Scrum is all about facilitating continuous learning with the ability to adjust to change. Scrum is structured but not rigid, it allows for adjustments based on the needs of a Product or organization. Scrum is comprised of a few key activities.
- Backlog Grooming – The Product Manager is responsible for maintaining an ongoing backlog of users’ needs, trends in the market and creating a north star for the overall vision of the Product.
- Sprint Planning – The entire team meets with a scrum master who heads up the meeting. In this meeting, goals are planned out based on user stories. The stories that are chosen to align with the overall goal of the sprint.
- Sprint – A sprint is a specified time period (typically 1-3 weeks in duration, with 2 weeks being more common) that the team agrees on to complete an increment.
- Daily Standup – This is a daily meeting to make sure everyone on the team is on the same page and that things are moving along on the right timetable.
- Sprint Retrospective – The sprint retrospective is when the team meets to review the overall project and go over what worked and what didn’t to create an opportunity for improvement the next time around.
Scrum is an effective framework for agile teams doing product development. Releasing increments quickly keeps teams motivated with fast feedback and learning. That said, if an organization is used to the Waterfall approach it can take some getting used to. The daily meetings, sprint reviews and appointing a scrum master can be a major change, but change is good and the only thing constant is change.
To conclude, the benefit of Agile is that you do not have to have every detail figured out when you begin (like Waterfall). Requirements only need to be defined just far enough ahead for the team to work on it. This allows the team to respond to changes and deliver value much faster, and with less risk.