We work hard to assure consistent delivery and highest quality of software projects. As part of integrated project management we measure our performance in two main areas:
- Project Management
- Quality indicators
- Customer and Employee Satisfaction
These metrics are employed by leading companies in the software industry, and are important indicators in Capability Maturity Model (CMM), a well-known benchmark of excellence in software process.
We'll cover Project and Quality metrics in more details
These metrics address the fundamental management question: Is project on budget and on schedule?
Work and progress
Pre-planning estimate of the work in an objective measure allows tracking progress against the plan. Each major team within a project has at least one perspective that it is measured against:
- Architecture team: spec and designs completed, use cases demonstrated
- Development team: changes and fixes completed and closed
- QA and testing team: number of fixes and changes requested, test hours executes, readiness criteria met
- Project management team: milestones completed
Different tasks and pieces of a project are assigned percentage-earned value. Percentage-complete then compared against scheduled and actual costs, to identify behind-schedule, or ahead-of-schedule situations.
Staffing and team dynamics
Iterative development starts with a small team until requirements and architecture mature. Implementation stage employs the largest number of participants, and reaching transition point the team gets smaller again. Knowing planned and actual dynamics and composition of the team allows us to avoid staffing trouble well ahead of time.
С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.