Monthly Archives: August 2016

Earned Value Management – Formulas, Calculations & Examples

Any project needs a constant monitoring of time, material and cost usage. If you see your team falling behind on schedule, you can add more resources to stay on track. But that could result in increase of project cost (Unless you are not paid overtime!). This concept is commonly known as triple constraint in the Project Management world and it means that if either one or more constraints (time, cost or schedule) change in positive or negative direction, the other constraints will be affected as well.

To stay on track we universally use the tried and tested Earned Value management calculations. Not only are they used for monitoring and control of a project; they are a valuable set of tools for reporting performance to the stakeholder or sponsors or your program manager.

Here is an example of a Project Performance Report.

Performance Report sample

Changes in project baselines can occur due to either internal reasons or external factors; for example internal reason could be resource turnover and external reason could be change in requirement by business)

Lets assume there is a change in requirement and we invoke change management to have those changes approved and added to the project baselines. That will cause an increase in budget & time and they would need to be recalculated. Now we might also need to forecast “If” situations such as what if the schedule is immovable then how many more resources would I need to add and what would be the additional cost incurred?

These questions and analysis can be easily done via EV calculations.

Here are the terms and formulas that are most commonly used. I created this diagram depicting the terms in pictorial form for easier understanding.

Earned value management Diagram

  • Planned Value (PV): This is the estimated value of work that is planned to be done.
  • Earned Value (EV): EV is where you are currently in the project. i.e, earned value of work completed.
  • Actual Cost (AC): This is the actual cost of the work completed.
  • Budget at Completion (BAC): This is the project’s total budget that is determined by the P.O.
  • Estimate at Completion (EAC): This is a forecasting term that will help in determining expected total cost in the end. EAC = AC + (BAC – EV)
  • Estimate to Complete (ETC): This is expected remaining cost. (from now until the end) ETC = EAC-AC
  • Cost Variance (CV): EV-AC. You want your earned value higher than the actual cost.
  • Schedule Variance (SV): You again want to keep your SV positive.
  • SV=EV-PV
  • Variance at Completion (VAC): This is the variance calculation to determine whether the project is running over or under budget.

Here is an example , let’s say we hired a coder with billing rate of $50/hour to code 500 lines of code in 5 days (total of 40 hours). The coder is expected to code 100 lines/day and work 8 hours/day.

Scenario on Day 1:  Coder worked 6 hours and finished 200 lines of code

  1. PV = $400    (per 100 lines of code or 8 hours of work at $50/hour)
  2. EV = 200 lines of code x $4/line of code = $800
  3. AC = 6 hours x $50/hour = $300
  4. CV = EV – AC = $800 – $300 = $500
  5. SV = EV – PV = $800 – $400 = $400
  6. CPI = EV/AC = $800/$300 = 2.67
  7. SPI = EV/PV = $800/$400 = 2
  8. BAC = Total Project Budget = $400/day x 5 days = $2000
  9. EAC = AC + (BAC – EV) = $300 + ($2000 – $800) = $1500     — Atypical, that is, variable work each day by ignoring the past. To be used when all future work will be accomplished at the budgeted rate. –
  10. EAC = BAC / CPI = $2000 / 2.67 = $750  — Typical, that is, assuming same amount of work per day and same spending per day will continue. –
  11. EAC = AC + [(BAC – EV) / (CPI x SPI)] = $300 + [($2000-$800)/(2.67 x 2)] =  $525   -Used when dealing with poor cost performance and the completion date is firm.
  12. ETC = EAC – AC = $1200
  13. VAC = BAC – EAC = $500
  14. TCPI = (BAC – EV) / (BAC – AC) = 70.59%

Perform same calculations for the following daily scenarios:

Scenario on Day 2:  Coder worked 8 hours and finished 50 lines of code

Scenario on Day 3:  Coder worked 6 hours and finished 100 lines of code

Scenario on Day 4:  Coder worked 10 hours and finished 50 lines of code

Scenario on Day 5:  Coder worked 10 hours and finished 100 lines of code

Earned Value Management Formulas and Calculations example

 

EVM Formula graph

I created this spreadsheet that will perform all the calculations for you and also give you budget status on daily basis(See “Over or Under Budget?” column). Just input the cells highlighted in Yellow.

And here is the attachment for the Excel sheet –> Excel Spreadsheet for EVM Formulas and Calculations

Determining the Critical Path and Float

In spite of Critical Path being such an important method of managing a successful and timely delivery of project deliverables and as the name implies it being “critical”, it is surprisingly overlooked. How many times have you experienced a setback or delay in completing some of the project tasks whether due to any unexpected issues or dependencies or identified risks and things of that nature? To stay on track, critical path helps you mitigate the risk of falling behind the set & agreed schedule and also assists in managing those delays in a way that will cause no real negative effect on the firm project completion date.

Critical path method is used to calculate early & late start dates and finish dates without taking into consideration any resource constraints. Critical path method highlights that one path, out of various different paths in your schedule network diagram, that results in latest completion date of the project. Some of the tasks with a calculated float greater than “0” can be delayed but the tasks that fall under the critical path cannot be delayed. Any delay will cause increase in resources, schedule and related cost. Microsoft Project has an option for automatically displaying the critical path that should be monitored closely by any project manager. The rationale being that there could be delays on certain tasks but the maximum delay (without affection timeline) could only be what is permissible by the calculated slack or float. So when you notice your team is going slow on certain tasks and missing the completion date, you will need to figure out a way to restructure the dates for those delayed tasks in such a way that the project completion date is not affected. This is where critical path and slacks comes into picture.

We can easily find the critical path using Microsoft Project and also visually highlight the entire path in Gantt chart. Here are the sample tasks I created in MS Project; You can see the tasks highlighted in yellow(in task list) and red (in Gantt chart) are the tasks on critical path.

Critical Path in Microsoft Project with slack

 

Now let’s assume Task 2 has been delayed to start on 5/29 instead of starting on 5/21 as originally planned. Since Task 2 has a slack of 9 days, we can delay the start date upto maximum 9 days before affecting the project completion date. See below on Gantt Chart how moving task 2 has no negative effect on the total time frame.

Critical Path Non Critical Tasks moved

 

Calculating the slack manually will clear this concept from the ground level. Let’s say you have 9 WBS tasks in your project plan and the durations have been determined for each task. Next step is to determine the predecessors for each subsequent task. This forms a network schedule diagram which will be used for calculating the Critical Path.  Start by designating the acronyms ES, EF, LS and LF to the 4 corners of the task box as shown in the diagram below.

Critical Path and Float1

Next step is to perform Forward Pass calculation to determine earliest start and earliest finish of each task. You start by assigning the value 0 to your first ES on Task 1.  You will then add the duration for task 1 to the ES value (which is Zero for first task) and determine the EF. So EF for task 1 is 0 +2 = 2.

You will carry the values of EF =2 to ES of task 2 and ES of Task 3 since both the the successor tasks. Again you will add ES + Duration on Tasks 2 and 3 to get EF values.

Now before you proceed, notice that Task 4 has two predecessor tasks. So you will need to calculate the ES for both of the predecessor tasks (Task 2 and 6) and pick the highest EF value.

After calculating the Earliest Finish for Task 2 and Task 6, we will pick 16 as ES for Task 4 since that is the highest number out of 7 and 16.

Keep repeating these steps for each task until all ES and EF are calculated and determined.

Critical Path and Float2

Backward Pass needs to be performed for calculating the LF and LS and is followed in the opposite direction of forward pass, i.e, from Task 9 to Task 1.

Start by taking the Earliest Finish value of the last task and assign it to the Latest Finish of that new task. Now subtract duration from the Latest Finish to get Latest Start.

The LF of Task 9 is 37, so the Latest Start will be 37 – duration 3 = 34.  Designate LS value to the LF of preceding task (from right to left perspective).

Keep performing the same steps until you reach Task 3. As you can see the values for LF of Task 3 can be carried over by both Task 5 and Task 6. Unlike forward pass method where you pick the highest values you will instead pick the lowest of the number. So the correct value carried over to LF of Task 3 will 10 (from 10 and 18 of Tasks 6 and 4 respectively)

Critical Path and Float3

The final step before we can determine the tasks falling on the critical pass is to calculate the float or slack. Float is the number of days a particular task can be delayed until the project completion is affected negatively.

To calculate float you will need to subtract Earliest Finish from Latest Finish (LF-EF) for each tasks. After calculating the float for all the tasks, you will note that there is a path where all the tasks have Zero float. That means there is no slack or delay allowed on any of those tasks. In our example, the critical path is in the order of Task 1, 3,5, 4,7 and 9.

Critical Path and Float4

Critical Path Report

Here is the video depicting each steps.

A case for using a shared information library

Over time, an information library can be a great source of information for your team. Whether your company uses Sharepoint or Microsoft TFS, FileStack or OneHUB the idea is to adopt and implement a process & a system for archiving and maintaining code changes for each client as well as any break-fixes or subsequent enhancements using SharePoint site.

The Objective

  • Help track changes for each implementation.
  • Check in the code changes per bank and maintain a history of all code revisions.
  • Use of a break-fixes SharePoint page that will contain all the changes made by anyone archived by date.
  • Have a separate section or page that includes all the comments or important information about an implementation.
  • Shared internally across various gourps such as Product Development Group and Product Support Group.

The Opportunity

  • There are many “break-fixes” or modifications that are added to an existing code base over a period of time. Tracking those changes as well as handling the job failures in absence of the primary developer can be challenging and a backup resource will face numerous challenges without the 360 degree knowledge of a particular implementation.
  • Will serve as a search site for any keywords to quickly check if there is any information around it. For example, a keyword search of “Custom code to rollup particular loan types” will yield a result of any items that were checked in or added on the SharePoint site. The scope of the search could include all the banks and will return results related to the keyword.
  • Repository of stored information may include added code snippets, additional logic or requirements implemented in the past, known bugs, discussions and log of any relevant information.
  • Will minimize the amount of time needed for a new or a backup resource to jump into job failures or other issues. Such site will also serve as a knowledge base and as a reference point to check before diving deep into any task.
  • Global search on SharePoint will enable your to look for a particular piece of information across all the banks. Such a wealth of knowledge will increase clarity and negate the reason to reinvent a similar work product that might already be in use at some other bank.
  • Important communications as well as details and insight on all clients can be maintained and retrieved when needed.
  • Such a site will help capture more accurate and detailed information along with the business rules and logic.

Solution

  • Create a SharePoint site that will have following features –
    • Code Versioning and comments on all subsequent check-ins of the original code.
    • Archival of all the changes along with discussion board and comments section.
  •  Site for maintaining other key or supplemental information, which can be beneficial to all, as a common knowledge.
    • Create a site for archiving a set of common code that can be reused at a different implementation.
  • Site for archival of “know-how” and “How to” knowledge or tips.

Other Benefits

  • Reduced work time for any fixes or “job fail” resolutions.
  • Easy transition of knowledge between responsible resource and new or a backup resource.
  • Negating the need to re-invent the wheel by making use of existing code library.

 

CONCLUSION

With a growing list of  clients, incorporating a shared repository system will surely help meet the challenges of maintaining relevant and critical information for each implementation.