Measure of Our Performance - Project Metrics

Quality Indicators

Сhanges and stability
Overall amount of changes is a specific indicator of progress and quality. It is defined as number of change requests opened or completed over the life of the project. It is analyzed by:

  • change type (fault or feature request)
  • subsystem or component affected
  • milestone and release
  • sub-team or individual contributor.

It is also coupled with work and progress metrics to provide insight into stability of the project, which is a relationship between open and implemented changes. This metrics indicates readiness of the software with respect to the schedule. It also helps to determine how well the process is performing.

Breakage and Modularity
Breakage is actual amount of code that needs to be written or modified for change implementation. It can be measured in function points, classes, modules, components, and source files. This shows how extensively any given change affects the software project. In a mature iterative process later changes should have smaller breakage than early changes. Modularity is an average breakage over time. As project progresses it should decrease or at least stabilize.

Rework and Adaptability - the average rework per change request over time
Rework is essentially cost of change, which includes analysis, resolution and retesting of all changes to the original design. Adaptability is a rework trend over time. Not all changes are created equal. Some changes can be implemented in a man-hour, while others take weeks. The goal is to decrease or stabilize this trend over the lifetime of the project.

MBTF and Maturity
MBFT is the average usage time between software errors. In simple terms it is computed by dividing test hours by the number of fixes requested. Complex distributed software systems require extensive statistical testing under realistic and randomized scenarios. Understanding of product maturity is gained by maximizing test time via automation tests, ad-hock testing, stress, and load tests.

Project metrics are a natural by-product of the software process. They are considered meaningful by all sides: customer, manager, and performer. Good metrics are objective and unambiguous. They clearly define correlation between the software process and business performance, and allow identification of longer-term trends.

Because of dynamic nature of software projects, availability of project metrics is critical. We work diligently to automate gathering and tracking of these metrics online.

Not only we compare project execution against planned targets but we measure ourselves by the projects we've done in the past, to achieve consistent improvements in management and quality.