Requirements and Estimation Process From a CMM Level 5 Organization Alan Prosser Requirements and Estimation This is a sample process for requirements and cost estimation process from a CMM level 5 organization. The organization was for a government contract, the software for the Space Shuttle Onboard computers (OBS stands for On Board Software). The contract has been through several companies, (IBM Federal Systems, Loral Space Systems, Lockheed Martin Space Information Systems and by now United Space Alliance). Requirements and Estimation There were 5 different CCBs and processes for software with 5-6 different risk levels and for changes vs. fixes. What I describe here is a high level view of the requirements change process to the 2-3 higher risk levels. (Level 2-3 use the same process from this view). – – – – – – 1 - Flight software - life and property depend on it 2 - Critical tools - affect 1s and 0s of FSW 3 - Non-critical, deliverable tools 4 - Organization use - used by organization but not customer 5 - Department use - helpful, but not a wide number of users 6 - Individual use tools - automation of personal, manual tasks Requirements and Estimation Basic Steps – Change Request (CR) goes to CCB – Functional Areas fill out PASS 1 – Back to CCB for PASS 1 (Requirements) approval – Functional Areas for Development and Verification fill out PASS 2 (Estimates) – Approval and schedule to a release by CCB Requirements and Estimation Change Request (CR) goes to CCB Someone, either external (NASA) or internal, writes a CR, which is high level, mentions some kind of justification, what applications are affected, need date, etc. This document goes to the CCB, where it gets assigned a number and is entered into the Configuration Management Database (CMDB). The CCB passes a copy the request on to each functional area affected. There are representatives of all functional areas at the CCB, some individuals represent several areas. If anyone notices that a functional area is missing, it will be added. Most team members at least get the CCB agendas for this purpose. Requirements and Estimation Functional Areas fill out PASS 1 A requirements analyst (RA) responsible for the area looks at the CR to see if a change of the baselined requirements are needed. If requirements will need to be changed, a cost and date estimate for the requirements change is required. An online form is filled out (PASS 1 Requirements) The form also has a place to reject the request. A developer for the functional area looks at the CR and fills out a form to indicate that the change is small, medium, or large, if changes to requirements are needed, and suggests a release that may be possible or rejects the change with reasons. There is a form for development too (PASS 1 Development) Requirements and Estimation To CCB for PASS 1 (Requirements) approval – The forms automatically show up on the CCB agenda, and if they all say approve for writing requirements, the requirements cycle starts for each functional area. – Requirements cycle(s) until team agrees, then CCB can give PASS 1 approval Note that CRs that also affect FSW will also go through a similar CCB process there as well. Requirements and Estimation Requirements Cycle The RA does investigation and writes a version of the requirements. The RA may look at any documentation, have interviews, brainstorming sessions, etc. An internal review of the requirements is scheduled. There are representatives for verification and development and a backup RA, and a neutral (from other functional area) moderator. All major and minor errors are logged When the team has approved the requirements, it goes to the CCB and customer (there is a customer rep at CCB). Any of them could point out changes needed, sending back to begin this cycle. Large changes have multiple cycles and may take months to write. Requirements and Estimation Functional Areas for Development and Verification fill out PASS 2 (Estimates) – Developers fill out estimates (Development PASS 2) – Verifiers fill out estimates (Verification PASS 2) Requirements and Estimation Developers fill out estimates (Development PASS 2) – A developer generates an initial list of components (modules, includes, etc) to change, enters a PASS 2 Development form with cost and schedule estimates. – Cost estimates are in Lines of Code and schedules are to particular releases. Requirements and Estimation Verifiers fill out estimates (Verification PASS 2) – A verifier (often the same person as RA and user) plans when in the development cycle they can do their testing, with an estimate of cost. A PASS 2 Verification form is filled out. Requirements and Estimation Approval and schedule to a release by CCB – After all PASS 2 forms and requirements are approved by the CCB, work can start on design and code. Requirements and Estimation What is the result? – We have detailed requirements that have been reviewed or are at least visible to everyone. – We have a good chance that all affected areas are identified. – We have a fair estimate of the size of change and for small changes may know CIs. – We have a schedule agreed to by all. – We know when independent testing will be done with an estimate of cost. Q&A References Fast Company wrote an article about culture and process improvement philosophy of the organization in issue 6, 12/1996-1/1997 http://www.fastcompany.com/magazine/06/index.html “They Write the Right Stuff” http://www.fastcompany.com/magazine/06/writestuff.html http://www.alprosser19.com/alworks.html has a summary of the work Al did in the Space program