Get alerted when tasks have no dependencies set

In my previous blog post "Highlight items after every change", you have learnt how to apply highlight the tasks after every change by using Visual Basic for Applications macro.

Best practice followed when linking tasks is (a) Don’t link summary tasks to summary task – as it complicates the scheduling logic, (b) Every other task should have at least one predecessor or successor task.

It is easy to validate the above provide your plan is small (this is quite relative again 🙂 ). In this blog post, I will walk through on how VBA macros can color tasks automatically with no dependencies set and color summary tasks with dependencies set.

In the above plan, you can notice I have violate the first rule (a) Phase 1 (task id 1) is linked to Phase 2 (task id 4), (b) Go Live (task id 7) is not linked to any other tasks

Let’s start with a pseudocode for this requirement.

1. For each task in plan do
1.1. If task is not empty and active
1.1.1. If the task is summary task If number of dependencies is greater than zero, then mark it.
1.1.2. If the task is not summary task If number of dependencies is zero, then mark it
2. Color the marked task

Now you need to translate each statement by using Project model object, properties and methods.

1. Click View tab. Click Macros dropdown and select Visual Basic

2. In the editor, double click your current project on the left panel.
3. Now change the object and procedure to "Project" and "Calculate".

4. This will include a private sub-routine which will be invoked automatically after calculation!!

5. Within this sub-routine, include the below script

The above sub-routine checks if the current view is Gantt Chart. Then, it changes the text styles of marked tasks (Item:=5) to default color. Then, we loop through the task list and mark the tasks having the issues.

After closing the editor, I just retyped a task information and Project automatically colors the task that need attention in red.


Highlight items after every change

Project 2013 gives features to highlight, filter and group tasks on certain conditions. These commands are available in View ribbon.

I have selected the criteria "Critical" in Highlight list, and Project highlights the critical tasks with yellow background color.


Now, I changed the duration of Build 2 to 4 days. This task doesn’t get highlighted though it is part of the critical path. Why?

After selecting the criteria, Project applies it only once in the current view. In other words, Project doesn’t refresh the view after every change.

You need to write a small script that will be apply the filter after every change, and this is quite simple.

1. Click View tab. Click Macros dropdown and select Visual Basic

2. In the editor, double click your current project on the left panel.
3. Now change the object and procedure to "Project" and "Change".

4. This will include a private sub-routine which will be invoked automatically after every edit!!

5. Within the sub-routine, include the below script. This code applies the Critical filter if the current view is "Gantt Chart"
If pj.CurrentView = "Gantt Chart" Then
FilterApply Name:="Critical", Highlight:=True
End If

6. Close the editor.

Now, I changed the duration of Build 2 to 5 days and Project automatically highlights the critical tasks 🙂

Make % Complete and % Work Complete Independent

In my earlier post "The Purpose of ‘% Complete’ field", I mentioned how % Complete, % Work Complete and Physical % Complete are different from each other.

By default, updating % Complete will update % Work Complete as seen below

Is there a way to make % Complete and % Work Complete independent?

Click Project, Options. Select Schedule tab. Clear "Updating Task Status updates Resource Status" checkbox in Calculation options for this project: section.

Now, updating actual duration, remaining duration or even % Complete will not update % Work Complete, Actual Work, Remaining Work of the task

In the above example, updating % Complete to 50% will not update % Work Complete which needs to updated manually.

Difference between Scheduled Start/Scheduled Finish and Start/Finish

Start and Finish fields is often called as the current/schedule start and finish.

In Project 2007 and earlier versions, these fields are adjusted based on calendar, predecessor and constraints. These fields are date fields.

In Project 2010 and later version, Microsoft introduced the Task Mode. This special field can be set to Manually Scheduled or Auto Scheduled.

By default, new tasks are created as Manually Scheduled tasks. This means their Duration, Start, Finish will be empty. This implies Start and Finish fields are text fields and not date fields.

When you link this task to another task, Project will default the duration to 1 day?, and calculate the Start and Finish field, but this will happen only once. Are you wondering why does this done only once? In File, Options, Schedule tab, by default "Update Manually Scheduled tasks when editing links" is checked.

I have written another post "The Little Benefits of Manually Scheduled Tasks". As mentioned in this post, Project draws a green wavy or red wavy line below the Finish date to tell the task needs to finish early or needs to finish late.

Without changing the task mode, how to see the recommended start and finish of the manually scheduled task?

Scheduled Start and Scheduled Finish fields displays the recommended Start and Finish as calculated by Project based on dependencies, constraints and calendars. This field can be used in custom formula and conditions.

What are you finishing today?

Project 2013 ships with "Tasks Due This Week" filter. This filter shows detail tasks with finish between the start and end of the current week.

What if you want to display the tasks due today?

1. On the View tab, click the down arrow of the Filter box to display the drop-down menu and then select New Filter in the menu to open the Filter Definition dialog box.
2. Enter the name "Tasks Due Today" and set the filter criteria as it is seen below and click Save:

The value string “Today is:”? evaluates to the Current Date field entered in Project Information dialog box. If we use a different prompt string, for example, "Enter a date:"?, then the filter asks for a date to compare with the task finish dates.

3. On the View tab, select the filter "Tasks Due Today" from Highlight: dropdown (by default "No Highlight" is applied)

So, what are you finishing today?

How to calculate planned % Complete?

You have updated the work progressed in % complete field, but there is no Project field that will give you the planned % based on the status date.

Create a custom field using a formula calculation the planned % complete, based on the status date.
1. Field : Expected minutes to status date (Number1)
– Insert a Number1 field in Gantt Chart.
– Right Number1 field and choose Custom Fields.
– Under Custom attributes, click Formula and type the below text
IIf([Status Date]<[Baseline Start],0,IIf([Status Date]>[Baseline Finish],[Baseline Duration],Abs(ProjDateDiff([Baseline Start],[Status Date]))))
– Under Calculation for tasks and group summary rows, choose Rollup with dropdown as sum
2. Field : Expected % complete (Text1)
– Insert a Text1 field in Gantt Chart.
– Right Text1 field and choose Custom Fields.
– Under Custom attributes, click Formula and type the below text
IIf([Status Date]=ProjDateValue(‘NA’),”No Status Date”,IIf([Baseline Start]=ProjDateValue(‘NA’),”No BL”,IIf([Baseline Duration]>0,FORMAT([Number1]/[Baseline Duration],”0%”),IIf([Milestone]=Yes And ProjDateDiff([Baseline Start],[Status Date])>0,”100%”,”0%”))))

You can change the project start date … later

We prepare a project plan assuming the work will start on a particular date. You insert the tasks, dependencies, set constraints and deadlines to them.

Later, you are told the project starts after one month. You might think this is very easy change to do. Click Project tab, click Project Information command, and change the Start Date to say 3 Nov 2014

You will notice Project displays a series of alerts that certain tasks is scheduled before new project start date, and also constraint dates of some tasks will be invalid as they are with respect to earlier project start date. Now, you need to rework on changing the constraint dates and deadlines of tasks.

Is there a better way to change the project start date that moves the constraint dates/deadlines relative to the project start date?

Yes. You can use the Move Project command in Project ribbon. In Move Project dialog, enter the new project start date and also check Move deadlines. Though the check box label is "Move deadlines" this affects both deadlines and constraint dates.

Now, Project will adjust the deadline date and constraint date relatively for all tasks.

Don’t fear if your project is rescheduled. Your Move Project command is just a click away!!

Watch-out: You can know who is working hard and who is not

Tracking man-power utilization is very important for project success. Resource Sheet view helps you to define the resource information of your project. Double-click the name of the resource and define the resource availability to the project.

After assigning this resource the task, Project checks the availability of the resource and marks the task with red color stick man if the workload is more or outside the availability in Gantt Chart view. This view doesn’t list how much the resource is loaded.

You can use the Resource Usage view to know who does what work, and the work assigned with remaining availability. Based on the requirement, change the time-scale (View tab, Timescale: dropdown). Right click the time-phased portion to insert the Remaining Availability field.

So, where are your resources are working hard and where not?

A beautiful way to be away from the devilish details – consolidate equivalent resources

Your team may have equivalent resources who can substitute each other. As a project manager, you can spend less time to maintain their details by consolidating their details.

A project team has three support staffs to handle the customer queries. This is a self organizing team with equivalent individuals who can take tasks as much they can do. As a project manager, you want consolidate their details to be away from the individual details.

In the Resource Sheet view, insert a "Support staff" resource and change the Max Units to 300%. 300% means you have 3 resources available 100% of their working time. When the work is given for more than 3 staffs (300%), Project will mark "Support staff" in red color

In this plan, after the pilot support is complete the team can handle customer calls and reply to customer queries.

You want one support staff to handle the pilot support. After the pilot is complete, you want the team to self organize and decide on the two individuals in-charge of answering the customer calls and one staff in-charge of replying to customer queries. They might want to substitute later, but you don’t want those details in your plan 🙂

You will now assign 1 "Support staff" to Pilot Support task, assign 2 "Support staff" to Answering customer calls and the remaining one resource to reply to customer queries.

After assignment, split the view and bring the Resource Graph on the bottom. Resource Graph will help you to understand how the support staff are occupied in this project.

In case you have assigned more work for these three staffs, Project will display a red color stick man in Gantt Chart and the excess work will displayed in red in Resource Graph

Are you ready to consolidate your equivalent resources? Share your thoughts.

Choose the best among the best

When you have many options to do the same work, you need to choose the best option with least cost and more benefit.

Let’s say you have three different ways to build your application and for each build you will choose different resources to do the work.You want to choose the build that is cost effective. Let’s say the cost rate of the five resources is as shown below

You have sequenced your tasks as Design, Build and Test.

Now, try different build options you need to change the duration, work and resource assign of Build task every time. A better option is use to have three build tasks with different duration, work and resource estimates

If you want to try with Build 1 estimates, select Build 2 and Build 3 tasks and inactivate them.

You will now notice that Build 2 and Build 3 will no longer affect the schedule and the resource availability, this can help you to total estimate with Build 1 as the option. Now, you can try to activate and inactivate the other two tasks to know the best option.

Inactivate tasks is available since Project 2010. Don’t delete the task rather preserve it for future reference