Check out my new blog at

Thursday, May 31, 2012

Announcing EVMS forProject

This week has been a dash to get ready for EVM World 2012, the premier conference for earned value management professionals, where we announced our newest product EVMS forProject™.  The product has been in development since 2009 and took an incredible 45 person-years of work to produce.  Built as a companion product for Microsoft Project Server/Project Professional 2010 (and 2007) and SharePoint, EVMS forProject is the first product to provide a purpose-built earned value management system for the enterprise based on Microsoft technology.

For a product overview, visit this link.   The official announcement is here.

(The screenshots and features in this post are part of the announced product but subject to change until general availability)

Developing this product has been high adventure.  Our CEO, Glenn Gallop, had a vision based on decades of working in the EV space.  Realizing the vision took our team of 6 developers (and a few contractors) three years of work. 



Glenn Gallop – CEO, President, and visionary

Andrei Cismaru – Developer
Chet Farmer – Product manager and IT services director
Colby Africa – Architect and developer
Joe Sharp – Development manager, architect and developer
Karl Werner – Developer
Ken Inglis – Developer
Paul Gorman --  Developer

Families – All of the above peoples’ families contributed in a major, almost incalculable fashion by supporting us during the long nights and weekends of work and tolerating our absence when we needed to congregate in Overland Park.  I want to thank my wife, Melina, for doing the hard things that helped me push on.

Developing The Product

The architecture and overall system design was a collaborative effort led by Joe Sharp and myself with a ton of individual developer feedback.  Laying down the source code to articulate the architecture was a superhuman effort.  I think we could have powered a mid-size city if we could convert the caloric value of the number of keystrokes to alternating current.   

Microsoft was a big supporter and partner in the development of the product, as was one of the largest privately held consulting, engineering and construction companies in the world.  Without these two staunch allies, we would have not pulled this off.

In the early stages of development, we spent almost three fourths of  the year at the Hyatt Place Overland Park.  The team at the Hyatt provided amazing service to the straggly team, up at all hours of the night working hard on the early phases of product development.


Our development process was driven directly by a real customer with real requirements, backed by the decades of experience our combined management and development team have in product development, earned value management, and project management in general.  We were building and delivering useable software from the very beginning, which contributed greatly to overall product quality.  The team turned on several dimes to ensure from a team, architecture, and usability perspective that the product was right.  While this was painful at times, the net effect was both a stronger team and a better product.

I have worked with many product groups over the years and yet it is easy for me to say that this team is the best, most cohesive, and generally fun team I have worked with.  My hat is off to these guys and cannot thank them enough for sticking it out and making our vision a reality.

Product Overview

The following are excerpts from the link provided at the beginning of this post, with additional information on enterprise configuration/data and our Windows product.

Key Benefits

Improve project performance measurement and management visibility
Promote consistency of practice across the enterprise
Meet widely-adopted industry and government EVMS guidelines
Increase user adoption of EVM

Planning & Budgeting

Financial period calendars support weekly or monthly EV process, with summary reporting calendars (quarters, years, etc.)
Define resources in EVMS forProject or import from Microsoft Project Server
Element of Cost (EOC) breakdown for direct costs such as labor, material, travel, ODC
Enterprise configuration for indirect/overhead cost categories and calculation rules
Enterprise or project-level rate tables with escalation
Configurable calculated Result Units and calculation rules
Interactive Control Account Planning interface

Cost / Schedule Integration

Robust, configurable synchronization with Microsoft Project Server
Synchronize Baseline, Forecast, Status and Actual data from schedule
Allows multiple schedules to be combined into a single EVMS project
Import resources from schedule, or plan resources directly in EVMS

Performance Measurement

Configurable EV methods including:

  • 0/100, 50/50 and other start/finish percentages
  • Units complete
  • Discrete milestone
  • Measured milestone
  • Percent complete
  • Technical measurement rules
  • Direct BCWP entry
  • Apportioned effort
  • Level of effort

    Enter status in EVMS forProject or synchronize from Microsoft Project Server

    Budgeted Cost of Work Performed (BCWP) / Planned Value calculated instantly in all planning units and result units and currencies

    Cost Tracking

    Import actual costs either weekly or monthly
    Track actuals at Work Package or Control Account level
    Incremental or cumulative values
    Maintain transaction history


    Track ETC and EAC in EVMS forProject or import from Microsoft Project Server
    ETC and EAC instantly available at all levels of detail and in all planning units, result units and currencies
    Ten (10) standard independent EAC (iEAC) calculations
    Support top-down or bottom-up forecasting
    Manual forecast by either ETC or EAC

    Variance Analysis

    Earned value metrics calculated and displayed instantly, including CV, SV, CPI, SPI, CV%, SV%, VAC, VAC% and more
    EV performance metrics instantly rolled up from details to summary levels
    Variance thresholds can be defined and used to highlight views and reports

    Change Management

    Integrated project change log tracks changes to:
    Negotiated contract cost (NCC)
    Authorized, unpriced work (AUW)
    Undistributed budget (UB)
    Distributed budget (DB)
    Management reserve (MR)
    Over target baseline (OTB)
    Contract Performance Report (CPR) header & footer logs
    Ability to close periods to baseline changes
    Easily produce change log reports and export to Excel

    Enterprise Data and Features

    The product is extremely configurable… I mean extremely configurable.  Here is a screen shot of our System Settings area in SharePoint:


    In subsequent posts, I will describe in detail what each of these areas and features are but for this post I am going to focus on three areas: security, calculation models, and custom fields.


    EVMS forProject has a granular, role-based security system.  There are almost 650 individual permissions which are rolled up internally into groups of permissions by area.   Roles are defined by enabling or disabling permissions:


    This granular, role-based approach provides detailed control of what users are able to do and see which is very important for the enterprise—particularly for the government agencies and contractors we work with.

    Calculation Models

    Every organization we work with has different policies, practices, and techniques for managing projects--at times varying so widely that is hard to imagine a product that would service all of them.  We worked very hard on providing a system that could accommodate the various management approaches.

    One of the big difference between organizations, in terms of  cost management, is how various calculations are performed to arrive at cost, G&A, overhead, etc.   We built a server-side/client-side calculation engine that allows for detailed configuration and execution of these varying calculation models.

    A “calculation model” is a set of user-defined calculations performed on project.  Calculation models are defined at the enterprise level (more than one is supported and can be picked by the project manager if security allows them to).

    Here is a screenshot of the labor portion of an enterprise calculation model:


    The “Result Unit” is the result of an earlier calculation or of some “base” result unit like hours, money, or quantity.   The calculation model allows you to take a base result unit and develop derivative result units using formulas.  The above example takes hours, multiplied by the labor rate (which is defined on the resource or even the individual resource assignment) to arrive at the direct labor cost.  That derivative result unit is then used to formulate addition derivatives, eventually cumulating in the invoice price.  Very, very slick.  Joe Sharp was the lead architect and developer on this part of the product and it is truly awesome.

    These result units are then available to the project manager, control account manager, and other users in EVMS forProject Professional and our SharePoint-based reporting suite.

    We developed a SharePoint-based formula editor which allows the user to create simple or complex formulas for calculation.  Here is a new calculation rule that shows the base formulate editor menu:


    After choosing a base unit, I can apply various operators to it:


    I can choose to add rates, fields, or other result units to the formula:


    One of the most powerful features of the calculation engine is the ability to include contextual values in the formula, such as values of a project, resource, or assignment.


    The above example include the value of “SalaryMuliplier”, which is a custom field on the project in the calculation of a price multiplier.

    For even more complex formulas, we provided a parser that allows the user to create complex formulas using .NET’s math and string libraries.

    Custom Fields

    Every enterprise project management system provides the ability to define and use custom fields.  We spent days haggling over custom field features and implementation—wait, I mean weeks—before we settled on our approach and feature set.

    We support as many custom fields as you like on a wide range of “entities” such as the project, tasks, resources, resource assignments and various other entities.  Custom fields can be of any type, including text, number, flag, cost, date, etc.  The custom field can be backed by a lookup table, optionally included in our cube definition and snapshot (a snapshot of project data for a specific time), and setup to fill down automatically to the entities’ children.  The custom field input can be masked as well.  Here is a screenshot of a custom field definition:


    Custom field values can by synchronized from values existing in Project Server, including values from the project, task, resource, and resource assignment. 

    EVMS forProject Professional

    In addition to our SharePoint-based interface, EVMS forProject includes a rich Windows client employing Microsoft’s Fluent User Interface

    Here is the Planning View with details, which include the resources assigned to the project and the result units (in this case, just hours are shown):


    Planning View with Notes


    The WBS Editor


    You can see that this matches what is in Microsoft Project.  I just synchronized the structure, resources, and resource assignments:


    Okay, I have run out of time today.  Next look for a post featuring a deep dive on Project Server synchronization.


  • Disclaimer

    Content on this site is provided "AS IS" with no warranties and confers no rights. Additionally, all content on this site is my own personal opinion and does not represent my employer's view in any way.