Wednesday, 19 August 2009 01:00

The Project Plan; How Much Detail Is Enough?

Written by 
Rate this item
(0 votes)

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.

Read 8404 times Last modified on Tuesday, 18 August 2009 14:45

Comments  

 
0 # Harlan 2009-08-19 05:07
This is a good description of task definitions and schedule development. And I agree that we often struggle with the level of detail. But by using the principles around creating the Work Breakdown Structure (WBS), this becomes less difficult. However this is not a project plan. The project plan contains this of course, but the project plan includes scope management, time management, cost management, quality management, resource management, risk management, issue management, and possibly procurement. It is your plan for managing all the aspects of the project life cycle, not just the tasks and time. So we should be careful about confusing a project plan with a task list or WBS.
Reply | Reply with quote | Quote
 
 
0 # Simke 2009-08-19 05:12
I agree with Harlan that there should be a common terminology in use, however I'd argue that what he mentions is rather called a Project Management Plan, whereas the .mpp document itself is usualy called a Project Plan (sometimes a Project Schedule). Anyway, with a given project anything, including precise naming of the various deliverables, is Ok if it is agreed by all key stakeholders - and that should be documented and available for all to reference.
Reply | Reply with quote | Quote
 
 
0 # pasekmi 2009-08-19 05:19
Nope. All wrong. Software Engineering is far too dynamic to break into small 1 day tasks. The better approach is to focus on functionality; define your 'Definition of Done' for each feature the business wants to see and deliver iteratively. Once 'DOD' is reached you are ready for Acceptance Testing. I would also argue that estimating is a waste of time. It's never accurate and you have to do the work anyway so get to it. The Science Fiction writer Harlan Ellison - when asked by his publisher when he would be done his next Novel said -- "I'll take as much time as the work demands, no more or less".
Reply | Reply with quote | Quote
 
 
0 # ltsuji 2009-08-19 05:30
A well written article. If I may make some comments: > 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/sc hedule, 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.
Reply | Reply with quote | Quote
 
 
0 # sean.ellis 2009-08-19 23:40
I believe the principal here is correct, that accurate estimates required a detailed understanding of the work required. For software development projects especially (but which can be applied to other types of projects), a better approach to overall project estimating/sche duling is one that divorces the scale or size of the task from the time it will take to do. Initial estimates on a project are usually only around 60% accurate in any case, by knowing the sizes of the pieces of functionality you are delivering and then measuring the rate of delivery, you can, over a period, more accurately determine the actual lenght of your project (or alternatively, descope low priority functionality). An excellent reference source on this method is 'Agile Estimating and Planning' by Mike Cohn.
Reply | Reply with quote | Quote
 
 
0 # Luckstersi 2009-08-20 03:02
I think the level of detail depends a lot on who is responsible for executing the task. A junior developer or sys admin on the project with no tech lead overseeing the work package might seriously benefit from a very detailed work breakdown to help them manage their time. A more senior developer who has a demonstrated ability to manage their time or if you have a tech lead who will oversee the entire work package will alleviate this need. The situation Stacey describes was my nightmare last year when the primary developer simply couldn't manage his time. When I started working with him closely, suddenly the work that was taking months and months to complete was reduced to a few weeks. Prior to that, I was faced with a lot of frustration from my client and my own leadership who couldn't figure out why I found it impossible to provide even marginally reasonable estimates. Unfortunately, the developer in question talked directly to the client up front and said he could do the work mostly over a weekend. That situation needed an extremely detailed WBS to manage. This time around with that developer, I I assigned a tech lead (also his boss)to the project and am just going to hand off a work package. He is going to have to manage the details. Funny story though. Had a sys admin that wasn't getting the network environment set up in anywhere near the time promised. His boss sent me the most detailed WBS for the work that I've ever seen. It wasn't just by day tasks, it was by each tiny little task. He asked me to put this level of detail in my WBS for prod, test, and dev environments.
Reply | Reply with quote | Quote
 
 
0 # mb132822 2009-08-30 23:26
I think the trick is to have a sufficient level of detail in your estimates for the job at hand. For things that are near to the team - estimates of tasks sized to be approximately one day are relevant and useful. If you are talking about work that is more than six weeks out, asking the team to define tasks and size them to a day is a waste of time because: 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.
Reply | Reply with quote | Quote
 
 
+1 # sfgilani 2009-09-17 02:33
After working as a project manager, a change management coordinator and a release management coordinator I think that the granularity of the task depends on the purpose of the plan. 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.
Reply | Reply with quote | Quote
 

Add comment