Agile is sweeping the nation. Well, it is if you’re involved in project management. It’s not new, agile has been around for over 20 years, but it seems to have gained traction with each passing year and is trending, as they say in social media circles. But is agile really the miracle cure for all project woes as it’s often prescribed?
Of course not, but it’s a fine way to manage a project, and agile offers some unique advantages for the project leader and their team.
We’ve discussed the agile approach over the traditional waterfall methodology before. Agile is a software development project management approach that has gained momentum over the years, with good reason. It addresses uncertainty with respect to product requirements and development as opposed to waterfall, which looks to organize the project lifecycle phases in sequential order – Initiation, Planning, Execution and Closure.
What Is Agile?
What agile is can be elusive. It depends on whom you ask. There are several disciplines that are under the larger umbrella of agile, such as scrum, XP Extreme, lean and Kanban Software Development and Crystal Clear.
Agile makes planning an iterative process throughout the project lifecycle. The term “fail fast” is commonly used to emphasize the desire to produce a product that isn’t perfect but can be reviewed by the customer to gather feedback.
This feedback is crucial. Agile does not subscribe to the traditional project management approach which teaches all requirements should be gathered and approved before build activities can begin. Agile is more practical and efficient, engaging the product owner and key stakeholders in the build and testing process as the product is being developed.
This saves time. Why wait three months to gather requirements and another four months to develop a product only to find out the product is not what the customer really wanted? Why not develop a little, show the customer, incorporate their feedback, repeat the process and build a product the customer wants in less time? In a nutshell, this is the goal of agile.
What Are the Right Conditions for Agile?
Agile is best used when product requirements are uncertain. Time is used more efficiently to engage the product owner and the scrum team, starting with the use of user stories. User stories are a brief description of features and functionalities the product owner wants to have developed.
The product owner and the scrum team then take these software features and creates a to-do list called a “product backlog.” Once the product backlog is established the scrum team creates a “sprint backlog.” These features are then scheduled for release in “sprints.” Sprints are scheduled releases of features designed to develop and deploy small portions of the product at a time.
The product owner and scrum team will have daily scrum meetings to review the development progress. This approach helps to address the issue of product or requirement uncertainty. Develop some, test, gather feedback and continue developing until the product owner is satisfied with the end results.
When is Agile Not the Best Approach?
Agile is not always best, such as when there is little uncertainty regarding requirements. Project management efforts where there is a solid history to use as a baseline for a new project may be better suited for a methodology that makes use of waterfall project management tools.
Managing the build of a data center is a good example. The planning effort depends on solid requirements and a specific sequence of activities to be completed in order. You cannot build a little and test a little with a data center. It’s impractical.
So, When Is Agile the Way to Go?
Now that we have a good idea of what agile is, what kind of environment it’s most suited for and those projects that are better served with a more traditional methodology, it’s time to look at where agile makes the most sense. There are many, and here are a few:
- When requirements are uncertain The agile iterative planning approach allows developers to begin sooner and makes the product owner part of the development process. There is no need to spend six months documenting requirements that may or may not result in what the customer wants. In developing a new product feature the product owner can visualize the feature sooner allowing his or her feedback to become a part of the development process to deliver the product sooner.
- Software development projects are best suited for agile Software development projects allow for parts of the overall systems to be developed, tested and delivered. This means specific features can be rolled out sooner. Sprints allow these features to be scheduled for testing and deployment separately from each other allowing the development scheduled to be as efficient as possible.
- Teams that are co-located benefit from an agile approach (daily scrums) A key to the agile approach is the daily scrum meetings. The daily scrums allow the team to discuss status, roadblocks and input from the product owner. Having these meetings in-person to update the scrum board is optimal. Team members who are co-located can approach and update the scrum board at any time. This helps with team collaboration.
- Proactive Product Owners Real-time feedback is key for success in agile. This replaces the need for cumbersome documentation that may never really convey the true requirements of the product owner. A product owner that is engaged and provides the development team with constant feedback allows the team to develop the right product sooner. Product owners should attend the daily huddles and vocalize their wants, likes and dislikes. This will allow the development team to produce a product the product owner wants.
- Teamwork and collaboration—teammates who show initiative Social accountability is a key driver in the agile approach. agile looks to create an environment where teams manage themselves to an extent. Scrum Masters look to create a team that is proactive and shows initiative. If a team member is not stepping up to produce or become engaged the scrum masters expect their teammates to look to help, encourage and motivate each other. The scrum Master leads by example to set the tone for the team to encourage and hold each other accountable.
- Willingness to fail and learn to fail fast and learn even faster. Prototyping and feedback are essential tools in agile. Traditional development attempts to map out all requirements before development begins, which may not be a good use of time, especially when developing what will be a new product. Develop something now! Even if it is not what the product owner wants in order to get feedback as you continue to develop.
- Management support of the agile framework and its culture of empowering teams agile can present a shift in culture and expectations for an organization, as it encourages teams to become empowered to make decisions and take risks. In contrast, a traditional development organization a Project Manager may provide clear direction, while an agile acrum master focuses on allowing teams to provide direction and recommend what is best for the development of the product and the product owner. Management must provide the latitude necessary to allow the team to thrive by providing guidance and direction and not try to dictate every move.
The embrace of agile is exciting. It provides one more tool in the project leader’s toolbox with which to address the progress of a project. Like any tool, there are tasks that it’s better at and those which it is not as well designed for. But we’re all better project managers with more to choose from than less.
Tools are the instruments that allow a project manager to do their job, and the right tool is essential to get that job done correctly, on time and within budget. That’s where ProjectManager comes in handy. As a collaborative online suite of software solutions, it gives you a means to plan, monitor and report in real time, while in the midst of your project. To try it on for size, check out our free 30-day trial.