wtorek, 29 kwietnia 2008

Sucessfull scheduling

I have been asked lastly if I know how to schedule successfully. For novice PM the task seems to be easy in Microsoft Project - simple Gantt chart is all what you need. More experienced fellow, who has realized at least one bigger project will just smile as he knows already how tricky the life is.

PMBoK defines 4 main project dimensions - scope, quality, time and budget. Most of stakeholders likes to track mostly the schedule (time) as it is the easiest thing to track. PM must be a solid man to be able to clarify connections between schedule changes and 3 others things (scope, quality and budget) - this is why the best option is to avoid baseline changes.
There are the following key tips, which should be followed in any schedule - some of them may be for you a cliche, but believe me that they are easy to forget:
  1. Ensure that you included any formal holidays (may and december is full of them in Poland) or informal holidays (like the integration camp)
  2. Ensure that you included teammembers holiday&training plans within project timeframe (like any other days when they are not at work)
  3. Estimate time conservatively, but remember about the Parkison's paradox - somehow even the longest predicted time for a task will be used in 100%
  4. You MUST to have some buffer if somebody will be sick, if things will go not as planned - higher the project risk is, bigger the buffer should be. 20% is the default value calculated once by Accenture.
  5. Include milestones (0 day long tasks) to mark achieving important moments in the project
  6. Prepare for change - make the schedule as simple and as solid as possible so it is easy to maintain. For example if you have the team-mate who will do 4 concurrent tasks, it does not have a sense usually to model it in the schedule as 4 tasks with 25% usage of resource - usually 2 or even 1 task is enough.
  7. Make phases as short as possible (1-3 months) and at the end of each has some part of visible and production work finished - yes, it comes from agile world and it works!
  8. Share the schedule among all teammates - how you do it, it is up to you, but everybody should have the schedule in their vision range daily.
  9. Save the baseline and track the schedule at least weekly - have a quick session with your teammates and review progress.
  10. Prepare that the last 10% of task will be the worst and it will consume about 20% of your time.
I know many PMs and each of them schedule slight differently, even when they use the same MS Project - they have they own scheduling style, so to speak. The bullets below are just the guidelines and you may have your reasons to do the things differently:
  • Use schedule calendars to realize (1) and personal calendars to realize (2). Tools>Change work time.
  • Note who estimates too conservatively and too optimistically and make necessary corrections of their estimations (3).
  • The task should not last more than 5 working days (3)
  • Use dependencies between projects wherever possible - do not use constant start and end date (this approach causes usuaylly that the schedule is harder to maintain)
  • When using dependecies there is quite cool option to delay or make quicker particular task - use it wherever applicable
  • Very often if you request the time buffer offically you get the refusal from the stake holder - this is why the best approach is to add AT THE END of each important task group the solid task(s) like integration or unit tests with significant amount of time and ensure it is on critical section as only than it is a real bugger; you as PM are responsible for efficent usage of it during the project (4)
  • MS Project gives many different ways to share the schedule among people - tasks via emails, WebAccess, EPM, Project Reader etc. I have tried most of them and I must say that still the best way is to print on paper number of copies of the schedule and pass them to all the teammates and hang it somewhere in visible place (8)
  • Printing schedules in MS Project is the art itself, but there is very usuful way to do it nicely - delete all the irellevant task like the next unestimated phase (but do not save the change), go to print preview>page settings and use the option of fitting to 1 page (for small projects) or more (for big projects).
  • If the schedule does not go as it is planned and the difference is significant, you must be tough enough to admit it and introduce the repair plan - do not hide the problem under the carpet, do not limit the time for tests or other following actions because any of this solutions will explode at your face later on and it will be just worse. I know it is a painful thing to explain this type of things to the stakeholders, but believe me... Even when they will angry on you, you may always tell that at least your are this type of person who can openly discuss the issue and... do not kill the messanger ;) (9)
  • If the project goes better than planned, never ever promise too much... If it will be finished on time - you are the one then (10)
  • Use "Resources workload" to ensure that there is no overallocation
  • Using "Rosources spreadsheet" you may add cost of work and calculate easily the cost of work for the whole project
  • ALWAYS, ALWAYS remember what is the target of the project and ALWAYS have it in front of your face - do not loose yourself in papers as you are not a EU clerk and do not loose yourself playing with toys as you are not a kiddo ;)
 
web metrics