Microsoft Project is a widely-used scheduling tool. Its quirks and complications are a huge drain of time on the Project Management community. This series will go beyond tips and tricks to discuss solutions to real-life problems, to save time for its many users.
Calendars have a profound effect upon a project schedule. Holidays and vacations can conspire to make a task finish days or weeks later than expected. Keeping track of these key dates by hand is impossible for large-scale projects. Ignoring their effect causes missed delivery dates.
Fortunately MS Project contains a rich selection of tools to manage calendars. Unfortunately, powerful tools require discipline and planning to use effectively. Below find some techniques to solve real-life problems.
The Default Calendar: A Recipe for Forced Overtime
By default, MS Project uses a 40-hour week with no holidays and no vacations. By default, all resources can devote 100% of their time to the project schedule, 40 hours per week, 52 weeks per year. If the project manager does not adjust these defaults for non-project time, he or she is virtually guaranteeing either a late project or forced overtime to make the dates. In reality, no resource can spend 100% of their time accomplishing project work; non-project work must account for some part of everyone’s day.
There are a few ways to compensate for non-project time:
- Reduce the allocation for all resources to less than 100%
- Enter all scheduled time off into MS Project and enter dummy tasks for non-scheduled, non-project time
- Reduce the estimated work-hours for each resource below 40 hours per week
Ignoring the problem is not a reasonable choice.
The first choice, setting resource utilization below 100% is a very reasonable approach, and is simple to do with good resource-leveling techniques. See my “Dependencies and Leveling” article for more information.
The other approaches all involve some use of the calendar functions in MS Project. Calendars help to model real-life project constraints accurately.
Creating a Default Schedule for the Project
- The standard MS Project calendar is a 40-hour workweek with no holidays
MS Project ships with a “Standard” schedule, enabled for all new projects by default. It provides a standard 40-hour workweek: Monday to Friday, 8 a.m. to 5 p.m. with 1 hour for lunch at noon. It is tempting to jump in and begin modifying this schedule, changing it to suit your company’s real work schedule. Doing so can be dangerous, particularly when sharing schedules with other managers who may have a different “Standard” schedule.
Instead, under the Tools…Change Working Time… dialog box, use the “New” button to create a new calendar. Name it “My Company – Standard”, substituting your company’s name before the dash. Block out non-work days to start, using your company holiday schedule. Naming the calendar after your company recognizes the fact that different companies have different holiday schedules. If you use contractors or partner with other companies, you can always add other schedules to model their holiday calendar.
How Many Project-Hours Per Day?
- Define a new calendar for your company with holidays work hours that allow for non-project work
No project participant spends 100% of his or her day on project work. Everyone needs some time to deal with administration, phone calls, routine non-project questions, and e-mail. It is possible to create dummy tasks in the plan for every resource to account for these hours, but it is even simpler to adjust the calendar to allow fewer work-hours per week. Personally I have had success scheduling resources anywhere from 32.5 hours to 36.25 hours per week (6 ½ hours per day to 7 ¼ hours per day). Simply change the working hours for a standard week from an eight hour day to a standard early close. For instance, I enter a 6 ½ hour day as 9 a.m. to 12 noon and 1 p.m. to 4:30 p.m. Use your historical records to figure out the right number of work-hours for your team. Remember to account for unexpected and expected events: non-project work, sick days, unscheduled holidays, inclement weather, long lunches for farewell or welcome parties, and so on. When in doubt, plan on a shorter workday and build a schedule that your team can beat.
Assigning Calendars to Resources
- Tip: you cannot copy and paste the name of the new schedule into multiple resources, but you can “Fill” the same value across many resources. See Help…Index…Fill for step-by-step directions.
MS Project will not use the new schedule until you apply it to your resources. Go to the Resource Sheet for the schedule and select the new schedule as the “Base Calendar” for all the resources in your company. If multiple people have alternate work arrangements, like night shift work or a standard 4/40 work week, consider creating another base calendar for that group of people, and assigning them to the new base calendar.
Setting Individual Calendars
- Resource calendars drive the schedule for the tasks in a plan
Each resource also has his or her own personal calendar, which builds on his or her base calendar. The project manager can enter days off as scheduled for each individual resource. MS Project will respect the work calendar for each resource assigned to a task. There is some up-front cost to the manager, entering all this data into MS Project. Once entered, MS Project will not allow scheduling a critical assignment in the middle of someone’s two-week vacation. Preventing just one such blunder is worth hours of data entry.
Why Do I Need a Project Calendar?
- Set the Project Calendar from the Project Information dialog box
One of the more obscure settings in MS Project is the Project Calendar setting. Like the resource calendars, it will be “Standard” unless the manager changes its value. In general, it is best to change this setting to the company’s standard work schedule. Find this setting under Project…Project Information….
The effect of this setting is subtle. It drives the display of holidays in the Calendar views in MS Project. Tasks are scheduled according to the Project Calendar if there are no resources assigned to the task yet. Forgetting to change this setting can cause unexpected results in a plan, so do update the value.
What Comes First?
It is critical to know what schedule governs each task. With a project schedule and multiple resource schedules all interacting, there must be an order of precedence. MS Project uses the following order of precedence:
- Use the resources’ calendars if they exist. The start and end date of the task is driven by the earliest start date and the latest end date out of all the resources assigned to the task.
- Uses the project schedule if there are no resources assigned to a task.
A five-day task will fill five working days if no resources are assigned. Once a resource is assigned, though, its calendar governs. The five day task will expand to fill six working days, if the resource happens to have a day off in the middle. MS Project warns the user when making these types of changes, but they can make schedule changes unpredictable as a result.
Where multiple resources must contribute to the same task, be careful. Use the Resource Schedule split-screen view to see when each resource begins and ends their work. Changing one resources’ work on a task will not change the task end date if there is another resource on the task whose scheduled work ends later. Consider avoiding this whole complexity by creating separate tasks for each resource, and a milestone to track the end date for the joint task.
MS Project 2000 and 2002 provide an advanced technique that gives some additional control: task calendars. Give a task a task calendar, and work takes place only for those hours where its resources’ calendars and the task calendar both have work time. This tool allows modeling tasks that can only be performed at certain times of day or at certain times of year, due to weather, noise regulations, or other complex criteria. There is even an option to ignore the resource calendar, assigning work even during non-working hours for the resource. Using a task calendar and ignoring resource calendars will schedule resources to work on their days off, so use the option cautiously. Each task in a schedule can have different settings for these options, so this is a powerful tool to control scheduling very precisely but it also can quickly add complexity to schedule maintenance.
MS Project provides a rich set of tools to schedule complex situations. Use them carefully to avoid losing control of your own schedule.
Fixed-Duration Tasks and Calendars
One reader e-mailed me a recommendation to avoid fixed duration tasks, contrary to my recommendation in an earlier article. Calendar changes can change a “fixed” duration. Interestingly, MS Project 98 ignores resource calendars for fixed-duration tasks; MS Project 98 acts the way this reader expects, keeping duration fixed no matter what. With MS Project 2000 and 2002 the tool adjusts fixed-duration tasks because of resource calendar changes; adding a holiday for the resource increases the duration of the task, but ironically removing a holiday does not reduce the duration of the task. Task duration remains fixed during resource assignment, regardless of resource calendars in all versions; MS Project 2000 and 2002 does warn the user about the change.
No matter what methods used, the project manager MUST keep a close eye on dates. Understand the side effects of each technique and adjust the schedule as needed.
Calculating Hours, Days, Weeks, and Months
- Changing the Calendar Options changes the calculation and display of hours, days, weeks, and months, but it does not change the schedule
Beware of the Calendar tab in the Tools…Options… dialog box. This appears to allow you to set longer and shorter workdays, by setting default start times, default end times, and hours per day. These values are do not affect scheduling. When a user enters days, weeks, or months for any field in MS Project, this dialog determines how MS Project converts that value into hours. Helpful text on the dialog box recommends synchronizing these values with the standard calendar for your project, but be careful before changing these values. An existing project has all duration values re-calculated every time these conversion ratios are changed. In general, synchronizing the values to the project calendar is wise, though.
Remember: Calendars control work schedules, and Calendar Options control conversion ratios.
Modeling What You Know and What You Do Not Know
Calendars provide the means to model known scheduling issues, like holidays and planned time off for staff. Creative use of calendars allow the manager to model less certain effects, like sick days, by reducing the planned work hours for all resources. Achieve the right balance for your project. The less time spent tracking and entering planned, individual time off, the fewer work hours you should schedule for each resource. The more detailed and accurate the individual resource calendar is, the more work hours can be planned for each day. Adjust estimates based upon actual results to develop an effective, accurate model for your team’s work calendar. MS Project provides a rich set of tools to manage these scheduling decisions.