MS Project Tips : Maintain a section to track your external dependencies

Project Managers are always playing around with dependencies. It could be dependencies with your vendors or suppliers or peer teams or project team members.

In reality , you will hardly find a project without dependencies. If not external definitely we will have internal ones.

There will be deliverables from parties who are beyond your span of control. But your deliverables will have dependencies on those. Any delay can impact your project.

The following can help in managing those

  1. During project planing stage identify your dependencies also.
  2. Create a Summary task in MS Project and capture your dependencies under that.
  3. On the tasks which are under your scope & control, set the predecessor field to appropriate tasks captured under your dependency summary task.
  4. It’s a good practice to set a finish date for the external dependencies. To do that, you need to work backwards. Look at the task which has a dependency on the external dependency. Use your  judgment and identify a delayed start date, the task can absorb without jeopardising the overall project time lines. ( That start date – ‘y’ number of days ) would be your external dependency’s finish date. Choose ‘y’  based on your comfort level.
  5. Utilize the project review calls to keep a tab on the progress by external teams. You can raise a flag based on the info you have captured on the dependency and your task as in step(4)

MS Project Best Practices – Maintain Project Plan Templates

No two projects are same. But you will still find some items repeating in each and every project. So also is the fact that each project will come across areas of improvement.

How do you ensure that we don’t miss out those common tasks in our next project?

The common tasks  could be part of the process followed at the organizational level or by the nature of the project. A project manager who have executed project in the organization in the past, will be aware of those. But how about a project manager who joined your organization recently and about to start with his maiden project?

Having this mandatory tasks or items as stipulated by the organization or type of project captured in a project plan template helps in addressing this scenario.

How do you ensure that the mistakes made in the current project are not repeated in future projects?

Lessons learned is the formal way of addressing this. You can maintain a centralized repository with adequate indexing and search criterion , so that its easy to find what you are looking for. But this still doesn’t ensure that we will miss something in future.

Each lessons learned will end up with a recommendation on how this mistakes can be avoided. And this recommendations should be implemented either on the processes or templates or tools used for project management.

So if any of the recommendations can be addressed by including that as a task in a project plan, then a project plan template is the right place.

Project Management Office(PMO) owners change, so will Project Managers. But embedding the best practices or lessons learned in our processes , templates and tools ensures that experience gained by our predecessors are utilized by future team.

Last but not the least, have your project plan template available on a centralized repository. And make it mandatory to Project Managers to always use a  template to start off with their individual project plan.

See Also : More articles on MS Project

What’s the best sequence of steps involved in creating a Plan in MS Project ?

Note : This post doesn’t capture/discuss the activities involved in Planning a project. But it focus on entries required in creating a plan using MS Project. Menu references are based on MS Project 2010.

Your Project Plan will have the following key ingredients(may vary)

  1. Summary Tasks
  2. Sub Tasks
  3. Milestones
  4. Effort / Work
  5. Schedule
  6. Dependencies
  7. Resources assigned.
  8. Calendar

Based on my experience, I found the following order of Entry effective and eliminates any adjustments or rework later.

  1. Set the “Calendar Options for the Project”.
    This is accessible through “File” –> “Options” –> “Schedule”.  Set your Shift Timings*, Hours Per Day, Start work day of the Week and  Average days in a month as appropriate for the project
  2. Enable display of Project Summary task.
    This can be achieved by setting “Show Project Summary Task” check box under “Display Options for this Project” accessible thru “File” –> “Options” –> “Advanced”
  3. Key in your Key Summary Tasks. Only Task Names.
    Never Key in Estimates , Duration or Schedule for Summary Tasks.
  4. Create a dummy milestone to capture the Start date for the Project
  5. Key in your Milestones with the dates.
  6. Key in your Sub tasks / Detail Tasks. Only Task Names.
  7. Key in your Work Estimates in Work Column for your Detail / Sub Tasks.
    Never key in Work Estimates to any of the Summary Tasks. This will affect rolling up of Estimates of Detail Tasks to Summary Tasks.
  8. Key in your duration of each task for your Detail / Sub Tasks.
    Never key in duration to any of the Summary Tasks. This will affect rolling up of duration of Detail Tasks to Summary Tasks.
  9. Indent the Sub Tasks / Detail Tasks under appropriate Summary Tasks
  10. Set the Dependencies
    Stay away from setting Dependencies for any of the Summary task.
  11. Assign the Resources
    Stay away from assigning resources to any of the Summary task.
  12. Set the Project and Resource Calendar.
  13. Review the Plan so that it aligns with your Project Schedule agreed.
  14. Validate the Value in Work field for Project Summary Task against the Total Estimated Effort for the Project.
    If all the other tasks are either the child of this task or any other task coming under the task, then MS Project will roll-up the efforts of individual tasks to the Project Summary Task.
  15. Level your resources.
    Some of the resource’s total assigned effort for a day may exceed standard hours or their availability.  These cases can be identified in the Resource Sheet View. Over-allocated resources will appear in “RED”.   The main reason for over allocation would be due to assignment of a resource to multiple tasks whose schedule overlaps.
  16. Create a Baseline for the Project for tracking when the project is running.

* If you change the Working Times in Project Options, then you need to explicitly match the new timings by changing them in the “Change Working Time” dialog box. Select the “Work Weeks” tab, while the Default entry in this tab selected, click on “Details”. In the “Details” dialog box, multi-select your work days and select the “Set day(s) to this specific working times” radio button and then key in your Project specific work times.

See Also : More articles on MS Project

Estimating Resource Requirements using Microsoft Project

This post will help you in Estimating the Resources needed to complete a given task with in a prescribed Schedule using MS Project..

I assume, Human resources here. One Full-Time-Effort(FTE) is taken as 8hrs / Day. If the Effort for 1 FTE is different in your case, for eg:9hrs/Day then change “Hours Per Day” option under “Schedule” in Tools –> Options on MS Project. On Project 2010 this option is available under File –> Options –> Schedule.

Let’s have a scenario first.

Here is the schedule given

Task Duration
Technical Design 20 Days
Code/Build/Test 18 Days

Listed below are the efforts arrived by your team for the above tasks in the Project.

Task Effort(Hours)</td>
Technical Design 600 Hours
Code/Build/Test 500 Hours

Now let us see using MS Project, how many Full Time resources(FTE) do we need to fit our efforts within the schedule given.

Steps required on MS Project

1) Set up MS Project

  • Go to “Tools” –> “Options”. On Project 2010, you need to go to File –> Options
    • Select tab “Schedule”
    • On the “Default task type” drop down select “Fixed Duration”
    • Select tab “View”. On Project 2010, Go to File–> Options. Select “Advanced” tab
    • On the “Outline Options for <projectname>” check the Option “Show project summary task”. This option is available under “Display Options for Project” in Project 2010
    • Click “Ok” to finish the Definition
  • Open a new Project in MS Project
  • If the default Gant Chart View doesn’t have the “Work Column”, do the following steps to insert the same
    • Right Click on the Column heading
    • Select the “Insert Column” menu item
    • On the “Column Definition” dialog opened, select “Work” from the “Field Name” drop down.
    • Click “Ok” to finish the Definition

2) Task Definition

  • Add a milestone task to denote our start date , On Row 2 enter the following
    • Enter “Start” on the “Task Definition Column”
    • “0 days” on the “Duration Column”
    • “0 hrs” on the “Work” Column
    • Now set the anticipated start date for our “Technical Design”, by entering the date on the “Start” column(either enter the date in the default date format or select the drop down to view the calendar)
  • Add our first task in the Project – i.e., “Technical Design”. Go to the next row(3rd) enter the following
    • “Technical Design” on the Task Definition Column
    • “20 Days” on the “Duration” Column
    • “600 Hrs” on the “Work” Column
    • Now MS Project will populate the “Start” and “Finish” column based on our effort and duration.
    • Go to the “Predecessors” column of our “Technical Design” Task and set the dependency to our “Start” milestone
    • Enter the id displayed on the “Id” column of our “Start” task in this column. You can see that MS Project updates the Start date based on the date set for our “Start” milestone
  • Add our third task – i.e. ,”Code/Build/Test”. Go to the next row(4th) enter the following
    • “Code/Build/Test” on the Task Definition Column
    • “18 Days” on the “Duration” Column
    • “500 Hrs” on the “Work” Column
    • Now MS Project will populate the “Start” and “Finish” column based on our effort and duration.
    • Go to the “Predecessors” column of our “Code/Build/Test” Task and set the dependency, “Technical Design” finish to start “Code/Build/Test”
    • Enter the id displayed on the “Id” column of our “Technical Design” task in this column. You can see that MS Project updates the Start date based on the finish  date displayed for our “Code/Build/Test” Task

3) Arrive at the Full Time Effort(FTE)

  • Enter a value, for eg: Developer on the “Resource Names” column for all of our non-milestone tasks. I.e., “Technical Design” & “Code/Build/Test”
  • You can see that MS Project appends a % value to the value we entered. The “Technical Design” task, “Resource Names” will display “Developer[375%], means you need 3.75 FTEs to complete 600hrs of Technical Design in 20 Days.
  • After completing the “Resource Names” entry on all our tasks – Technical Design and Code/Build/Test and from the values appearing on the Resource Names column, we can infer that the Technical Design task needs 3.75 FTE and Code/Build/Test  needs 3.47 FTE.

4)   Now what if, we don’t have the MS Project calculated FTE in hand?

  • Adjust the value on the “Duration” column of our tasks to arrive at the required FTE. Please note that when you change the value of the duration, MS Project adjusts the value in the work column. Please reset it to the original effort for the task (This Is the Default Behaviour For MS Project)

Once you arrive at the required FTEs, the Start and Finish columns should show the workable schedule

See Also : More articles on MS Project

Give me a QIF file from a CSV file

You will find here a simple script to convert a delimited CSV file to QIF format. This will come handy if you need to import your bank or credit card statement available in CSV format.

Note : This script is not customized to process investment transactions

The script is developed as a vbscript file. Your Windows desktop should be able to run this script on a command prompt.

The script expects your CSV file to be in a particular format. This is limited to how your columns are named and the delimiter used. The delimiter expected is semicolon. You can customize the script to use a different delimiter. The columns can be in any order. Captured below are the expectations on the column headings.

Colum Heading Notes
Date Transaction date
Payee Payee Name
Narration Memo or Narration about the transaction
Amount Transaction Amount
Cheque Ref Cheque Number. This field can be blank also.
CR_OR_DR The transaction is a credit or debit. If this field is not present in your CSV, you need to add the column and capture CR or DR for Credit or Debit respectively

Follow the below steps to get setup.

  • Copy the below lines beginning with REM Script Begins and save it to a file with extension .vbs . For eg : QifFromCsv.vbs
  • To make it easy for running the script copy the .vbs file to the same folder where your CSV file is located.
  • Make a copy of your csv file and name it input.csv .
  • Fire up the command prompt and run the following on the command prompt. I assume the script file is named QifFromCsv.vbs .

cscript QifFromCsv.vbs

  • The script creates a file named output.qif , which you can use to import into your Personal Finance application.

REM Script Begins
REM Feel free to Customize or alter the code
REM Define the Titles expected in the CSV file. Alter the text between double quotes to match yours

Const cDateColTitle = "Date"
Const cPayeeColTitle = "Payee"
Const cNarrationColTitle = "Narration"
Const cAmountColTitle = "Amount"
Const cChequeColTitle = "Cheque Ref"
Const cCRDRColTitle = "CR_OR_DR"
REM Define the delimiter used in the csv file. Change the text between double quotes to match yours

Const cDelimiter = ";"
Dim QIFCodesApplicable(10)
Dim FieldsRecognized(10)
Dim fso, f2, ts, ts2, line, records, linesRead
Const ForReading = 1, ForWriting = 2, ForAppending = 8
linesRead = 0

Set fso = CreateObject("Scripting.FileSystemObject")
Set tf1 = fso.OpenTextFile("input.csv", ForReading, false)
Set tf2 = fso.OpenTextFile("output.qif", ForWriting, true)
Do While Not tf1.AtEndOfStream
line = tf1.ReadLine
linesRead = linesRead + 1

REM Parse Header for applicable fields
if linesRead = 1 then
if UBound(fieldsInHeader) = 0 then
Wscript.echo " "
Wscript.echo "Please verify whether the Delimiter used in your file is consistent "
Wscript.echo "and is " + cDelimiter
Wscript.echo "if consistent then try running the script by editing the line "
Wscript.echo "Const cDelimiter=""your delimiter"" "
end if

Wscript.echo "Parsing Header for Predefined Fields"
for i = 0 to UBound(fieldsInHeader)
select Case fieldsInHeader(i)
case "Date"
QIFCodesApplicable(i) ="D"
FieldsRecognized(i) = cDateColTitle
case "Payee"
QIFCodesApplicable(i) = "P"
FieldsRecognized(i) = cPayeeColTitle
case "Narration"
QIFCodesApplicable(i) = "M"
FieldsRecognized(i) = cNarrationColTitle
case "Amount"
QIFCodesApplicable(i)= "T"
FieldsRecognized(i) = cAmountColTitle
case "Cheque Ref"
QIFCodesApplicable(i) = "N"
FieldsRecognized(i) = cChequeColTitle
case "CR_OR_DR"
CR_DR_FieldNumber = i
FieldsRecognized(i) = cCRDRColTitle
end select
Wscript.echo "Found " + Cstr(Ubound(FieldsRecognized,1)) + " Predefined Fields"
tf2.WriteLine "!Type:Bank"
end if

if linesRead > 1 then
if UBound(records) = 0 then
Wscript.echo " "
Wscript.echo "Please verify whether the Delimiter used in your file is consistent "
Wscript.echo "and is " + cDelimiter
Wscript.echo "if consistent then try running the script by editing the line "
Wscript.echo "Const cDelimiter=""your delimiter"" "
end if
for i=0 to UBound(records)

REM If the current field is amount field check whether its a debit or credit
if QIFCodesApplicable(i) = "T" then
if records(CR_DR_FieldNumber) = "CR" then
lQifLine=QIFCodesApplicable(i) + "-" + records(i)
lQifLine=QIFCodesApplicable(i) + records(i)
end if
lQifLine = QIFCodesApplicable(i) + records(i)
end if

if i <> CR_DR_FieldNumber then
tf2.WriteLine lQifLine
end if
end if

tf2.WriteLine "^"

Wscript.echo " "
Wscript.echo " Processed " +cStr(linesRead) + " transactions "
if (linesRead > 1 ) then
Wscript.echo " Output file is output.qif"
end if

Should I buy Office 365 Home Premium or Office Home & Student 2013

This post will give you inputs  on choosing the version of MS Office from  a Value for Money point of view.

 Microsoft released the new iteration of its highly successful Office Suite to general Public last week.  The trend of embracing Cloud adopted by Microsoft is visible in this product line also.

What’s the best flavour from a Value for Money point of view for a Home user?  Read on….

I’ll make the following assumption for the rest of the post.

1) Average time frame for which a normal Home user uses a particular version of Office suite is assumed min 5 Years

2) Word and Excel will suffice for a normal Home user. Outlook will always be a Bonus for him.

Now the pricing offered for these two variants is as follows

a) Office 365 Home Premium –    Rs 4199/- (approximately $ 77)

b) Office Home & Student 2013 – Rs 5499/- (approximately $ 101)

Variant (a) looks like reasonable. But its subscription based. The price mentioned is the yearly fee you pay for using the following Products – Word, Excel, PowerPoint, Outlook + few others. You can have the Suite installed in 5 Desktops (PCs / Macs).

Whereas variant (b) is a onetime payment you pay for using the product for the life time. But limited to only ONE desktop. And you are limited to Word, Excel, PowerPoint & OneNote.

Let us look at two scenarios based on the number of installation with in the family

Scenario 1 – Only one Desktop/Laptop


Office Home & Student 2013

Office 365 Home Premium

Cost for using the Product for 5 Years

Rs. 5499/-

Rs. 20, 995/- (Rs. 4199 x 5 )

Products available

Word, Excel, PowerPoint, OneNote

Word, Excel, PowerPoint, OneNote, Outlook + others

For only one installation in a house hold, it’s cost-effective to go with Office Home & Student variant.

Even if you want Outlook also for your mail chores, a one-time Payment of Rs 6,749 + Rs 5499 for Office Home & Student will still be cost-effective compared to Office 365 Home Premium in the long run.

Scenario 2 – More than one Desktop/Laptop

Let’s use two tables to get a clear picture.

Cost Per Year for the number of Installations


Cost Per Unit

No of   Installations










Office   Home & Student 2013






Office   365 Home Premium






Savings   for choosing Office 365 Home Premium






What you end up paying at the end of 5th Year?


No of   Installations


Variants / Combinations







Cost at the end of 5 Years


Office   365 Home Premium





Cost remains the same irrespective of Installations

Office   Home & Student 2013






Office   Home & Student 2013 + Outlook






 Office 365 Home premium is cost-effective only if you have 4 to 5 installation in the long run. Other wise, Office Home & Student is the best option.

For choice of other products than what’s covered in Home & Student Variant , it’s better to go with Office 365 Home Premium for 3 and above installations.

 Hope this post will help you in choosing the appropriate variant of MS Office for your needs.

Related articles

Restore Ubuntu Boot Menu after Windows 8 Install

Read on to get back your Ubuntu Boot Menu which disappeared after your Windows 8 install.

Most of us would like to utilize our Desktops for running multiple Operating Systems, which co-exist on our Hard Disk.  Each OS has its own boot-manager to help us in booting to our OS of choice during start-up.  Windows 8 also has the same, but some what partial in allowing us to use our favorite Ubuntu after Windows 8 install. Windows 8 hijack the boot record and puts its own boot manager. Its tidy compared to earlier versions and recognizes existing Windows install. But it never recognizes (purposefully ? ) any Linux-based installations.  So after your Windows 8 install, you will not have any option to get to your Ubuntu.

Ubuntu / Linux communities knows this and they have long back put up a solution to fix this. The utility in lime light is “boot-repair”.  It has a basic and advanced mode to repair or get back your grub  boot manager back. When this is restored, grub will be updated to include your newly installed Windows 8 also in the boot menu.

Ubuntu has a detailed help page on how to achieve this. So I’m not going to explain this in detail and leave you to visit the following url to go ahead.  You will need a Ubuntu Live CD to start with.

Boot-Repair : Community Ubuntu Documentation