Sample product metrics include
Sample process metrics include
Once the organization determines the slate of metrics to be implemented, it must develop a methodology for reviewing the results of the metrics program. Metrics are useless if they do not result in improved quality and/or productivity. At a minimum, the organization should
The following metrics are typically used by those measuring the configuration management (CM) process:
The set of metrics in this section is based on a process maturity framework developed at the Software Engineering Institute (SEI) at Carnegie Mellon University. The SEI framework divides organizations into five levels based on how mature (i.e., organized, professional, aligned to software tenets) the organization is. The five levels range from initial, or ad hoc, to an optimizing environment. Using this framework, metrics should be divided into five levels as well. Each level is based on the amount of information made available to the development process. As the development process matures and improves, additional metrics can be collected and analyzed, as shown in Table A5.1.
MATURITY LEVEL | MEASUREMENT FOCUS | APPLICABLE CORE MEASURES |
1 | Establish baselines for planning and estimating project resources and tasks | Effort, schedule progress (pilot or selected projects) |
2 | Track and control project resources and tasks | Effort, schedule progress (project by project basis) |
3 | Define and quantify products and processes within and across projects | Products: size, defects Processes: effort, schedule (compare above across projects) |
4 | Define, quantify, and control subprocesses and elements | Set upper and lower statistical control boundaries for core measures. Use estimated vs actual comparisons for projects and compare across projects. |
5 | Dynamically optimize at the project level and improve across projects | Use statistical control results dynamically within the project to adjust processes and products for improved success. |
Level 1: Initial process. This level is characterized by an ad hoc approach to software development. Inputs to the process are not well defined but the outputs are as expected. Preliminary baseline project metrics should be gathered at this level to form a basis for comparison as improvements are made and maturity increases. This can be accomplished by comparing new project measurements with the baseline ones.
Level 2: Repeatable process. At this level, the process is repeatable in much the same way that a subroutine is repeatable. The requirements act as input, the code as output, and constraints are such things as budget and schedule. Even though proper inputs produce proper outputs, there is no means to easily discern how the outputs are actually produced. Only project-related metrics make sense at this level since the activities within the actual transitions from input to output are not available to be measured. Measures at this level can include
Level 3: Defined process. At this level, the activities of the process are clearly defined. This additional structure means that the input to and output from each well-defined functional activity can be examined, which permits a measurement of the intermediate products. Measures include
Level 4: Managed process. At this level, feedback from early project activities is used to set priorities for later project activities. Activities are readily compared and contrasted, and the effects of changes in one activity can be tracked in the others. At this level, measurements can be made across activities and are used to control and stabilize the process so that productivity and quality can match expectation. The following types of data are recommended to be collected. Metrics at this stage, although derived from the following data, are tailored to the individual organization.
Level 5: Optimizing process. At this level, measures from activities are used to change and improve the process. This process change can affect the organization and the project as well.
The Institute of Electrical and Electronics Engineers (IEEE) standards were written with the objective to provide the software community with defined measures currently used as indicators of reliability. By emphasizing early reliability assessment, this standard supports methods through measurement to improve product reliability.
This section presents a subset of the IEEE standard easily adaptable by the general IT community.
Fd = F/KSLOC
where:
F = total number of unique faults found in a given interval resulting in failures of a specified severity level
KSLOC = number of source lines of executable code and nonexecutable data declarations in thousands
Di = total number of unique defects detected during the ith design or code inspection process
I = total number of inspections
KSLOD = in the design phase, this is the number of source lines of executable code and nonexecutable data declarations in thousands
functional(modular)test=FE
coverage index FT
where:
FE = number of software functional (modular) requirements for which all test cases have been satisfactorily completed
FT = total number of software functional (modular) requirements
R1 = number of requirements met by the architecture
R2 = number of original requirements
Software maturity index. This measure is used to quantify the readiness of a software product. Changes from a previous baseline to the current baselines are an indication of the current product stability.
where:
SMI = software maturity index
MT = number of software functions (modules) in the current delivery F
Fa = number of software functions (modules) in the current delivery that are additions to the previous delivery
Fc = number of software functions (modules) in the current delivery that include internal changes from a previous delivery
Fdel = number of software functions (modules) in the previous delivery that are deleted in the current delivery
The software maturity index may be estimated as:
C = E − N + 1
where:
C = complexity
N = number of nodes (sequential groups of program statements)
E = number of edges (program flows between nodes)
Design structure. This measure is used to determine the simplicity of the detailed design of a software program. The values determined can be used to identify problem areas within the software design.
where:
DSM = design structure measure
P1 = total number of modules in program
P2 = number of modules dependent on input or output
P3 = number of modules dependent on prior processing (state) P4 = number of database elements
P5 = number of nonunique database elements
P6 = number of database segments
P7 = number of modules not single entrance/single exit
The design structure is the weighted sum of six derivatives determined by using the aforementioned primitives.
The weights (Wi) are assigned by the user based on the priority of each associated derivative. Each Wi has a value between 0 and 1.
Data or information flow complexity. This is a structural complexity or procedural complexity measure that can be used to evaluate: the information flow structure of large-scale systems, the procedure and module information flow structure, the complexity of the interconnections between modules, and the degree of simplicity of relationships between subsystems, and to correlate total observed failures and software reliability with data complexity.
weighted IFC = length × (fanin × fanout)2
where:
The flow of information between modules and/or subsystems needs to be determined either through the use of automated techniques or charting mechanisms. A local flow from module A to B exists if one of the following occurs:
Software documentation and source listings. The objective of this measure is to collect information to identify the parts of the software maintenance products that may be inadequate for use in a software maintenance environment. Questionnaires are used to examine the format and content of the documentation and source code attributes from a maintainability perspective.
The questionnaires examine the following product characteristics:
Two questionnaires, the software documentation questionnaire and the software source listing questionnaire, are used to evaluate the software products in a desk audit.
For the software documentation evaluation, the resource documents should include those that contain the program design specifications, program testing information and procedures, program maintenance information, and guidelines used in the preparation of the documentation. Typical questions from the questionnaire include
The software source listings evaluation reviews either high-order language or assembler source code. Multiple evaluations using the questionnaire are conducted for the unit level of the program (module). The modules selected should represent a sample size of at least 10% of the total source code. Typical questions include
There are a wide variety of performance metrics that companies use. In this section, we will list some actual metrics from selected organizations surveyed and/or researched for this book. The reader is urged to review Appendix III, which lists a wealth of standard IT metrics, and Appendix XII, which discusses how to establish a software measure program within your organization.
On a monthly basis:
For bonuses, employees track (monthly):
Reduction of operational problems:
Availability of the ERP system:
Avoidance of operational bottlenecks:
Actuality of the system:
Improvement in system development:
Avoidance of developer-bottlenecks:
CATEGORY | MEASUREMENT (HOW) | METRIC (WHAT) |
Costs | Actual vs. budget | • Labor (costs) |
• Materials (hardware/software) | ||
• Other (office space, telecom) | ||
Schedule | Actual vs. planned | • Key deliverables completed |
• Key deliverables not completed | ||
• Milestones met | ||
• Milestones not met | ||
Risks | Anticipated vs. actual | • Event (actual occurrence) |
• Impact (effect on project) | ||
Quality | Actual vs. planned activities | • Number of reviews (peer, structured walkthrough) |
• Number of defects (code, documentation) | ||
• Type of defect (major/minor) | ||
• Origin of defect (coding, testing, documentation) |
CATEGORY | FOCUS | PURPOSE | MEASURE OF SUCCESS |
Schedule performance | Tasks completed vs. tasks planned at a point in time. | Assess project progress. Apply project resources. | 100% completion of tasks on critical path; 90% all others |
Major milestones met vs. planned. | Measure time efficiency. | 90% of major milestones met. | |
Revisions to approved plan. | Understand and control project “churn.” | All revisions reviewed and approved. | |
Changes to customer requirements. | Understand and manage scope and schedule. | All changes managed through approved change process. | |
Project completion date. | Award/penalize (depending on contract type). | Project completed on schedule (per approved plan). | |
Budget performance | Revisions to cost estimates. | Assess and manage project cost. | 100% of revisions are reviewed and approved. |
Dollars spent vs. dollars budgeted. | Measure cost efficiency. | Project completed within approved cost parameters. | |
Return on investment (ROI). | Track and assess performance of project investment portfolio. | ROI (positive cash flow) begins according to plan. | |
Acquisition cost control. | Assess and manage acquisition dollars. | All applicable acquisition guidelines followed. | |
Product quality | Defects identified through quality activities. | Track progress in, and effectiveness of, defect removal. | 90% of expected defects identified (e.g., via peer reviews, inspections). |
Test case failures vs. number of cases planned. | Assess product functionality and absence of defects. | 100% of planned test cases execute successfully. | |
Number of service calls. | Track customer problems. | 75% reduction after three months of operation. | |
Customer satisfaction index. | Identify trends. | 95% positive rating. | |
Customer satisfaction trend. | Improve customer satisfaction. | 5% improvement each quarter. | |
Number of repeat customers. | Determine if customers are using the product multiple times (could indicate satisfaction with the product). | “X”% of customers use the product “X” times during a specified time period. | |
Number of problems reported by customers. | Assess quality of project deliverables. | 100% of reported problems addressed within 72 h. | |
Compliance | Compliance with enterprise architecture model requirements. | Track progress towards department-wide architecture model. | Zero deviations without proper approvals. |
Compliance with interoperability requirements. | Track progress toward system interoperability. | Product works effectively within system portfolio. | |
Compliance with standards. | Alignment, interoperability, consistency. | No significant negative findings during architect assessments. | |
For website projects, compliance with style guide. | To ensure standardization of website. | All websites have the same "look and feel." | |
Compliance with Section 508. | To meet regulatory requirements. | Persons with disabilities may access and utilize the functionality of the system. | |
Redundancy | Elimination of duplicate or overlapping systems. | Ensure return on investment. | Retirement of 100% of identified systems |
Decreased number of duplicate data elements. | Reduce input redundancy and increase data integrity. | Data elements are entered once and stored in one database. | |
Consolidate help desk functions. | Reduce $ spent on help desk support. | Approved consolidation plan by fill-in-date | |
Cost avoidance | System is easily upgraded. | Take advantage of e.g., COTS upgrades. | Subsequent releases do not require major “glue code” project to upgrade. |
Avoid costs of maintaining duplicate systems. | Reduce IT costs. | 100% of duplicate systems have been identified and eliminated. | |
System is maintainable. | Reduce maintenance costs. | New version (of COTS) does not require “glue code.” | |
Customer satisfaction | System availability (up time). | Measure system availability. | 100% of requirement is met (e.g., 99% M-F, 8 a.m. to 6 p.m., and 90% S&S, 8 a.m. to 5 p.m.). |
System functionality (meets customer’s/user’s needs). | Measure how well customer needs are being met. | Positive trend in customer satisfaction survey(s). | |
Absence of defects (that impact customer). | Number of defects removed during project life cycle. | 90% of defects expected were removed. | |
Ease of learning and use. | Measure time to becoming productive. | Positive trend in training survey(s). | |
Time it takes to answer calls for help. | Manage/reduce response times. | 95% of severity one calls answered within 3 h. | |
Rating of training course. | Assess effectiveness and quality of training. | 90% of responses of “good” or better. | |
Business goals/ mission | Functionality tracks reportable inventory. | Validate system supports program mission. | All reportable inventory is tracked in system. |
Turnaround time in responding to congressional queries. | Improve customer satisfaction and national interests. | Improve turnaround time from 2 days to 4 h. | |
Maintenance costs. | Track reduction of costs to maintain system. | Reduce maintenance costs by 2/3 over 3-year period. | |
Standard desktop platform. | Reduce costs associated with upgrading user’s systems. | Reduce upgrade costs by 40%. | |
Productivity | Time taken to complete tasks. | To evaluate estimates. | Completions are within 90% of estimates. |
Number of deliverables produced. | Assess capability to deliver products. | Improve product delivery 10% in each of the next 3 years. |