Project managers all over the world struggle with this problem. How much detail is enough in my project plan?
Most project managers err on 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 with the 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 more easily. 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.
5. 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!
6. 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, a simple yes or no, at end of day each day. Project status meetings become simple or non-existent. 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.
Don't forget to leave your comments below
Stacey Douglas is currently the Director of Software Development for NASBA and resides in Nashville, TN. In the past, Stacey has been a developer, project manager, business analyst, sysadmin, and all points in IT in between. You can learn more about Stacey at his blog, undocumentedfeatures.com, and his website, staceydouglas.com.

written by Harlan, August 19, 2009
written by Simke, August 19, 2009
written by pasekmi, August 19, 2009
written by ltsuji, August 19, 2009
> I do agree in principle with the benefits as described by Mr. Douglas. However, the practicality of daily planning will be project dependent.
> where I am employed, the "40/80 rule" is recommended; i.e. 40 hrs/1w to 80hrs/2w. Any further granularity becomes difficult and enters into micromanagement territory.
> I would like to offer that, for larger projects, the initial planning can still be fairly high level in order to keep things manageable. Further breakdown (the daily planning) can perhaps be passed to a core team member(s) as a work package that they commit to and, in a sense, manage themselves (being the subject matter experts). Of course, this could be an iterative process with the PM still watching over the budget/scope/schedule, but the daily breakdown of tasks to get there within this work package can be developed by the team member(s).
If the project has multiple layers of project managers, this may be less of an issue.
written by sean.ellis, August 20, 2009
written by Luckstersi, August 20, 2009
written by mb132822, August 31, 2009
1. The team will have a very limited understanding of the work to be done that far out.
2. Quite often the team will overlook details related to how work sequence affects scope of a package. I.e., if you ask me to develop feature 'x' or feature 'y' by itself, we have to implement a set of supporting infrastructure. If you ask me about doing 'x' after 'y', then the cost will be like 80% less because we can leverage what we have previously built.
3. Things change. End user thinking about requirements evolves. Scope evolves. Needs evolve.
For things that are further out, I suggest estimation at the feature or package level only. Who knows, that stuff that is 2 months out or longer may never be needed anyway! If you spent time drilling down on an unnecessary feature during planning or the team provided inaccurate detail on a feature that is so far out we've wasted time and energy.
Best to focus on good estimates for things near to the team, higher-level estimates for things further out.
written by sfgilani, September 17, 2009
For most project plans a granularity of 40hrs/1w per task is sufficient. It allows sufficent detail for calculating the effort and hence the $ cost of the project.
On the other hand when putting together an implementation plan the granularity level can be a day, hour or even in minutes. Here the emphasis is on time sensitivity of the task and not so much the cost. As a release management coordinator we sometimes had to plan implementation tasks to the minute level allowing changes to be released into production systems in a 2 minute interval between two batch processes.
