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

  • AI for GitHub Collaboration? Maybe Not So Much

    No doubt GitHub Copilot has been a boon for developers, but AI might not be the best tool for collaboration, according to developers weighing in on a recent social media post from the GitHub team.

  • Visual Studio 2022 Getting VS Code 'Command Palette' Equivalent

    As any Visual Studio Code user knows, the editor's command palette is a powerful tool for getting things done quickly, without having to navigate through menus and dialogs. Now, we learn how an equivalent is coming for Microsoft's flagship Visual Studio IDE, invoked by the same familiar Ctrl+Shift+P keyboard shortcut.

  • .NET 9 Preview 3: 'I've Been Waiting 9 Years for This API!'

    Microsoft's third preview of .NET 9 sees a lot of minor tweaks and fixes with no earth-shaking new functionality, but little things can be important to individual developers.

  • Data Anomaly Detection Using a Neural Autoencoder with C#

    Dr. James McCaffrey of Microsoft Research tackles the process of examining a set of source data to find data items that are different in some way from the majority of the source items.

  • What's New for Python, Java in Visual Studio Code

    Microsoft announced March 2024 updates to its Python and Java extensions for Visual Studio Code, the open source-based, cross-platform code editor that has repeatedly been named the No. 1 tool in major development surveys.

Subscribe on YouTube