Page History
...
Set Data | ||||
---|---|---|---|---|
| ||||
9 |
...
0 | 1. Purpose |
---|---|
1 | 2. Planning |
2 | 3. Solicitation, Selection, and Award |
3 | 4. Technical Monitoring and Quality Assurance |
4 | 5. Contract Administration |
5 | 6. Product Acceptance and Control |
6 | 7. Contract Closeout |
7 | 8. Useful Practices, Activities and Templates |
8 | 9. Resources |
...
id | tabs-1 |
---|
1. Purpose
This topic discusses guidance for projects implementing those requirements in NASA Procedural Requirement (NPR) 7150.2, NASA Software Engineering Requirements that address software acquisition. This guidance is intended for all persons responsible for the software acquisition process, from the planning stages through contract closeout. Acquisition may involve procedures and regulations external to the software community, including variations by contract type; therefore, it is important to consult Center guidance and coordinate acquisition activities among the proper stakeholders, including, but not limited to, software engineering, procurement, finance, and contracts.
1.1 Roles
...
Role
...
Responsibility
...
Project Manager
...
Approve procurement plan.
...
Software Lead Engineer
...
Prepare procurement plan; prepare statement of work (SOW) software requirements and software data requirements for the contract; monitor execution of contract; conduct trade studies, engineering analyses.
...
System Engineer
...
Conduct trade studies, engineering analyses.
...
Contracting Officer (CO)
...
Prepare acquisition approach, prepare solicitation, guide proposal evaluation, prepare contracts, prepare modifications to contracts.
...
Contracting Officer's Representative (COR)
...
Work with CO to plan acquisition approach, prepare SOW, evaluate proposals, determine the technical adequacy of proposed approach, monitor technical implementation.
...
Software Technical Authority
...
Before contract release, verify that the SOW includes the complete flowdown of the Agency and Center software requirements [recommended practice].
Div | ||
---|---|---|
| ||
2. PlanningBefore software acquisition can be carried out, a need must be identified for which a solution is required. During the planning stage, various options to address the identified need are evaluated. The following are possible options:
If the solution to the need will involve software, NPR 7150.2 applies, and the acquisition planning guidance below supports project success:
|
...
id | tabs-3 |
---|
3. Solicitation, Selection, and Award
Once the planning activities for software acquisition have been completed and the decision has been made to acquire the software or software development services, a selection process needs to be followed to choose the best provider for the project. This process typically begins with development of a Statement of Work (SOW).
Typically, solicitations are prepared by the procurement or contracts department with input from project management and engineering. Solicitations are as complete as possible to ensure potential providers are aware of all tasks and activities for which they will be held responsible.
Checklists (e.g., the NASA Process Asset Library (PAL) contains checklists for NPR 7150.2 requirements by class and safety criticality) and solicitations for similar projects help ensure that all required activities are included in the solicitation. Example solicitations, Statements of Work, and work breakdown structures (WBSs) that are considered "best practices" are also helpful starting points; using problematic examples will only carry forward the problems exhibited or caused by those documents.
The following is a list of useful practices when documenting tasks and activities in the solicitation:
- Keep the task descriptions clear, concise, and in terms that providers will understand.
- Avoid over-specifying (specifying every item to the smallest detail leaving no options).
- Avoid under-specifying (providing insufficient or incomplete details).
- Clearly mark mandatory versus optional/recommended tasks, activities, standards, etc.
The following recommendations should be considered as part of the SOW development process. Additionally, a SOW checklist reference is included in the Useful Practices, Activities and Templates section (tab 8) of this guidance document.
- Develop solicitation, including Statements of Work:
- Acceptance criteria (SWE-034).
- Solicitation constraints.
- Proper requirements from the software development perspective*:
- Software classification (from NPR 7150.2) and safety criticality (from Software Safety Litmus Test).
- Technical requirements.
- Adherence to requirements for safety-critical software (see SWE-134, SWE-023, and NPR 7150.2, Appendix C).
- Development standard to be followed, if any.
- Development life cycle to be followed or indication that developer can choose appropriate life cycle (SWE-019).
- Surveillance activities (and acquirer involvement), including monitoring activities, reviews, audits (SWE-045), decision points, meetings, etc.(SWE-039)
- Management and support requirements (project management, schedule and schedule updates (SWE-046), configuration management, non-conformance and change tracking (SWE-043), risk management, metrics collection, Independent Verification and Validation (IV&V) support, required records, traceability records (SWE-047), electronic records and code access (SWE-042), V&V, etc.)
- Requirements for maintenance, support, updates, new versions, training to be included in life-cycle and cost estimates.
- Concise task and deliverable descriptions, including delivery format (SWE-040).
- Media format for code deliverables (SWE-040).
- Templates or Data Item Descriptions (DIDs) for documentation deliverables.
- Complete set of deliverables with delivery dates, review periods, and acceptance procedures for each.
- Time period for responses to review findings, including making changes.
- Data Requirements Documents (DRDs) for deliverables, if appropriate.
- Government and contractor proprietary, usage, ownership, warranty, data, and licensing rights, including transfer.
- Requirement to include notice of use of open source software (SWE-041) in developed code.
- Off the Shelf (OTS) software requirements (SWE-027) (identify which requirements are met by software, provide OTS software documentation, such as usage instructions, etc.)
- List of all mandatory NASA software development standards and DIDs, as applicable.
- Requirements for non-expired CMMI (Capability Maturity Model Integration®) rating as measured by a Lead Appraiser certified by the Software Engineering Institute (SEI) (SWE-032). (See the Useful Practices, Activities and Templates section (tab 8) of this topic for sample text for the solicitation.)
Panel |
---|
*Acquisition should not simply levy NPR 7150.2 as a whole on a potential supplier, as it contains some NASA institutional requirements. If a project is acquiring software development services for Classes A through H software, the project should only levy the applicable minimal set of supplier requirements, plus additions that address specific risk concerns. Requirements that are the responsibility of the Agency, Center, or Headquarters should not be levied on a contractor, as they will cause confusion and unnecessary expense. If the class of software and the safety-critical designation are known when the SOW is written, the project can levy, via a compliance matrix, the project-/system-specific set of NPR 7150.2 requirements to be satisfied by the contractor. If the class and/or safety-critical designation are not yet known, the SOW should list applicable requirements for each class and safety-critical designation with instructions to comply accordingly when a class and safety-critical designation are determined. The full list of project-related requirements can be found in the compliance matrices found in the Software Engineering Community of Practice Document Repository on the NASA Engineering Network (NEN). |
...
- Technical Authority to ensure proper flowdown of NPR 7150.2 requirements.
- Coordinate with the Safety and Mission Assurance Office to ensure all quality assurance requirements, clauses, and intended delegations are identified and included.
3. Identify potential suppliers.
4. Distribute solicitation package.
5. Evaluate proposals (typically an evaluation team), based on selection criteria established during the acquisition planning phase, including:
- Cost estimation comparisons.
- Evaluation of how well proposed solutions meet the requirements (including interface and technology requirements, NPR 7150.2 requirements).
- Staff available.
- Past performance.
- Software engineering and management capabilities.
- Prior expertise on similar projects.
- Available resources (facilities, hardware, software, training, etc.).
- Capability Maturity Model Integration (CMMI®) ratings.
- Check the SEI Published Appraisal Results (PARs) to confirm non-expired rating (https://sas.cmmiinstitute.com/pars)
.Swerefn refnum 327 - Be sure to check the scope of the organization holding the CMMI® rating to confirm the rating is held by the specific organization submitting the proposal.
- Other factors relevant to the project.
6. Select supplier/contractor and document basis for selection.
7. Negotiate, finalize and document contract:
- Based on SOW.
- Management reviews and meetings, such as:
- Formal reviews, such as those found in NPR 7123.1, NASA Systems Engineering Processes and Requirements, and NPR 7120.4, NASA Engineering and Program/Project Management Policy.
- Technical reviews.
- Progress reviews.
- Peer reviews (see Topic 7.10 - Peer Review and Inspections Including Checklists in Handbook).
- Software quality assurance meetings.
- System integration test and verification meetings.
- System safety meetings.
- Configuration management meetings.
- Other relevant reviews for this project.
- Consider for inclusion in contract provisions (description of the method to be used) for verification of:
- Contractor handling of requirements changes.
- Accuracy of contractor transformation of high-level requirements into software requirements and detailed designs.
- Interface specifications between the contractor’s product and systems external to it.
- Adequacy of contractor’s risk management plan and its implementation in accordance with the required activities in the project Software Risk Management Plan.
- Adequacy of the contractor’s integration and test plan and its implementation in accordance with the required activities in the project Software Integration and Test Plan.
- Adequacy of the contractor’s configuration management plan and its implementation in accordance with the required activities in the project Software Configuration Management Plan.
- Consider for inclusion in the contract the content and frequency of progress reports and metrics submissions.
- Consider for inclusion in the contract identification of quality records to be maintained by the supplier.
- Consider for inclusion in the contract the delivery process and how it will be accomplished; if incremental development and delivery agreed upon, state how the validation process works, e.g., incremental validation, and whether it requires integration and test with software/hardware products developed by acquirer and/or other contractors or organizations (other institutes, universities, etc.).
- Consider for inclusion in the contract a policy for maintaining the software after delivery: Who is responsible for maintenance of the software, tools, testbeds, and documentation updates.
Div | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
4. Technical Monitoring and Quality AssuranceOnce the provider has been chosen, the acquisition process moves into a technical monitoring role. The following guidance should be included when establishing the process for provider monitoring and quality assurance:
9. Provide regular status reviews to higher-level management on contractor progress.
|
Div | ||
---|---|---|
| ||
5. Contract AdministrationIn addition to monitoring the selection provider’s progress and quality, contract administration activities are also carried out for the project. The following guidance should be included when establishing the process for contract administration:
|
Div | ||
---|---|---|
| ||
6. Product Acceptance and ControlOnce the provider is ready to deliver the software product, the acquirer should have a process in place for review and acceptance of the product. The following guidance should be included when establishing the process for product acceptance:
2. Complete a Physical Configuration Audit (PCA) and a Functional Configuration Audit (FCA) to ensure that traceability is complete, that necessary waivers are in place, and that all required documentation has been developed. |
Div | ||
---|---|---|
| ||
7. Contract CloseoutThe final acquisition step is to close out the contract. The following guidance should be included when establishing the process for contract close-out:
2. Verify return of all Government Furnished Equipment (GFE), as appropriate. |
Div | ||||
---|---|---|---|---|
| ||||
8. Useful Practices, Activities and TemplatesThe documents below are tools collected from various Centers that have been deemed good practices or practices that work well and produce good results. They are included here as aides for carrying out the software acquisition process. 8.1 CMMI® Rating Language for Request for Proposal (RFP)If a project wants to procure the development of Classes A, B or C software, the project must levy the associated requirements for which the project has responsibility and also clearly specify that the contractor meet CMMI® maturity level requirements associated with the class. Below are examples of wording that could be used in a statement of work to describe the CMMI® maturity level requirements: For Class A software: The contractor responsible for the acquisition, development, or maintenance of Class A software shall have a non-expired CMMI®-DEV rating, as measured by a Software Engineering Institute (SEI) authorized or certified lead appraiser, of CMMI®-DEV Maturity Level 3 rating or higher for software, or CMMI®-DEV Capability Level 3 rating or higher in all CMMI®-DEV Maturity Levels 2 and 3 process areas for software. For Class B software: The contractor responsible for the acquisition, development, or maintenance of Class B software shall have a non-expired CMMI®-DEV rating, as measured by an SEI authorized or certified lead appraiser, of CMMI®-DEV Maturity Level 2 rating or higher for software or CMMI®-DEV Capability Level 2 rating or higher for software in the following process areas:
For Class C software: The project can minimally choose to pass down this requirement in accordance with the Center's procedures related to Class C, as long as the project provides some action that determines the contractor's capability to develop software in a "meets or exceeds" manner. As many NASA contractors are already at CMMI® Maturity Level 2 or higher, the project may alternatively choose to simply require Maturity Level 2 in the RFP for Class C software. If a contractor chooses to subcontract the development of Classes A, B, or C software, then the subcontractor(s) is also required to have a CMMI® Maturity Level 2 (for Class B), Maturity Level 3 (for class A), or Center-specified (for Class C) rating. 8.1.1 General ExampleThe contractor and its subcontractors' organizations associated with software development responsibilities shall be at SEI Software CMMI®-DEV Maturity Level 3 (Staged Representation) or higher, before the Preliminary Design Review. 8.1.2 Examples for RFP Information Technology (IT) Management SectionExample 1: IT Management For IT applications other than mission-specific flight and non-flight software, the contractor shall use commercial off-the-shelf and existing government off-the-shelf products where cost effective to NASA. All IT applications, other than mission-specific flight and non-mission flight software, shall comply with NASA requirements as outlined in NPR 7150.2 for the appropriate software classes, limited to Classes E, F, and G, and as applicable for the project, MPR 2800.4, Marshall Operational Readiness Review (MORR) for Center Applications and Web Sites, and NPR 2830.1, NASA Enterprise Architecture (EA) Procedures. Example 2: IT Management For IT applications, other than mission-specific software, the contractor shall:
8.1.3 Examples for RFP Software SectionExample 1: Embedded Software (Firmware) The contractor shall develop and maintain software in accordance with NPR 7150.2 for the appropriate software classes and as applicable for the project and NASA-STD-8739.8
Example 2: Software Engineering
h. The contractor shall use the following Standards for designing, developing, and testing all software:
Example 3: The contractor shall define, design, code, test, integrate, and qualify the software. The contractor shall treat the software component of firmware, which consists of computer programs and data loaded into a class of memory that cannot be dynamically modified by the computer during processing, as software for the purposes of this SOW. The scope of this activity applies to the reuse of existing software, modification of existing software, and/or development of new software. The contractor shall provide information and access to products under development to provide the Government with insight into software development and test activities, including monitoring integration and verification adequacy, auditing the software development process, and participation in all software and system reviews. The contractor shall support the implementation of the overall risk management process, as well as program status and progress reviews for the software development process. The contractor shall support software Technical Interchange Meetings and other status meetings, as required, to facilitate Government insight into the software development. The Government insight may include Government civil servant insight, Government support contractor insight, and independent verification and validation review. The contractor shall perform peer reviews on Software Requirements Specifications, Software Test Plans, and on selected design and code items and provide results to the Government via Software Inspection/Peer Review Reports. The contractor shall maintain software metrics and provide Software Metrics Reports in accordance with DRD. The contractor shall provide the Government web-based electronic access (with access control) to intermediate and final software products (including code) and software process tracking information, including software development and management metrics. The software development shall comply with NPR 7150.2 as applicable for the project by NASA software classification. 8.1.4 Example for RFP EGSE Software SectionExample 1: EGSE Software a. The contractor shall perform the design, code, verification, validation, and delivery of all EGSE code and executables in response to EGSE Subsystem Requirements Document. b. The contractor shall develop and maintain software in accordance with NPR 7150.2 for the appropriate software classes and as applicable for the project and NASA-STD-8739.8 (chapters 6 and 7). 8.2 Recommended Technical Review Activities ListAreas to consider for software engineering technical review consist of the following:
8.3 Statement of Work ChecklistLangley Research Center LMS-CP-5523, Rev. B, Statement of Work (SOW) Review Procedures, contains a useful SOW checklist. See the NASA PAL, accessible to NASA users via the SPAN tab in this Handbook for the latest version of this checklist. 8.4 Example TemplatesThe following NASA DID are listed as sample documentation templates that can be called for during the solicitation portion of the software acquisition process. Center PALs are to be consulted for DID and DRD relevant to a specific NASA Center. 8.4.1 Software Documentation RequirementsThe NASA software engineering documentation recommendations are provided in Topic 7.18 – Documentation Guidance in this Handbook. Included are descriptions for:
8.4.2 Center DIDs and DRDsNASA-specific acquisition process information, including sample DIDs and DRDs, is available in Software Processes Across NASA (SPAN), accessible to NASA users from the SPAN tab in this Handbook. Consult your own Center PAL for templates relevant to work performed for your Center. |
...
id | tabs-9 |
---|
9. Resources
refstable-topic |
---|
SWEs and Topics related to this Handbook topic:
...
...
Cost Estimation
...
...
Software Life Cycle
...
...
Use of Commercial, Government, and Legacy Software
...
...
CMMI Levels for Class A, B, and C Software
...
...
Acquisition vs. Development Assessment
...
...
Acceptance Criteria
...
...
Software Milestones
...
...
Acquisition Planning
...
...
Access to Software Products
...
...
Open Source Software Notification
...
...
Source Code Electronic Access
...
...
Track Change Request
...
...
Project Participation in Audits
...
...
Supplier Software Schedule
...
...
Traceability Data
...
...
Software Peer Reviews and Inspections for Requirements, Test Plans, Design, and Code
...
...
Flowdown of NPR Requirements and Contracts
...
9.1 Tools
toolstable-topic |
---|