PM-Fu: How Much Detail Is Enough?
September 9, 2007 – 9:35 pmProject Managers all over the world struggle with this problem. How much detail is enough in my project plan?
Most Project Managers error to the side of high-level tasks. It’s easier to do at the beginning, everyone can agree on it, and it’s easy to get estimates on.
It’s also, unfortunately, what leads to problems. Let’s say, for example, you have an implementation for a customer that calls for developing five pieces of functionality. You put in a development task and appropriate testing tasks for each piece, then you put in a deployment task at the end. That should be enough for the development piece, right? You get your estimates from development- four tasks at four hours each, and one larger piece- it’s going to take a week. Fine. You move on.
Fast forward a month. The one-week task took three weeks. Testing has been a pain. It’s gone back for corrections five times now. Your deadline is completely shot, and no one can give you a well-defined date on when you’ll be done.
What went wrong? Was the original estimate bad?
I would argue that the original estimating method was bad.
Modern software development isn’t like it was in the days of yore. There are no monolithic programs (for the most part) anymore that it takes weeks and weeks to write the single thing, with no steps in between. In reality, that one week task described above probably consists of a number of sub-tasks, like:
- set up database tables
- create object X
- build method 1
- build method 2
- etc
Obviously, you do not want to micro-manage. You also don’t want to overdo task list management. I would argue, however, that any given task should span no more than one day in your plan. If it does, then you need to break it down into sub-tasks. Why do this?
1. When breaking the task down into sub-tasks, often your team member performing the task will become more accurate in their estimates
2. You can more effectively isolate trouble tasks to explain them and report on them. How many times have you had this discussion: You: “Bob is running over on development. He’s a week overdue on item X.” Exec: “What part is he stuck on?” You: “Item X.” Exec: “What does that mean? Can we get him help? How much more does he have to go?” You: “Uhh…”
3. You can actually get your team members help. Staying with the developer example: Is the developer overrunning on the database work? Get a DBA to help them. Are they stuck on a method in one of their objects? Maybe another developer can complete another objects involved in the functionality to get you back on track.
4. You can plan around day-to-day operations vastly easier. If someone has a two-hour ops meeting on Thursday morning, and a conference call that evening, you can reliably say that they probably won’t complete their day-long task that day. Push the timeline out one day. Very simple. A quick glance at your team members’ calendars tells you, and them, everything they need to know.
4. Imagine how happy your team members will be when they figure out that they have a goal of one item per day. Come in to work, do this by end of day. No planning, no juggling, no balancing. You complete your task and move to the next. Simple.
5. You create stopping points. If team member X has to be pulled off the project for an operational thing for two days, you can simply insert that in the midst of a major task by dropping it between the subtasks. Simple and elegant.
Getting the right amount of detail lets you follow up the right amount and estimate the right amount. If a task consists of five day-long sub-tasks, then when three of them are complete, you’re somewhere between 60 and 80% complete. Once your team members learn that they are suddenly not facing the “what percentage are you done?” question nearly as often, they’ll prefer your method as well.
Some team members aren’t going to like this method, because they do have to think through the details. They will feel it is micromanagement. It isn’t. Being asked to state at the end of the day if you finished what you started out to do that day is not a big deal. I recommend that you sit down with them and explain the benefits of this- they have one item to report to you, simple yes or no, at end of day each day. Project status meetings become simple or non-existant. They can get help when they need it. Sell it however you must, but embrace this method. Your project plans may get longer, but believe me, they’ll get more accurate as well.
Like this post? Buy me a cup of coffee.Popularity: 39% [?]





7 Responses to “PM-Fu: How Much Detail Is Enough?”
I think that you are exactly right that we should be aiming at a detail of tasks that are around 1 day in duration when beginning development. But there is a cost associated with having a person crank out those estimates. Often a project will need to “get the go-ahead” from the project sponsor before you can spend development team resources doing detailed estimates.
Those high level estimates are what often are so wrong (as you pointed out). I think that one of the biggest reasons is that as project team members we’re giving estimates like “2 weeks”. “2 weeks” isn’t really an estimate, it’s a guess, a prediction.
An estimate is something like “1-4 weeks” or “3-5 days”. It really should be a range. One big downside of single-point guesses is that the guess is likely to be treated like a promise. On the other hand, giving a ranged estimate opens the discussion of what could happen (risks) that would push the effort towards the worst case end of the estimate or bring it in towards the best case end.
One of the primary problems is that project managers need a single number to plug into MS Project (or any number of similar tools). That coupled with the observation that these single-point guesses (especially at the high-level) are treated as promises pretty much make a person want to give up on high-level estimation altogether.
If you always give all of your estimates in ranges (e.g. 4-6 person weeks, 1-3 days, 6-9 staff months, etc) it is quite clear that it is an estimate, not a prediction or a promise. Giving a range opens the discussion of what could happen (risks) that would push the effort towards the worst case end of the estimate or bring it in towards the best case end.
Another nice thing about ranged estimates is that when you are asked to estimate something with poorly defined requirements you can give wide ranges to communicate the uncertainty. Well defined, believable requirements get estimates like 5-7 weeks whereas poorly defined, nebulous requirements get estimates like 4-20 weeks. This is especially true when giving high-level estimates.
There’s pretty much no way to get around doing high-level estimates. Your business needs some idea of the investment required to complete a project in order to make trade-offs. Hopefully this happens before your development team spends a bunch of time doing detailed estimates. Also folks in other departments (e.g. marketing, operations, manufacturing,…) need some idea of when they are likely to take delivery of the software. A team that can accurately (not precisely) give high-level estimates for these things gives their company a real competitive advantage.
So while it is frustrating, there are ways to do it and retain your sanity.
By Bruce P. Henry on Sep 17, 2007
Thanks for the feedback, and I definitely agree with you… ranges have a place in things. Sometimes you just have to get a best guess and get your project moving. Obtaining the level of detail I mention in estimates is more expensive as well. My post above is colored by my current company’s culture, which is very focused on hitting your predicted dates and delivering on time.
That is an important key, I think- what is your company’s culture? What is your business owner’s goals?
I think it’s the old “cost, time, or quality” thing. You can give good estimates, hit your date exactly, and hit your budget exactly, or you can move fast and give up some accuracy. This is good food for thought about estimates. I’ll ponder that during my trip to DC tomorrow; look to see another post on this subject soon.
By Stacey on Sep 17, 2007
I agree that, once you are close to starting coding, breaking down tasks into 1-3 day chunks is sensible. I also strongly agree with Bruce that ranges are the best way of expressing estimates (as I recently said in my quick guide to estimating at http://outofthetriangle.wordpress.com/2007/09/12/accurate-estimates/)
I would be interested to know what course of action you would recommend when a “1 day” task is not completed? Is it wise to assume that all estimates for 1 day need revising to be 2 days? Or is it better to break down the task into further sub-tasks at this point? I’m not sure.
In my experience strong developers (the most productive and often most critical to the success of your project) will resent tracking a plan at this level of detail. Killing the motivation of your most valuable team members does not make sense to me. I have found it is better to allow strong developers a significant amount of freedom for how they estimate, track and report on tasks that they are responsible. I would reserve “micro management” for those who struggle to be productive without it. I would say that this is a textbook case of a management/leadership trade-off (see my post on the subject at http://outofthetriangle.wordpress.com/2007/07/16/management-and-leadership/).
By David Daly on Sep 21, 2007
When a “1-day” task is not completed, it is like any other incomplete task that missed its deadline. You manage to that. This may involve dipping into your reserve time, getting a new estimate from your resource, getting help for your resource, risk management, and whatever else the specific situation calls for.
As far as ranges go, as I said, I agree with that too, however in our business environment a ‘range’ estimate is 100% unacceptable to the business unit. It’s fast-paced, there’s not a lot of slack in the project plans allowed, and once you commit to a deadline, you must achieve it.
A strong developer who is an effective estimator should by all means be allowed to give more broad estimates. My experience is that not all quality developers are also quality estimators- there’s a difference. Some of them are excellent at it and should be granted latitude as a result. One of our best developers is frankly a horrible estimator.
For those that are not good at estimating, while they may rail against this method, their estimates get much better when it is used. Taking the time to break down tasks gives me better estimates, helps them plan their work, and for some of our team it has actuall made them faster and more accurate at their jobs. If your staff is of quality that longer estimates are reliable, than by all means go with that.
That’s a lot of what this methodology is about. It is definitely not for all shops and skill levels. It is aimed at the shop without the senior, experienced staff that is always right on their deadlines. It’s aimed at the shops where the deadlines can’t be missed and precision matters.
As for whether or not it is micromanagement, that to me is as much about attitude as it is about level of detail. I am currently following up with my development team, and the rest of my project team, on a daily basis, and they are responding well to it. Part of what I do is not only ask them where they’re at; I bring them information from other team members, I find out if there’s anything I can do for them, etc. There’s another manager in our offices who is considered to be a horrible micro-manager and is much hated for it, even though that person tends to follow up with people only once or twice a week. Whether or not you are micromanaging is, to me, about whether or not you are helping them or getting in their way, not how often you communicate.
Since adopting these methods, we’ve seen a huge increase in the pace at which our project team is moving, attitudes are generally better, and we’re hitting deadlines more effectively. A lot of people even stop by and give me follow-ups on their own in person now, just to check on the latest project news while they’re there. It makes my job much easier and keeps people engaged and communicating.
I certainly acknowledge that there’s situations where this methodology would be a dismal failure, it works for us.
By Stacey on Sep 21, 2007