A real conversation I had two weeks ago:
Executive: “What project management method do you use? Please don’t tell me it’s Scrum.”
Me: “Actually, we are Agile and use Scrum.”
Executive: “Oh, no! I have seen so many Scrum projects go bad!”
Other Executive: “Well, this is more of a hybrid project…”
Me: “We could get into a whole philosophical discussion here. Let me assure you: we have a strong plan and we are constantly working the plan. That’s still Agile.”
I completely understand the Executive’s concern. I, too, have seen a lot of projects try various Agile practices and fail miserably. However, those same projects would have failed no matter what techniques they practiced. The teams had a lot of trouble with one of the most fundamental concepts of project management: putting together a plan and adapting to change.
Agile planning is not an oxymoron! There are entire books written on the subject. Even the ScrumMaster training course teaches the importance of release planning and provides some techniques. Every project has a set of deliverables and/or a sequence of events that must be completed, yet many projects fail to plan adequately. In the worse cases, teams fail completely to do any long-term planning, only planning from one sprint to the next.
So how do you get a project out of this trap? The following are essential for agile project planning:
1. Compile the product backlog: It’s impossible to plan a project if you don’t know what you are trying to build. At first, the product backlog should have all the known epic stories, prioritized with very high level estimates. Estimates at this point can be as simple as story points or t-shirt sizes (small, medium, large, etc.). The highest priority epics then need to be broken down into user stories, which also need to be prioritized and estimated. If possible, involve the customer throughout the process.
2. Establish your team(s): Use the backlog to determine how to structure your teams and put together an initial staffing plan. How you do this depends on what is in the backlog, the skills of your teams and the skills needed to complete the project. The goal is to put together teams that can work together for multiple releases and, ideally, the entire project. This is critical for success because focussed, stable teams will become more and more predictable in delivering results with each sprint. Stable teams also make planning easier because you will know how many user stories they can deliver each release.
3. Assign the work: If a timeline is important to the client, the epics and user stories can be assigned to releases. Upcoming user stories should be assigned to the first sprints. At this point, it is a good idea to orient the team(s) to the release planning. People like to know what is coming and knowing what is ahead will help them make smarter choices as they solve the user stories. Make sure, though, that everyone understands that the plan is dynamic and will evolve as the project progresses and that they are part of that evolution.
4. Plan, plan and re-plan: Change will happen. Adapting the plan to changes in the project must happen constantly. Project leadership (e.g. ScrumMaster, Product Owner, etc.) and the team need to reserve time each sprint to plan future sprints and releases. This includes breaking down epics into user stories, refining estimates and prioritizing the backlog. Think about potential project risks and make sure there is space in the near term plan to deal with them. Just resist the urge to solve everything at once. Depending on the rate of change in your project, update the plan at least once a week and communicate those updates broadly.
How do you plan your Agile projects? Please share your tips and techniques in the comments.