Archive

Archive for the ‘Microsoft Project’ Category

Another round of Microsoft Project Tutorial episodes?

I’ve received a couple of questions lately concerning Microsoft Project, which I haven’t covered in a while, so I’ve decided to write some more posts. I will, as I’ve previously posted, also post an example file for an agile project in Microsoft Project. But what are YOU interested in? Post a comment or e-mail me if you have any specific topics for me to cover.

Categories: Microsoft Project, planning Tags:

Why Estimate is a bad word

What is an estimate?

According to Dictionary.com the verb means:

1.
to form an approximate judgment or opinion regarding the worth, amount, size, weight, etc., of; calculate approximately: to estimate the cost of a college education.

2.
to form an opinion of; judge.

and the noun means

4.
an approximate judgment or calculation, as of the value, amount, time, size, or weight of something.

5.
a judgment or opinion, as of the qualities of a person or thing.

6.
a statement of the approximate charge for work to be done, submitted by a person or business firm ready to undertake the work.

So, why is that a bad word? Well, I don’t think it’s really a bad word, but in the case of software development, the use of the word results in some serious problems.

Case 1: A developer leaves a task unfinished, that is not according to Definition of Done. The reason is that he’s run out of time according to the estimate so he drops it or finish it with lacking quality.

Case 2: A developer starts working on “something else”. The reason is that he finished what he was supposed to in less than the estimated time and felt free to spend the rest of the time with that other stuff.

Case 3: A project manager gets upset that a project is late. The reason is that he feels that the project is late because things took longer than the estimates.

So, why is estimate a bad word? It’s because it can cause people being pushed into not completing the tasks or not doing the things that have the highest priority. It causes confusion.

And if you consider a project where Case 1 and Case 2 are common, what happens? It causes some stuff to be bug infested which probably causes later delays and you’re never able to make up the time since when the developers are faster than the estimate, instead of moving on to the next item, they fill up the time with other stuff. Observe that I don’t assume that they are surfing the web or just idling, perhaps they refactor or something else. So, it is often good stuff, but not the most important stuff. And it does not help in catching up. So, what does this lead to; Case 3. If the project delivers poor quality and unfinished work and never makes up the time, of course the project will be delayed.

So, what word is better? Planned? Don’t think so, even if Microsoft Project use that word. This word most definitely leads to all these cases. Assumption is no better. When you think about it, you just have to realize that the word will lead to misunderstandings. So, what do you do?

Well, to handle Case 1 & 2 you need leadership and here I think that Kanban is a real savior. You cannot just drop the work and you cannot use the estimate as “your time”.

But what about that project manager? When it comes to the project manager’s need for planning, it’s important for him to realize that an estimate is a guess. A good or a bad guess. And when you’re guessing, you need to know the value of the guess. I like working the PERT analysis when this is a big issue (isn’t always??). You give three estimates; an optimistic, a probably and a pessimistic. Here is an excellent presentation on PERT analysis by Ricardo Vargas.

You can also add a value of risk to the estimate. So, when you estimate something, you estimate the size and the risk. And you would be stupid if you don’t realize that if you have a big task with a high risk, you cannot take that estimate for granted.

News in Team Foundation 2010

From a project manager’s point of view

On 2009-06-25, I and a colleague listened to a seminar concerning news in Team Foundation Server (TFS) 2010. We are currently using TFS 2008 mainly for source code handling and tracking progress (using the work item tracking functionality) during projects. Here are my notes.

Fundamental changes

TFS 2010 include a new client, especially for testers, Test Essentials or Test & Lab Management. This will mean that to be able to work effectively as a test leader or tester, you don’t need a Visual Studio installation. It is today unclear how licensing will work with the new client.

The integration with Microsoft Office require Office 2007.

SQL 2008, SP1 is required.

You can run a VS 2010 client against TFS 2008 SP1 and using patches, a user can run VS 2008 against TFS 2010. This enables a step by step upgrading of the environment.

The installation of a new server is complicated and takes a lot of time. You can though make the installation first and make all configuration in a second step, This means that the person responsible for installation does not need all configuration variables to complete the installation.

The possibilities for load balancing has been increased which would enable us to runt TFS on multiple servers and also make use of several SQL Server.


Work item tracking

The most important change here is the possibility to not only link work items but actually specify how items are linked. You can for example:

  • Specify a hierarchy. This would mean that we can specify which tests are included in a test plan or which tasks belong to a product backlog item.
  • Predecessor/successor relationship. This would mean that we could specify that one task is dependant on the for filling of another task.
  • Related items of a specific work item type. This would mean that we could specify requirements in the form of tests and we could then specify on a task Definition of Done in the form of which tests are to be passed to see the task as completed.

clip_image002

A smaller change is that you can group different work item types to ease the creation of reports and queries. Using our current development process, we have no need for this.

The reports are as before available in Reporting Services format but there is an increased number of Excel reports, which also use the data warehouse. This would make us less dependant of reporting services for our project management.

There is also a specific report called Agile Workbook. In this, a number of reports, focused on the product owner and scrum master roles has been gathered.

clip_image004

Building environment

The concept of Gated Build is introduced and means that when a developer checks in, he can make a test build before an actual checkin. This would better hinder checkins which breaks the build.

The build scripts use Workflow 4, which enable a more graphical view of builds.

TFS Admin Console

A new client, targeting the administrator wanting control of his TFS and include the functionality which an administrator needs.


Test & Lab Management

This is a Windows client which does not require Visual Studio and target the needs of the tester. Here a tester can set up test manuscripts, run tests and report bugs. What was also really interesting was that while running tests, a tester can choose to record his steps and when filing a bug, he can automatically send a film or pictures of the situation. The recording can then also be used when verifying that a bug is fixed: the macro retakes all steps to the failing step, which makes the validation faster.

What also was interesting was the possibility to set up virtual environments for different test scenarios, for example different cultural settings and configurations. Since a test is run in a specific environment, we can keep better track of the environment in which the tests are run and not run. Also, when filing bugs, a snapshot of the environment at the time of the failure is possible.

clip_image006


Visual Studio for Architects

The seminar did not cover functionality in Visual Studio but notable is the inclusion of modeling in UML using Visual Studio. Use cases and processes can be directly modeled in Visual studio and linked to code and work items. Also, it is possible to automatically derive a model from a current system.

Since this is stored in the source control system, the models would be source controlled, which means that you can track changes of the system and even see which checkins have changed the model.

clip_image008

clip_image010

Query handling

The visualization of a search result has been improved since you can view a tree view or a link of the items and their directly related items. You can also click and drag to move work items in the hierarchy, for example if you want to move tasks between sprints or product backlog items.

Queries can now be collected in folders and you can also make rights settings these folders to hinder users from accidently changing common queries.

clip_image012

Source control

You can in TFS see graphically how branching and merging has occurred and using a graphical tool merge.

Web client

The user interface in the web access has been improved and include a dashboard functionality to enable views which are specific for the different types of users.

Are you planning a project or just drawing a Gantt chart?

I guess the main reason for most project managers to use Microsoft Project is drawing the traditional Gantt chart. It’s kind of obvious, since the Gantt chart view is the default view of the program. This view is also confirmed by the default fields that are visible. A task is in Microsoft Project described by over a hundred fields but only eight of these are visible using the default settings.

If you just start up a default session of Microsoft Project and don’t change any setting, this is how you define a Task:

· Name (Text)

· Duration (Days)

· Start (Date & time, even if only the date is visible)

· Finish (Date & time, even if only the date is visible)

· Predecessors (Numbers – ID of tasks which the task directly depends on)

· Resource Names (Names of Resources)

clip_image002

If you open one of the templates provided by Microsoft, they all look something like this:

clip_image004

There are all these tasks where one leads to the other and where the assignment is already done. You’re supposed to enter the Duration (in Days).

What is important is to understand what Duration is and what it’s not. In agile methodologies such as scrum, when defining tasks during sprint, you estimate how much work a task should result in. In other words; how many man hours it is estimated that a task will result in. This attribute is in Microsoft Project referred to as Work. And that is not the same as Duration. You cannot even see Work with the default settings. Work is what you get when you add resources to a task. But why is this? I believe that it all comes back to what I assume is the basic use for Microsoft Project; drawing the Gantt chart.

The Gantt chart is made up of all these blue bars, all connected to each other and leading to the end of the project. So the assumption of the Gantt chart is that if you make a Gantt chart, you can calculate when the project should be completed. That sounds great! Just what my stakeholders want.

The individual bars in the Gantt chart have a length and a place in time. The length is the attribute Duration, and therefore it makes sense to have the attribute Duration clearly visible and editable. And to place the bar in time you can use two methods, you can either link them together or you can place them on a specific date. The linking information is saved in the field Predecessors and you can specify a date by changing the Start or Finish Columns.

The final touch to the Gantt chart is the displaying of the resources names and that is stored in the field Resource Names.

So, there you have it; the columns in the default view of Microsoft Project are the ones which you need to draw the Gantt chart.

But does this mean that you can calculate the finish date of the project based on this? Well I think that experience talks against this. Just the fact that you cannot see the assumed workload makes the planning blind. And as I’ve previously discussed; since the focus factor is 100%, no holidays are in the system and the slack is 0, we all know that this is an illusion. Looking at the Gantt chart, I see the similarity with stairways and you get the feeling that all tasks are individual steps on the stairways. You just have to walk down that and you’re done. You can just check of the steps as you fly by them. Right.

Another problem with having the Gantt chart as the objective of your planning is what you want to do with that Gantt chart. Yes, you want that planned end date but you also want to show the chart to your steering group. And then you need to print it or take a screen copy and enter it into your PowerPoint presentation. Let’s see what happens when we open one of the templates:

clip_image006

But hey, I can’t see all those bars, and I cannot see all those rows! But then I need to collapse the heading tasks and change the timescale:

clip_image008

But then I’m missing out on my nice blue bars and it looks strange. So, to keep my project nice and clean, it’s better to keep the number of tasks down. Also, linking in the Chart view is a pain if you cannot see all the tasks at the same time.

And here, we also see a conflict with agile values. In most agile methodologies, you want to keep the tasks as small as possible to enable more accurate estimates. But this clutter up the Gantt chart, making it hard to read and linking becomes complicated.

Finally, we have another problem with having the Gantt chart drawing as the objective of our planning. The product backlog does not fit into this scenario. A product backlog is a prioritized list of requirements but this does not mean that the product backlog items are interlinked. So you cannot link them in the Gantt chart. But if you don’t link them, you don’t get your Gantt chart.

Next time you start Microsoft Project, ready to create the plan for you next project, keep your objectives clear; is your goal drawing a dreamy Gantt chart or do you have higher goals?

I’ve on this blog posted a tutorial on using Microsoft Project as a planning tool. I cannot say it’s easy but neither is planning. Thinking that you’ve planned your project just because you have a Gantt chart to show your steering group is a first step towards a challenged project.

Microsoft Project Tutorial Part 28 The resource graph

Wouldn’t you say that it’s hard to be Sarah in this example:

ResourceGraph1

When you view the Resource Graph (View—>Resource Graph), it can look something like this.

On the left side you have a resource. If you scroll the left scroll bar, you select resource. And on the right side you have the graph, showing some kind of information. But what are you look at?

Well, if you look at the text just over the left horizontal scroll bar you can see that it reads “Pek Units”. This means that Sarah has assigned AT THE MOST 200% during Q2 2009.

If you change view to Gantt chart, you can see that she’s not so very booked after all:

ResourceGraph2

She’s actually booked 200%, but just during 1 minute. So, don’t take the resource graph too seriously.

But the resource graph can be used. If we switch back you can see that you can right click the diagram part and choose metric. And here Work probably says more that Peak Work:

image

And if we use a better project, it actually says something. When I changed to a real project, changed metrics to Work and customized the timescale (double click timescale) to show months and weeks, I can see the work load for each resource per week:

image

Compare this with the same view but with Peak Units selected instead;

image

Microsoft Project Tutorial Part 27 – WBS (Work breakdown structure)

2009/05/23 Anna Forss 2 comments

Every time I write a new post in my tutorial, I think it will be the last. And then I realize that there is something I’ve missed. And of course, I’ve missed the grouping and filtering functionality.

The most basic grouping functionality has already been covered: the usage of heading tasks:

Network2

This is, if you’ve forgotten (or missed that class), achieved by selecting tasks A1 & A2 and clicking Indent

All tasks have an ID but they also have a WBS code. WBS stands for work breakdown structure and if you right click a column and select Insert column, you can select to insert the WBS field.

WBS1

The column to the left is the ID field while the WBS field is the field to the right.

You can actually customize the WBS codes. This is very useful if you have inserted projects, when both the ID column and WBS column will have duplicates.

So, to customize the WBS code, you select Project—>WBS—>Define Code.

This dialog box is empty if you view it on a new project, which means numeric values are used and the different levels are divided by dots(.).

On the first row, you can see a preview of your defined code. On the second row, you can specify a Project Code Prefix, and this is as I mentioned; a very good thing if you have inserted project files.

In the grid, each row specifies a level in the WBS code and if a level isn’t defined, the rule with numbers and dots is used. On each level you specify what kind of symbols divides the different values and here you most commonly choose between numbers and letters. You can also see that you can choose between uppercase and lowercase. In the column length, you can specify how many signs can be used in that position, so if you select 1 there can only be 1,2,3,4,5,6.7.8 and 9 in that position. In the separator position you specify which separator is used.

As you can see in the bottom of the dialog box, you can also select to not making the WBS code automatic. The reason for this is that if you refer to this number in other documentation and the insertion of new tasks are done, the WBS codes of other tasks can be changed.

WBS2

Confirm with OK and have fun with your WBS codes!

Categories: Microsoft Project, planning Tags:

Customize fields in Microsoft Project

There are so many fields in Microsoft Project, so why should you want to customize some new ones? Well, there are many reasons. Here are some examples of how you can use customized fields.

There are quite a few fields which you can customize:

  • Text 1-20
  • Finish 1-10
  • Start 1-10
  • Number 1-20
  • Flag 1-20
  • Date 1-10
  • Cost 1-10

CsutomizeField5

The simplest way to use these fields is just showing them like the image above and start printing in information, but below you can see how they can be used:

image

  • In the Text1 field, the user can enter values from a list (High, Medium and Low) and depending on the value, different flags are displayed.
  • Start1 and Finish1 are used to specify during which times the tasks can be tested. This is also displayed as bars in the Gantt chart.

    CsutomizeField6

  • Work B2-B1 and Cost B2-B1 are calculations which compares the values in Baseline 2 with Baseline 1.
  • Flag1 is used to specify if the specification of the task is completed. If the user enters the value Yes, this task is flagged by a green lamp. Otherwise, the lamp is red.

And here is how you customize fields.

First you insert the field by right clicking one of the present columns and select Insert field. You can then right click the field and select Customize field.

CsutomizeField1

On the top of the dialog box you can see that you can customize fields in task views (like Gantt chart) and resource views (like Resource sheet). You can here also select which field type you want to customize in the dropdown. This means that you can customize all fields at the same time, but for me; I prefer looking at my field when I’m done.

If you click the button Rename, you can enter the new name and confirm.

Under the custom attributes, you can select None, Lookup or Formula. None is used if you want the user to enter values normally. Lookup is used if the user is to select values in a dropdown (like Risk level in the example). Formula is used if the user is not to enter values manually but if project is to calculate the values (like the comparisons between baselines).

CsutomizeField2

If you enter formulas, the result can look something like this. Please observe that the fields are entered by you clicking Field and selecting the correct field in the dropdown:

CsutomizeField3

If we return to the dialog box for Customize fields you can see that you can specify how Heading rows are handled. Depending on your other selections, the options here will differ but remember to take care of this section as well. The same goes for assignment rows. This is applicable if you view Resource Usage or Task Usage. In the chart part you can insert assignment fields.

Finally we move on to the graphical indicators. If you make no changes here, the entered values will be displayed but if you click here you can in the grid specify which images are to be displayed under which conditions. Please observe that on top of the dialog box can you specify how graphical indicators are used on summery rows and the project summery row (which is displayed if you specify this in the Tools—>Options—>View dialog box).

CsutomizeField4

Microsoft Project Tutorial Part 25 – Print setup

I guess one of the main reasons for people using Microsoft Project is that they want to print the Gantt chart, and here people get really frustrated. They cannot get the right stuff on paper.

Well, the first advice is to specify a table definition which is suitable for printing. For example you can leave out the Indication field. How you define your tables is covered in the blog post on customizing your Gantt chart.

Next thing is that you can actually use your divider between the table and the chart. The columns which can be seen in full are normally visible on the print out.

Next thing you can do is that if you want to keep the legend at the bottom of the printouts but think the legend include to much is selecting Format—>Bar styles. If you add a * before the Name of a bar style, it would be included in the legend. Often, people understand most of the types, so just add the * to all styles which are not self explaining. Below, you can see some examples of how it looks like in the dialog box:

BarStylesStar

Then you move on to File—>Page setup. On the first page you can set the number of pages and orientation.

PageSetup1

If you click on the Margins tab, you can set the margins.

PageSetup2

On the Header tab, things start to get interesting. First you click the tab for the alignment for the text you wish to include. You can now add default text or field information by clicking the butcons or selecting a field and clicking the Add button. Observe that the last butcon enables you to include an image.

PageSetup3

The Footer tab is very much the same as the Header tab, but here you set the footer instead.

PageSetup4

When we head to the Legend tab you can specify if the legend is to be visible and for how many pages. Observe that besides the legend, this space also occupy an extra footer. One way to give more space to your Gantt chart on each page is setting the width of this area to 0. But also remember that the fewer items that are displayed on the legend, the smaller the legend becomes.

PageSetup5

The View Tab can also be used to specify size. Here you can with the first two check boxes specify if you don’t want the visible columns to be printed and instead specify a number of columns. You can also select to print notes, that is the content of the field Notes. If this is selected, your printout will be complemented with an extra page with comments.

Unmarking Print blank pages is a way to remove unwanted printouts. When you make a printout, Project prints pages so you can tape all the pages together to make a large plan. This means that some pages of the Gantt chart can be without any bars. But remember that if you do mark this, a taped plan will have holes in it. Fit timescale can be used if you don’t want Project to take you timescale setting into consideration but instead trying to make the most of the space. I normally unmark this.

PageSetup6

Confirm with OK and go on printing. Printing Project is a hassle so go get yourself a A3 printer and exercise print training.

Microsoft Project Tutorial Part 24 – Exploring the toolbars

There are lots of nice commands in the toolbars . So here are some suggestions on commands to use:

CopyPicture Copy Picture – enables you to save a picture to Computer clipping. When you chose this command, a dialog box is displayed and you can select what to copy. If you chose clipboard, you can next open for example word and select CTRL+P to paste the picture in your document.

CustomForms  Toolbar for custom forms. Displayed by selecting Tools—>Customize—>Custom forms. You can now select a task in Gantt chart and click one of the butcon. You can now update your tasks easily concerning costs, work status, etc.

GotoOverallocation Excellent butcon if you use Resource Usage or Task Usage views. If you select a cell, clicking this butcon will mark the next over allocated cell.

GotoSelectedTask Mark a task in the table of your favorite view and the chart will show the selected task.

ResourceTracking Toolbar for tracking progress. Is displayed when you select View—>Toolbars—>Tracking. Observe the butcons with the %:s. These are used to quickly set % Complete. The second, third and forth butcon requires some extra explaining, which I’ll perhaps discuss in upcoming posts. As for now: don’t use them if you don’t understand what they do.

TFS 2010 for us product owners

I’m currently using a lot of Microsoft Project to keep my distributed stakeholders updated since the scrum dashboard just works for the current sprint and the 2008 web access isn’t very… accessible.  The stakeholders can’t get the overview they need. So, I spend time on separate Microsoft Project files with the long term plans (as described in a previous post) and I keep the product backlog in TFS.

So, I was just thrilled by the images on BHarry’s blog, describing the new features for us non programmers. Finally, I can really invite my stakeholders to keep themselves updated on the level they need.

The dashboard looks awesome! Here are two examples:

For me as a product owner, I of course long for the hierarchical work items:

If I still want to show Gantt charts, I can (if all goes well) use the upgraded Project Integration, since it conserves the hierarchy. This is the main reason I don’t use the integration today.

I’m also very curious about the Sprint planning functions

So, what more can I say: JUST BRING IT ON!