Archive

Posts Tagged ‘planning’

Microsoft Project Tutorial Part 22 – Planning an agile project

2009/05/11 14 comments

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:

Agile1

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:

Agile3

I confirm with OK and move to Tools—>Change Working time.

Agile5

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.

Agile6

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:

Agile7

Then I double click the time scale and set the Middle Tier:

Agile8

And the Bottom Tier:

Agile9

Click OK.

Then I select Format—>Grid lines and set Gantt rows and Bottom Tier column as dotted:

Agile10

I insert the column Work and now I have a Gantt chart which looks something like this:

Agile11

I set the Project Start under Project—>Project Information:

ProjectInformation

Confirm with OK.

If I just want to make a simple plan, I just enter the sprints and add the sprint length in Duration:

Agile12

I then link the sprints to each other (for example by dragging the bars to the next sprint:

Agile13

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.

Agile14

I can now for each sprint plan how many resources are working on each sprint by returning to the Gantt chart. I click AssignResources , select a sprint and enter how many resources are available during that sprint:

Agile15

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.

Agile16

Now I can update status, take out reports, etc on a project level. For example using the Task Usage view:

Agile17

Or the resource usage view:

Agile18

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.

Domain modeling – the enterprise problems

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:

  1. 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.
  2. Listen to others when they talk about the domain. If they stick to other words, you’ve probably not chosen the right word.
  3. 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.
  4. 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?
  5. 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.
  6. Don’t model everything upfront. Make it a ongoing process.
  7. Involve the developers so they use the model in their daily work. Otherwise there will still be other factual models.
  8. 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.

Project objectives – how to use commander’s intent

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.

Microsoft Project Tutorial Part 13 – Save Baseline, A K A 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:

InsertColumn

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).

SaveBaseline

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.

TrackingGantt

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!

Microsoft Project Tutorial Part 12 – Planning for Costs

If you select View—>Resource Sheet, you can enter the costs for a resource.

ResourceList

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.

InsertColumn

You can also select to change the table to the Cost Table by Selecting View—>Table.

ViewMoreTables

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.

TaskForm

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.

ResourceUsage

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.

AssignmentInformation

Microsoft Project Tutorial – Part 11 – Linking projects, using resource pools, sharing resources and dividing projects into sub projects

2009/05/03 3 comments

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.

SaveAsResourcePool 

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.

ResourceListResourcePool

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.

ShareResources

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.

TasksProject1ResourcePool

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.

TasksProject2ResourcePool

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…

SaveLinked

If you activate the Resource pool, for example using the Window menu, you can see that eventual over allocations are visible in Resource list:

ResourceListResourcePoolAllocated

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:

InsertProject

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:

InsertedProject

InsertedProjectExpanded

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…

InsertedProjects

InsertedProjectsExpanded

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:

InsertedProjectsLinked

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.

OpenLinked

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.

ExternalTasks

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.

Microsoft Project Tutorial – Part 10 – Exploring some interesting views for resource planning

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.

TaskForm

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:

TaskForm2

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:

ResourceUsage

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:

TimescaleWeeks

You can also hide the assignments (the tasks under each resource) and get something like this:

ResourceUsageWeeks

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:

ResourceInformation

If you instead click one of the assignment rows, you can edit the assignment details instead:

AssignmentInformation

(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:

TaskUsage

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.