3. Planning the Measurement ActivitiesWhen a software lead on a project begins to plan the project's software measurement task, he/she needs to determine what the project's information needs are and how to satisfy them. There are two commonly used methodologies to help a software lead determine these needs. They are the Goal/Question/Metric (GQM) methodology originally developed by Vic Basili of the Software Engineering Laboratory and the similar Goal/Question/Indicator/Metric (GQIM) methodology developed by the Software Engineering Institute. The first step in both is to define the goals or objectives desired by the project for the measurement task. The goal specifies the purpose of the measurement, the object to be measured (usually a project product, process or resource), the issue to be measured and the viewpoint to be considered. An example of a typical project goal is to ensure that the software is delivered on schedule. The next step is to refine the goal into questions that break down the issue into its major component. For the timely delivery goal, some questions might be: What is the planned delivery schedule? How much work needs to be completed before the delivery can be made? What is the planned rate of completing that work? Is the project completing the work as planned? Using the questions, it is possible to determine what metrics can be collected to help answer the questions. Some potential measures might be the planned and the actual schedule as well as the current rate of work compared to the planned rate of work. Using this process to derive the measures is consistent with the GQM methodology. In the case of the GQIM methodology, there is an extra step after refining the goal into questions in which consideration is given regarding the information to be displayed for easy analysis; in other words, consideration is given to what the charts look like (or what indicators would be helpful). In the above example, several charts might be useful to a software manager such as a Gantt chart with the planned versus actual schedule or an earned value chart showing the value of the work actually performed compared to the value of the work that was planned by this point in the schedule. (A higher-level manager may only be interested in a top-level indicator like a red/yellow/green flag to indicate the project schedule health.) As in the GQM methodology, once the questions and indicators have been determined, the metrics can also be determined. Planning steps for the software lead are: Step 1: Establish the measurement objectives for the project (See SWE-090 - Management and Technical Measurements). Step 2: Identify the measurement analyses that support these objectives (questions, indicators, as above). See SWE-093 - Analysis of Measurement Data Step 3: Specify the measures to be collected (See SWE-090 - Management and Technical Measurements). Step 4: Specify the data collection and storage procedures (See SWE-090 - Management and Technical Measurements). Step 5: Specify the analysis procedures (See SWE-090 - Management and Technical Measurements). 3.1 Step 1: Establish the measurement objectives for the projectIn order to establish the measurement objectives or goals of the project, there are usually several things to consider. Typically, software projects are most interested in the following: - Managing the project with objective data
- Providing data for planning future projects
- Meeting any specific requirements that may have been levied on them
There is often an overlap in the information needed for the items above. For example, Class A and B projects need to consider measurements that might be expected to help satisfy Capability Maturity Model Integration® (CMMI®) requirements and all classes of software need to comply with the requirements in NPR 7150.2. Measurement objectives that are established for the project are to be consistent with the objectives specified in the NPR and any specific measurement objectives specified by the project's organizational measurement groups. In addition to the organizational objectives and the NASA requirements, other sources for objectives include management, technical, product, or process implementation needs such as: - Achieve completion by the scheduled date
- Complete the project within the budget
- Devote adequate resources to each process area
Corresponding objectives might be: - Measure project progress to ensure that it is adequate to achieve completion by the scheduled date
- Track cost and effort to ensure the project is within budget
- Measure the resources devoted to each process area
Additional sources for information needs and objectives include strategic plans, high-level requirements, the project Software Management Plan and operational concepts. Once the project has established the measurement objectives and information needs, they are documented in either the project's Software Management Plan (see 5.08 - SDP-SMP - Software Development - Management Plan) or in a separate measurement plan. 3.2 Step 2: Identify the measurement analysis that supports these objectivesThe software lead identifies the measurement analyses that will be done to support the objectives chosen. In order to help with this, think about the questions that need to be answered to provide the needed information. If there are multiple analyses that can be used, prioritize the candidates and select the key analysis that will provide the best information to satisfy the objective. There are resources that could potentially assist with selecting the measurement analyses and also with the selection of the corresponding measures to be collected. Goddard Space Flight Center has a Measurement Planning Table (accessible to NASA users from the SPAN tab in this Handbook)that shows some common objectives with measurement analyses and corresponding measures. The selected analyses are documented in the Software Management Plan or measurement plan, maintaining the traceability to the objectives. Note: Analysis can be as simple as comparing the planned values to the actual values over time. SWE-093 - Analysis of Measurement Data 3.3 Step 3: Specify the measures to be collectedContinue to use the methodology and select the measures needed to support the analyses and the objectives already chosen. It is helpful to think about what types of indicators or charts are needed in each area. Possibilities include tables, trend charts, stoplight charts, bar chart comparing points in time, etc. The resources listed in Step 2 can assist with the selection of measures. According to SWE-091 - Establish and Maintain Measurement Repository, measures are required (at a minimum) to be selected and maintained in the Center’s repository in the following areas: - Software development tracking data
- Software functionality achieved data
- Software quality data
- Software development effort and cost data
These areas will provide information that can be used in the management of the project, to address objectives such as completion of the project on-time and within budget, delivery of the planned functionality, and delivery of high-quality software. Measures that are selected for the project are defined by name, type, and unit and documented in the measurement plan or Software Management Plan. Candidate management indicators that might be used on a software development project can include requirements volatility, software size, software staffing, software complexity and more, as shown below (also found in SWE-090 - Management and Technical Measurements). Examples of Measures in Recommended Areas: - Progress Tracking Measures - planned vs. actual: cost, effort, schedule milestones, # of units designed, coded, tested; point counting or earned value.
- Functionality – number of requirements included in build vs. number planned, the number of function points implemented.
- Quality Measures – number of software problem reports/defects (new, open, closed, severity), number of review item discrepancies (open, closed), number of peer reviews planned vs. actual, number of software audits planned vs. actual, number of software audit findings.
- Software Volatility Measures – number of software requirements, number of software requirement changes (additions, deletions, modifications), number of software TBDs.
- Characteristics - project name, language, size of software (SLOC), domain (flight software, ground software, etc.), reuse (% new, modified, reused).
- Peer Review Measures - time spent on peer review, number of participants and area of expertise, item inspected, #number of defects found (major, minor) types of defects.
3.4 Step 4: Specify the data collection and storage proceduresDuring this step, the project must decide how they are going to handle the logistics of collecting the measurement data they have chosen. The items to be decided and documented for each measurement collected are the following: Who is going to be responsible for collecting the data? How often will it be collected? Where will the responsible person find the data? Is there any data manipulation to be done (i.e., change in units, extraction from one tool and entry into another to produce charts, etc.?) Where will the data be stored? (Consider both the raw data and the resultant charts with analysis). Once the details of collection and storage have been determined, they are documented in a collection and storage procedure that describes these specific details for the project. An example template for a storage and collection procedure can be found in Software Processes Across NASA (SPAN), accessible to NASA users from the SPAN tab in this Handbook. Measurement collection is always easier if there are tools that provide the measures as the work is being performed. 3.5 Step 5: Specify the analysis proceduresThe final step in planning for measurement is to develop the analysis and reporting procedures. Essentially, this step provides objective data that can be used to evaluate the information provided by the measurement data collected. This type of information can help the project manager determine whether the data shown on the measurement charts is indicating a problem or a good trend. For many of the types of measurement charts, the analysis will be based on whether the data is within certain expected or planned boundaries as specified in the analysis procedures. For example, to analyze a chart showing cost over time compared with the planned cost, the analysis might be to compare the planned and actual costs and investigate further if the actual cost deviates from the plan by more than 10%. Often to complete the analysis, other measurement charts and information need to be considered. In the case of cost, the next step might be to look at the other information affecting cost. (Is the staffing higher than planned? Have the requirements increased? Did some piece of equipment cost more than planned?) Another type of boundary that is used for analysis is an organization "norm" for that type of data. For example, an organization might have a normal or expected set of ranges for the numbers of defects found during each test phase. If a project has either considerably more or less defects, during that phase, further investigation is warranted. Analysis procedures typically specify the thresholds on boundaries used to trigger further investigation. The analysis procedures also specify other charts that might provide a more complete picture of the information being provided by the measurements. The reporting procedures specify the types of measurement charts that will be reported to each level of management. Typically, the technical software managers need more detailed levels of measurement data and the higher-level managers are more interested in seeing red/yellow/green indicators that only provide an indication of potential problems. When red/yellow/green indicators are used, more detailed data can be made available to support these indicators. An example of an analysis and reporting procedure can be found in Software Processes Across NASA (SPAN), accessible to NASA users from the SPAN tab in this Handbook. Even though reporting procedures are established and implemented, it is important to provide access to the software measurements, analysis results, and development status to sponsoring organizations and other groups tasked to review or assess software development progress and quality. The needs of these groups may not be fully covered in standard reports, may not require the effort needed to generate separate reports, or may be better met with access to the raw data (see SWE-094 - Reporting of Measurement Analysis). 3.6 Additional GuidanceLinks to Additional Guidance materials for this subject have been compiled in the Relevant Links table. Click here to see the in the Resources tab. |