Agile Advisor

Agile Planning Benefits

Agile planning does not mean "no planning"; it means a flexible plan that changes with the situation.

One of the most common myths with regards to agile teams centers on planning.  It seems there are large factions who believe being "Agile" means avoiding planning.  It's a common stance taken by folks who have never been on an agile team, or who love to defend the status quo.  This myth couldn't be further from the truth, and I find myself increasingly frustrated when people use it as a way to avoid agile practices.  In fact, I'd argue that a healthy agile team does just as much (if not more) planning than a team using a traditional software development methodology.  In this month's column I want to dig into the key differences between planning on an agile team and traditional planning.

Planning Approaches
The first and largest difference revolves around how to think about planning and the value it brings to a project and team.  A traditional approach to planning requires you to spend large amounts of time studying requirements, architecture and design options in an attempt to produce a plan that will guide you to success.  Without the correct initial plan, the project won't succeed.  Agile teams think differently.  An agile approach to planning also involves studying requirements, architecture, and design; but an agile approach puts a stronger emphasis on getting started on the well-known and well-understood requirements and architecture over continued planning.  The expectation is that the team will derive greater value from starting on the known requirements than it would from continuing to invest in additional planning.  Said differently, the value of any learning that results from getting started will have a greater return on investment (ROI) than the value from continued planning. 

ROI
Figure 1 shows the expected ROI using a traditional approach to planning.  Notice that the ROI in the early stages is significantly higher than the ROI in the later stages.  This is quite common because in the early stages of planning the team is able to uncover and solve a lot of the well-known problems.  Every hour spent on the planning results in a high return on that investment.

[Click on image for larger view.]
Figure 1. Traditional planning gives strong initial benefits, but they don't continue at the same level.
However, the longer planning continues, the lower the team's confidence level in the overall plan.  ROI starts to diminish significantly.  Why?  Because the plan is building on assumptions made in the early stages, and not on any concrete learning.

Contrast this with Figure 2, which shows an agile approach to planning.  Planning begins in the same manner; but shortly after the planning starts, it's stopped to begin execution.  Why?  Because the team anticipates learning more from getting started than it would learn from continued planning.   After the team has executed on what is well-known and well-understood, it returns to planning.  This process continues throughout the duration of the project.


[Click on image for larger view.]
Figure 2. The ROI of agile planning continues to deliver greater returns over time than does traditional planning.
Let's take a look at a non-software scenario as an example.  Imagine that you're planning a road trip across the country from Seattle to Boston.  You're likely take the time to plan your route to ensure you know the correct the freeways and highways you'll travel on.  You're also likely to plan how far you think you'll be able to travel each day.  It's a good investment of time, and it will help make the trip successful.  

However, you're unlikely to plan each and every stop upfront before leaving.  You could calculate your ideal mileage for each day of the trip, and even go so far as to plan when and where you'll stop for gas.  The return that type of time investment is likely to be very, very low.  Things change, and you want to have flexibility to adjust and react to those changes.  You clearly want to have a plan for where you're headed and approximately how you'll get there.  But you also want to leave room to adjust your plan as the trip begins to unfold.  This is similar to an agile approach to planning.

Responding to Change
This line of thinking comes from the fourth statement in the Agile Manifesto: an agile team values "Responding to change over following a plan."  Note that the manifesto doesn't state that an Agile team does no planning; instead, it makes a clear statement that an agile team puts more emphasis on how it responds to change than it does over the team's ability to follow a plan.  An agile team expects that once it gets started, executing the plan is more than likely to change based on what the team has learned. 

George Patton, one of the most famous generals in American history, stated rather eloquently "A good plan violently executed now is better than a perfect plan executed next week."  As your teams look to improve planning and increase the value derived from that planning, try an agile approach and see if your team doesn't see a higher return on its investment.

About the Author

Aaron Bjork is a Principal Program Manager at Microsoft working on Agile experiences and tooling within Team Foundation Server (TFS). Prior to joining TFS in 2008, Bjork worked as a software engineer and development lead in Visual Studio. He is passionate about Application Lifecycle Management solutions and has a strong desire to see teams improve their software engineering practices. Follow Bjork on his blog at blogs.msdn.com/aaronbjork.

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube