Imagine you're a project manager. You talk to your technical lead and ask how far along the team is. "Oh, we're about 90 percent done," he says. If you're like most project managers, your heart sinks. You've been here before. Ninety percent done means the other 90 percent is left to do.
But what can you do to eliminate—or at least reduce—the 90 Percent Done schedule game? Isn't it just a fact of life for software projects?
No, it's not. You can avoid this schedule game entirely. But you do need to work differently.
Plan in Inch-Pebbles
The first thing you can do as a project manager is to organize the tasks differently. If your team members like to estimate in one-week or larger chunks, work with each team member to break down the work into inch-pebbles, one—or two-day tasks. That way, everyone knows when each deliverable is due-something is due every day, or at the most, every other day. An inch-pebble either is done or not done—there's no "percentage complete" for an inch-pebble.
If you're accustomed to managing the schedule with a Gantt chart, be forewarned: Don't put the inch-pebbles into a Gantt chart. You'll have so many details that you won't be able to see what's really going on in the chart. Instead, each person manages his or her own inch-pebbles and reports problems to you.
Use Rolling-Wave Planning at the Inch-Pebble Level
Daily schedules are fluid, whether you're using inch-pebbles or not. To manage that fluidity, I like to ask people to generate two to four weeks of inch-pebbles at a time. I don't expect them to finish all of their inch-pebbles on time, but we can both see quickly if they become stuck. As one week finishes, they adjust their remaining inch-pebbles and add another week at the end. They always have a detailed schedule, but no more or less than those two to four weeks—rolling-wave scheduling at the inch-pebble level.
Use Inch-Pebbles to Provide Feedback on Estimates
Many people estimate in several-week chunks because they have no idea how to estimate. If your team members generate inch-pebbles and then monitor how long each task takes, they are likely to provide better estimates next time.
Inch-pebbles help people see all the work that is a part of their larger task, so they can better estimate the task at the beginning. And when they use inch-pebbles, they can see how fast they make actual progress.
Make Status Visible
Sometimes people fall into the 90 Percent Done schedule game because they have no idea how far they've come or how far they have left to go. They say 90 percent because they don't have any way to make the status visible, and 90 percent seems to be how far they've come.
If you're the project manager, ask team members to think about how they will show you progress. If they make the progress visible to you, it will be visible to them. If you're a team member, think about work artifacts that denote visible progress to yourself and your project manager. With any luck, you can assess those work products to see how far you've really come on this task. Implement by Feature, Not by Architecture
It's very easy for entire teams to be caught in 90 Percent Done if they implement pieces of the architecture and then integrate the architecture at the end of the project (i.e., staged integration). It's too hard to integrate unfinished pieces of architecture, and it's too easy to underestimate what it really will take to finish the features when a team implements by architecture.
Even if you have an architectural phase, it's worth implementing by feature, implementing only what you need in the architecture for each feature, and integrating as you proceed. If you implement by feature and integrate as each little piece works (several times a day, or at least once a day), you have continuous integration. Continuous integration provides you immediate feedback about your or your team's progress, which eliminates 90 Percent Done.
Project managers have several ways to stop 90 Percent Done or even eliminate it entirely. If you don't stop 90 Percent Done, you'll end up with a death-march project—and no one wants that. Knowing your real status frees you and the team to make great decisions and not have a project that doesn't end because you're caught in the 90 Percent Done schedule game.