The Great Agile Debate
In the United States, often as part of the political election process the candidates engage in a series of debates allowing the citizens to learn more about the candidates. These debates help each side solidify their allegiance to their candidate of choice, or in some cases choose a different candidate or even make up their mind for the first time who they will vote for. For several years, there has been a debate in the project management community about the best methodology to use when running a project: traditional project management or an agile approach?
I am a Project Manager Professional (PMP) who holds a certification as a Scrum Master (SCM). I have successfully managed projects for over 15 years using traditional project management methodologies as defined by PMI, always applying a practical management style and thought process. I was first introduced to Scrum in 2006, when the software development company where I worked began running a few agile projects. Initially, I fought the idea of this renegade approach to software development but decided to watch from a distance to see how this would play out. In 2007, I went kicking and screaming through my Scrum training and became a Certified Scrum Master and began working on my first agile project.
As I began to understand the agile concepts and tools they really began to ring true; and I could see the value agile brought to the table. I realized that there were some real benefits to Scrum while recognizing that there were some disadvantages. These are the key benefits and concerns I experienced with Scrum.
Benefits of Scrum
- Incremental functionality is delivered quickly and usually provides for quicker time to market.
- Communication within team members is increased.
- Feedback from the customer is increased, allowing for functionality which aligns with the customer needs.
- There is a high level of flexibility and agility which provides a means to adjust quickly to changes in requirements.
- The project progress is highly visible at all levels.
- Issues are identified early and with more transparency.
Concerns about Scrum
- Hard to manage scope creep due to the nature of iterative development.
- It is harder to identify at what point the project is complete.
- Some work is thrown away as functionality evolves.
- Most often requires experienced team members to make agile development work well.
The Bottom Line
Although the debate rages in the PM community, I have come to a conclusion which is best: Traditional and Agile. What do I mean by that? As usual, I like to put a practical lens on my approach to project management, so I feel that each methodology has its place. Even though I entered into the agile world kicking and screaming, I have come to embrace it and found it works very well when certain conditions exist or for certain types of projects. These conditions are as follows:
- Software development projects are well suited for agile.
- The development team must have direct access to the customer or a product champion who clearly understands the customers’ needs.
- The development organization must understand agile and fully adopt the approach.
- Team members must be trained in the methodology and understand their role.
- Development teams should be kept small to allow for a high level of collaboration.
- Agile development usually works best when teams are co-located.
On the other hand there are certain projects or conditions for which I would never recommend an agile approach.
- Agile doesn’t work well in a large software implementation, which requires a more rigid and disciplined approach.
- Agile should not be used when the organization, especially management, has not accepted the methodology because they won’t understand it.
- Organizations that are steeped in process will likely struggle to accept a methodology like Scrum.
- The more complex the resulting solution, the less likely an agile approach would work. For example, if a solution will have multiple integration points, it usually requires an in depth analysis ahead of time to make sure all integration points are considered in the design.
The Hybrid Approach
Although I still find myself managing most of my projects using traditional methods, I have adopted agile concepts and tools for a hybrid approach to delivering a successful project. Many agile concepts are very powerful and can be used hand in hand with traditional project management. An example of one of these tools is the Scum Meeting where the team meets daily to share yesterday’s accomplishments, today’s tasks, and what is blocking their progress. I encourage all to learn about these concepts and tools and consider incorporating agile in some fashion in your daily project management practice.