Yes, I wasn’t supposed to do this just yet, but since the number 1 request after the last post was just how I use project during an agile Project, here goes.
1. Fix the settings
Tools—>Options is the first place to go. I start with the calendar settings setting a focus factor. In the example below, I use a 25 hour working week:
I then move on to the Schedule tab and change assignment unit to Decimal and Duration to Weeks. Default task type should be Fixed duration (without effort driven) or Fixed Work, depending of what you like but here I use Fixed Duration.
I move on to the Calculation tab and deselect Updating task status updates resource status:
I confirm with OK and move to Tools—>Change Working time.
This dialog box works differently in different versions of Microsoft Project. In one of my previous posts, I described it as it works in version up until 2003. In version 2007 you select the Work Weeks tab and click Details.
Select all working days, Set day(s) to these specific working times: and the time you specified in Tools—>Options.
Add other holidays and free time. In Project 2007 you add a new exception, specify dates and click Details. There you can specify that these times are non working. (I think the new dialog box in 2007 is really confusing so make sure that the days are really off. It should look something like this before you click OK:
Then I double click the time scale and set the Middle Tier:
And the Bottom Tier:
Then I select Format—>Grid lines and set Gantt rows and Bottom Tier column as dotted:
I insert the column Work and now I have a Gantt chart which looks something like this:
I set the Project Start under Project—>Project Information:
Confirm with OK.
If I just want to make a simple plan, I just enter the sprints and add the sprint length in Duration:
I then link the sprints to each other (for example by dragging the bars to the next sprint:
You then move on to the Resource sheet which you can find under the View menu.
Here you enter your resources and now you see why you changed the metric for units: instead of talking percentage you specify how many guys you have of each type. Of course you can enter names here instead. I do so when different resources are available during different parts of the project.
The result looks something like this. As you can see I can see how many man hours we can count on during each sprint and this gives you an idea of how velocity might fluctuate due to resource changes.
Now I can update status, take out reports, etc on a project level. For example using the Task Usage view:
Or the resource usage view:
Observe that you can right click the chart part of these views and add Baseline values and Actual values if you wish to view or update this.
But during the sprints then? Well, I use other tools then in the form of TFS and the Scrum dashboard based on Conchango Work item template. I have no need to track this double, so I don’t use the Project integration. Project is good for planning and follow up plans, not for keeping requirements or priorities,
If I’d used Project during the sprints, I would create a new project file for each sprint and insert hyperlinks between the files. Just so I focus on that sprint and don’t mix up the metrics.
And this is the full extent of my using Project in an agile project. The usage of the calendar functions makes it easy to calculate how much man hours we have available and since I use the Gantt chart form, it is easier to show the stuff for managers.
Yes, you still have the risk that “add a new resource late in the project” looks great in the calculations, but that is up to me to debate with the stakeholders. To make them understand the logic and the effects.
On my previous position, I lived and breathed the domain model, the processes and even the information model. Since I was educated in the field, the terms and processes were also near me.
Having moved to a different industry: the leisure travel business, the tables have turned. I have a customer’s concept of the different terms and the domain and my customer’s concept is based on experience from one of the business models used in our business. TUI Travel consists of Fritidsresor in Sweden, Startours in Norway, Startours in Denmark, Finnmatkat in Finland, Tema (Swe, Nor, Den, Fin), Nazar and our flight carrier, TUIFly Nordic. That’s a lot of business models to keep track on. To make things more complex, we’re part of the European TUI group and some of our systems and processes are shared in the whole group. Having worked in a business mainly controlled by Swedish legislation, we now have local legislation in all our countries, and that include destination countries and even the countries we fly over. We also have international legislation on different levels.
Defining processes, domains, enteties and models are seldom easy but in and enterprise environment as mine, the challenge is enormous. How can one possibly set the domain model, information models and processes in such an organisation?
One can easily fall for the temptation that it’s not doable: but this is just not the right answer. Just because you work in the dark doesn’t make it easier. We need to turn on the light even if it’s challenging.
I don’t have any answers here on how we’ll do it. I can just say which methods I use:
- Force yourself to use the terms that are present in the model. Make sure that you make yourself understood without having to add other words when you talk to business people.
- Listen to others when they talk about the domain. If they stick to other words, you’ve probably not chosen the right word.
- Don’t try to turn the big boat around. If people in general is using a word for "the wrong thing" in your model, change your model. People will still think about the old definition all the time. It’s not worth it.
- Find out the extremes of your domain and test the terms on these problems. Does the models and processes still work when we apply the less than common situation?
- Test the terms and process description on someone new. People get used to the models and terms so you should try and grab a person who does not meet the model every day. I work with 1500 people at TUI Nordic, so this is the least of my problems.
- Don’t model everything upfront. Make it a ongoing process.
- Involve the developers so they use the model in their daily work. Otherwise there will still be other factual models.
- Make the model an in house model. Someone who is native to the organization has to be the one who owns the model so that it’s owned by the business. Consultants are not bad but they don’t know the business and your model will be clotted by IT terms like Invoice entity, which no business person would ever use.
In an earlier post, I discussed the importance of a Commander’s intent. Since I was introduced to the concept, this has brought me lots of insight and the power to ask the right questions to the project sponsors.
Let’s say that you have a project which has three objectives: one clearly operational (we need feature X), one clearly strategic (all our solutions should be Y) and a third which is somewhere in the middle. This is perhaps not that uncommon but often you don’t clarify that. But do think about if there are both long time and short time objectives, strategic or operational, etc.
And then, what you do is that you print these three objectives in front of the project sponsor and ask which of these matches the commander’s intent. That is if everything else goes wrong in the project: what is the one objective that we need to accomplish? If all plans fail, which objective do we turn to and work to meet?
In other words: is it better to miss the feature if we live up to the strategic objectives? Or can we disregard the strategy if we have to in order to get that feature.
It’s important to clarify this to all stakeholders from the beginning. There are always those who thinks that the strategic objectives that are most important and there are always those who thinks the features (functional or non functional) that are most important. But the one to make the call is the sponsor. He might not know this but if he don’t, you shouldn’t start the project.
Before you get cracking at completing your new project using Microsoft Project, you need to stop and think. What do you track during the project?
During the project you need to:
- Track progress, in other words: how much resources are spent and how much time did this take
- Make changes to the current plan
- Compare changes in plans and actual work with the original plan
To enable these tasks, you need to track these. And now it’s time to get back to the terms Work, Duration, Unit and Cost. The meaning of these fields are in fact:
- Work= The planned workload, according to current plan
- Duration = The planned length, according to current plan
- Unit =The planned allocation, according to current plan
If you look at other columns like Cost, Start, Finish, etc, you can see the same pattern: they are all about the current plan.
If you right click a column in for example Gantt chart and select Insert—>Column you can view the column list by browsing the Field name dropdown:
If you scroll up to B you can see a lot of columns starting with the text Baseline. If you continue scrolling to A you find a lot of columns starting with Actual. This is what they mean:
- Baseline Work= The planned workload, according to Baseline plan
- Baseline Duration = The planned length, according to Baseline plan
- Baseline Unit =The planned allocation, according to Baseline plan
- Actual Work= Actual workload, according to current reports
- Actual Duration = Actual length, according to current reports
- Actual Unit =Actual allocation, according to current reports
Baseline is a snapshot of the plan at a given time. To save Baseline, you select Tools—>Tracking—>Save Baseline. In the dialog box you can select which baseline you want to save (you can save up to 10 baselines).
Observe that you can save the Baseline for only selected tasks or the entire project.
When you click OK, the values in the current plan (Work, duration, start, finish, cost, unit, etc) is copied to the baseline columns (Baseline Work, Baseline duration, Baseline start, Baseline finish, cost, unit, etc). So, if you view one of these columns now you can see that they are now filled. You could have accomplished the same if you manually had copied the information. But this is of course a bit faster…
You can now go a head and make changes to your plan. Since the values has been copied, you can compare them later, for example in Tools—>Project—>Project Information—>Statistics.
You can now also switch view to View—>Tracking Gantt.
The grey bars are your Baseline values while the colored are your current plan.
When you switch to the Tracking Gantt you can now see that some of the bars are red. They are the tasks which cannot be delayed without delaying the whole projects. Exactly how much they can delay the project can be found in the column Total Slack. Select Format—>Bar styles and take a look at the definitions in the chart part and you’ll probably get a hang of this.
One tip for the road: don’t delete tasks, assignments, etc after you’ve saved a baseline. Since the baseline values are stored on the same rows in the tables, the baseline values are then lost forever.
Next stop in this guide will be tracking progress!
If you select View—>Resource Sheet, you can enter the costs for a resource.
Resources can be of two types: Work or Material. The difference is how costs are added. If you have a time based cost, the resource is of type Work and if you have a per unit cost, the type is material.
This means that if you have a test environment which costs per hour, the type is Work but if you buy a computer, the type is material.
You can also see that you have different rates for one resource. If you change the type to Material, you cannot enter all types.
Std rate is used when you normally assign the resource to a task.
Ovt rate is used when you specify that time is to be spent using the overtime rate. That means that even if a resource is overallocated, the Ovt is not used. You specifically have to state that overtime rate is to be used.
Cost per use is used to set a one time cost for each allocation. Observe that this a poor choice for the consultant who takes a fee per day: the Cost per use is one per assignment on a task independent if the task is one hour or one day. This is useful for example a test environment which has to be set up for each new test task.
Accrue at is used to specify when during a task the costs are added to the task: before the task starts (if you’re billed in advance), during the task or after the task has been completed (billed afterwards).
If you double click a resource you can see that there is a tab for costs. In this you can set up five different price scales for the resource. This is useful if a resource costs differently on different tasks.
When you assign a resource to a task, the planned costs can be found in a field called Cost in the Gantt chart (View—>Gantt chart). You can select to view the column by right clicking a column and selecting Insert Column. Select Cost in the Field name drop down.
You can also select to change the table to the Cost Table by Selecting View—>Table.
In the table you can see the column Fixed Cost. This can be used if you want to add a cost which is not related to a specific resource. Observe that the Fixed costs are not summarized on Heading tasks so you can add a fixed cost on all rows in the Gantt chart.
Another trick when your working with costs is that you can select Window—>Split. The form is visible on the bottom of the Gantt chart.
If you right click the form (grey area) you can select a form called Costs. Here you can see the costs and you can also specify how much of the time uses the Ovt rate. Observe that the OVT rate is never used automatically.
If you want even more control on your planned costs, you can select View—>Resource usage or View—>Task usage.
Here you can change the table the same way you change tables in Gantt chart (View—>Table) but you can also right click the White/Yellow part and select to view the OVT Cost and Cost fields.
Another thing you can do in these views is that you can double click the italic rows in the tables, in other words; the assignments. Here you can see the planned costs but you can also set which cost rate table is to be used on the assignment.
Microsoft Project Tutorial – Part 11 – Linking projects, using resource pools, sharing resources and dividing projects into sub projects
Microsoft Project Server is the enterprise solution for this problem, but if you don’t have that and just want to divide your projects into separate files and see which resources are over allocated, this can be accomplished during the ordinary Microsoft Project application. But it’s a solution if you’re a single project manager: if you are many project managers you will probably need Project Server. The reason is that only one person can have write privileges to a Microsoft Project file at the time and if you’re using a Resource Pool in the standard version, all Project files will be locked if someone is editing his project.
But if you just want to work on your own, here is what you do.
You start by creating the Resource pool. This is the file where you add all your resources and where you make edits to calendars. A resource pool is just an ordinary Microsoft Project file but you might want to give it a good name like Resource pool.
Then you add all the resources and change the default calendar and all the resources’s calendars. This is covered in earlier parts of this tutorial, but you can find the resource list in View—>Resource Sheet.
Be sure to save. And now you have a resource pool!
When you want to use the resource pool, you create a new project file and save it. You should make all the changes to the settings you normally do on project files: the only thing you don’t have to do is add the resources.
Before you start assigning resources, you need to open the Resource pool file. Then you make sure that the new project is active and then you select Tools—>Share resources. Select Use Resources and the Resource pool in the combo. Confirm by clicking OK.
If you view the Resource sheet in your new project, you can now see the resources from the resource pool, and you can start assigning resources, for example.
This can be done again for multiple projects and in this example, I’ve created yet another project file with the tasks and assignments below (observe that I used the resource pool for both Project files.
If you make any saves when you’re using a resource pool, the dialog box will look slightly different. You will be prompted to save all connected files. And if you have two files connected to a resource pool, you will have opened all three files, which mean that saving affects all three projects. Now you can imagine the problem if you are two project managers…
If you activate the Resource pool, for example using the Window menu, you can see that eventual over allocations are visible in Resource list:
But if you open the Gantt chart, the task list is empty. Most of the time, you want to see all the projects in the Resource pool, so what you do is that you select Insert—>Project:
Select the Project file and confirm with OK.
Now you can see the Project in the Task list and if you expand the Project you can see the individual tasks:
Take a look at the ID column: there are two ID 1. The reason is that the first 1 is row nr 1 in the Resource pool and the second 1 is the first row in the Project file Project1. Confusing…. There is a column for Project so you can see to which project a task belong. And this is important if you have many inserted projects.
Before you add another project, be sure to collapse the current projects, otherwise there is a risk that you insert the new project in the already inserted project…
When you’ve inserted a number of projects, you can start working the file like you were just using a single project. You can insert or edit task, change assignment, etc. You can even make links between tasks in different projects:
If you close everything and then try opening one of the files, you are prompted to specify which files you wish to open. Depending on if you’re opening the resource pool or one of the other projects, the texts might differ, but the important thing is to be able to save changes, you need to open all files.
In this case you should select the second option and confirm.
When you’re using links between tasks in different projects, you can see linked tasks from other projects. They have grey bars in the Gantt chart and if you open the Task Information dialog box, there are some other attributes.
If you work with multiple project files, remember that this means that you should not have the same task names in different files. If you for example have the task Project end in four projects, which one does an external task refer to? Yes, you can view the Project column, but it’s much easier to select better task names.
If you’ve followed the tutorial and understood the previous exercises, I hope you’re starting to feel like you’re getting the tools you need to create a project plan using Microsoft Project. We’ll get into costs and what happens during the project later, but you should be able to use Project for your planning now. So, get cracking. It takes about five project plans before you’re really secure about what you’re doing so be prepared that it will feel hard in the beginning. But hang in there and get back to me if you run into problems!
But, I’m going to cover some really nice tools which are available for you to help during your planning (and also during later stages of your project). We start with the Gantt chart. If you select Window—>Split you can see a form on the bottom part of the screen.
This can be used to change the values on the top selected row. Just select the row you wish to edit, make your changes and confirm by clicking OK. As you can see, this form has a huge advantage over the Assign Resources Dialog box: you can specify the number of hours per resource! So, now you can really play with Duration, Work and Unit. You can also edit the links to predecessors in the right column.
If you right click on the grey area you can change form using the contextual menu. You can for example choose Predecessors and Successors:
This is excellent if you have many tasks with complicated dependencies: you can directly see all connected tasks to the selected task.
Observe that the forms are actually views and besides from seeing the form in the bottom part: you can select the blue line at the absolute left and select another view in the View menu. This can be really confusing for the beginner, so skip that right now and be sure to select Window—>Remove split before leaving the Gantt chart view.
One other view that is really interesting when you’re working with resource planning is the Resource usage view, selectable from the View menu:
Here you can see all the resources on the left. Under each resource you can see which tasks they’ve been assigned to and how many hours are planned. On the right side you can see when these hours are to be spent. Observe that this is a time line so if you double click the dates on the top you can change the scale:
You can also hide the assignments (the tasks under each resource) and get something like this:
Doesn’t that look very much like a weekly schedule? Yes it does… Also, observe that all the white cells are editable, so you can change the assignments on a specific date or week. But remember that if you change a 20 to a 10, you remove 10 hours from that task and you’ll have to add that on some other date if this is applicable.
If a number is red on this list it simply means that on at least one minute of the period, the resource is over allocated. But you shouldn’t stare yourself blind on the color. Look at the numbers instead.
You can also double click rows on the left side. If you double click the row of a resource, you can edit the resource details:
If you instead click one of the assignment rows, you can edit the assignment details instead:
(Yes, we’ll get back to costs later…)
Resource usage view is one of the most useful views, so get to know it. But if you look at the View menu, you can also see that there is a Task Usage view. Let’s take a look on that:
You might have guessed correctly: it’s the same as resource usage view, the only difference is that the grouping is per task instead of resource. Otherwise, it works exactly like Resource Usage.
So, when do you use which View:
- Use Resource Usage when you want to see when the resources are booked or available.
- Use Task Usage when you want to see when we plan to work on specific tasks and when stuff are planned to be finished.
One of the dreams of most project managers starting to work with Microsoft Project is being able to handle part time resources and to be able to get an idea of how much resources are needed. But few get this to work in real life.
Well, because it’s not as easy as you might think. Before you even attempt at this task, be sure to read and understand the concepts of Work, Duration and Unit. This is described in part 1.
To just make clear: Unit is the part of a resource’s time which is spent on a task. This means that if Unit is 50% on a task, that means that the resource spends half of his working time during the duration on that task.
If you remember from part 2, we specify working time in Tools—>Options and Tools—>Change working time dialog boxes. If you’ve skipped this chapter before, read this before you continue. But what we did in that chapter is that we set the default working time for our tasks and resources. But all resources have their own working time. For example, resources are off on holidays during different time periods.
If you select View—>Resource sheet, you can see all the resources and their details:
On the list there are some values you can change:
- Name – should be unique
- Type – specifies if cost is per hour (work) or per item (material). Remember that materials which have an hourly cost is work but items which you buy per item is material. This is why a leased computer can be considered Work while a bought computer is Material.
- Material Label – is set if Type is set to Material. Can be used if you want to use other labels than name.
- Initials – in many cases you can select between viewing the whole resource name and the initials. But make sure the initials are unique for each resource.
- Group – can not be used for assigning to a resource group but can be used for filtering and grouping in print outs and views.
- Max Units – number of resources
- Std rate – cost (per hour if Type is Work) if assigned to task
- Ovt rate – if you manually specify that the overtime rate is to be used, this rate is used on a specific task
- Cost/use – every time you assign a resource to a task, one instance of this sum is added to the task.
- Accure at – is only used if you track how the costs are building up through the project. If Prorated is set, costs are added when they are used. If At start is set, all costs are added upon task starting.
- Base Calendar – which calendar the resource working time is based on
We’ll go into costs later, but if we focus on working time, we have the columns Max Units and Base Calendar. Max units can be used to set how many resources a resource name refers to. This means that if you have the resource Tester, and you have two testers, you can set this value to 200%. In other words, at one given moment, you can have the maximum of 200% total unit assigned without the resource becoming over assigned.
What? Don’t I use this to set if a resource is working part time? Well, you could do that but you won’t be happy if you do so. The reason is how Max Units work. What it does is that it compares total figure of Units at all moments and sees if it’s over or under the value in Max Units. If the sum is more than Max Units, the resource is viewed as red in the resource sheet and you are given the warning that the resource is over allocated. But isn’t that nice? Well, it would be if Microsoft Project looked at whole days or whole weeks. But it looks at minutes. Just test this:
- Add two tasks (not linked, should happen at the same time)
- Set the Duration of the tasks to 1 min
- Assign the same resource to both tasks
- View—>Resource sheet
As you can see, the resource is over allocated. One minute is enough.
So, what happens if you set the Max Units to 50%. That means that each minute, that resource can only participate 30 seconds before she is considered over allocated. You can say that she can only participate on half a meeting.
So, what you do is that you double click the resource and activate the Calendar tab. Here you can set the working time for that resource. So, if a resource is working half time, you might set afternoons off or something like that. Remember that if you change the working time to afternoons, assigning a resource 100% means 100% of that resource calendar time which is the afternoons.
If you have a lot of part time resources, I can be an idea to create specific calendars for part time resources (see part 2) and set the Base calendar of the resources instead. This also makes it easier to see on the Resource Sheet.
Even if a resource is working full time does not mean that you don’t set the individual calendar. You should still add time off so you don’t plan tasks when they are not available.
Complicated? Yes, this is one of the trickier parts of Microsoft Project, and I suggest that you take some time playing with calendars, units and Max Units.
But this chapter was also about Resource groups. The Group attribute on Resource is just an attribute, so if you do have a resource group, you change the Max Units value instead:
Also, you can double click a resource and set different values on Max Units. This is very good if you have different numbers of resources during specific time periods.
If you have a lot of tasks you will probably outline them like this:
Scope is here a heading for the other tasks. To achieve this, you will have to select rows 2-6 in the example below:
The other button is used when you select the subtasks of a heading task you can click . Then the task above will cease to be a heading task. In other words, you can not make a task a heading task but by indenting tasks below, a task turns into a heading task…
Some more tips on outlining: remember that you can have multiple levels! Also, be careful on how you handle heading tasks. You should never assign resources to a heading task and the duration is always calculated on a heading task. If you link a heading task to another task, all the subtasks are affected.
If you want to make heading tasks a little bit more clearer, select Tools—>Options and click on View tab.
You can select Show outline numbers and/or Project Summery task. The result will look something like this Row 0 is the Project summery task):
When I first started using Microsoft Project, I could not understand how the thing worked. I didn’t grasp the database. And since I come from the database world, I started exploring the database.
Microsoft Project is based on a JET database and if you export the thing to Microsoft Access (you can use File—>Save As and select that) you can see which tables and columns are present in the database. But you cannot see the connections and you cannot see how the different columns are calculated.
Right now, that is not important, but if you’re into details you can start exploring the database.
For normal users, you can work from inside Microsoft Project.
If you look at a view (this concept was discussed in Part 6) like Gantt chart view, the view is based on a table in the database. In most cases some of the columns are also visible, like in the Gantt Chart:
If you look at this table you can see that the table has a number of columns and a number of rows. If you double click the column name you can see which column is displayed and how it’s displayed. Observe that the Title is the name which is displayed while the field name is the name in the database. If you for example double click the title Task Name you can see that the column is really called Name and that Task Name is just the label. So, if you go searching for the field, you need to find the column Name.
If you right click a column you can in the contextual menu select Insert Column and Hide Column. Insert is really not a good name: you unhide a column since the table in this case have hundreds of columns. No, I’m not kidding. Scroll the Field name dropdown and see for yourself.
By inserting or really unhiding columns you can see more of the information in the view you are looking at. Some of the columns can be used to enter data manually while others are calculated manually. Many of the columns depend on each other and this is one of the biggest challenges of becoming a Microsoft Project expert: knowing which field to use when and how different fields affect each other. You have seen one example of this in part 1, when we discussed Duration, Work and Unit.
Another way of viewing and changing information in columns is if you double click a row in a table. A dialog box is opened and you can change values. All the fields have responding fields in the table and if you go back to Column Definition you can find all those fields there.
To make it easy to switch between which columns are to be displayed, you can switch between tables in most of the views. These are not database tables but rather a saved list of columns. If you right click the empty area over the ID (where the title of the ID field would have been displayed if it hadn’t been kept empty) you can see a contextual menu where you can select tables. But remember that what you really do is that you fast hides and unhides different columns. You are always viewing the same database table. Another way of changing view table is selecting View—>Table. Here you also have the option of More Tables:
Here you can see a number of extra tables and you can also edit and create copies. If you want to play some with this you can select one row and click Copy:
Here you can change the name, which columns are displayed and how. You can also by selecting Show in Menu make the table more accessible by user not having to go to More Tables dialog box to find the table. Here you can also specify which date format is to be used in this specific table. You can also unmark Lock First column. This is most commonly used if you choose not to display the ID column. If this option is selected, the first column is always printed and non editable (like the ID column). Confirm with OK when you’re ready.
If we go back to the View definition Dialog box, remember that you when you define a view, that you also specify which table is to be displayed.
Before you have some fun playing with the tables, remember that if you insert or hide columns manually, you change the table definition (for database people: not the database table but the view table) so if you insert a column and then check out the table definition, the added column can be found in the definition.