The Software Development Plan (SDP) describes a developer’s plans for conducting a software development effort. The SDP provides the acquirer insight and a tool for monitoring the processes to be followed for software development. It also details methods to be used and the approach to be followed for each activity, organization, and resource.
Purpose of a Software Development Plan (SDP)
The purpose of the SDP is to communicate to team members and stakeholders the approach to be taken when developing software on a program and how a Program Manager will utilize direct resources.
Objectives of a Software Development Plan (SDP)
The objective of any SDP is to provide a framework where team members on a software project have a clear understanding of the software they are developing and the problems they are trying to solve. An SDP answers the following questions:
- What problems are being addressed and solved?
- What are the main tasks of development?
- What software development approach will be utilized?
- What are the key functions of the software?
- What is the overall schedule of development and critical path?
- What is the order of development?
- Who is in charge?
- What are the team responsibilities (Responsibility Assignment Matrix)
- How is the project divided up?
- How is quality control going to be implemented and measured?
How to Develop a Software Development Plan (SDP)
The SDP should be developed in the contractor‘s preferred format and should document all processes applicable to the system to be acquired, at a level of detail sufficient to allow the use of the SDP as the full guidance for the developers. It should reference specific standards, methods, tools, actions, reuse strategies, and responsibilities associated with the development and qualification of all requirements, including safety and security. At minimum a well-prepared SDP should address the following topics:
The scope of work that is required to be executed in the development
Timeline of all the tasks required for completion
The sequence of task completion and their levels of priority
Task assignment and responsibilities
Additional planning for budget, schedule, risk management, and quality control
Software Development Plan (SDP) Steps
There are six steps associated with the development of an SDP. These six steps are:
- Step 1: Form Your Team: Gather the subject matter experts you will need to develop the SDP.
- Step 2: Develop Plan Approach: Figure out how you are going to write the plan and who is responsible for each section.
- Step 3: Develop Outline: Start with an outline or a template. This step needs to ensure all required information is addressed in the SDP.
- Step 4: Prepare Draft: Write the first draft of the SDP.
- Step 5: Submit for Review: Submit the first draft to all team members that will utilize the plan for their feedback.
- Step 6: Finalize SDP: Submit the final SDP to the team
Software Development Plan (SDP) Template
Using a template is the best place to start when developing your SDP. The template will provide a starting point in the creation of the plan and will make sure you address all the main objectives in an SDP that need to be covered. Below is a good template that you can utilize.
Template: Software Development Plan
Outline of a Software Development Plan (SDP)
There are eight sections that an SDP should have. These sections are:
- Section 1: Scope
- Section 2: Reference Documents
- Section 3: Overview of Required Work
- Section 4: Plans of General Software Development Activities
- Section 5: Plans of Performing Details Software Development Activities
- Section 6: Schedule
- Section 7: Organization
- Section 8: Notes
Software Development Plan (SDP) Required Information
The SDP should contain the following information, as applicable: 
- Plan introduction and overview.
- Purpose, scope, and objectives.
- Assumptions and constraints.
- Relationship to other program plans.
- Referenced Documents.
- Identification of all software and software products to which the SDP applies.
- Definition of terms and acronyms.
- System overview, including system and software architecture.
- Overview of required work, including:
- Requirements and constraints on the system and software to be developed.
- Software products and related deliverables.
- Requirements and constraints on project documentation.
- The program/acquisition strategy, resources, and schedules
- Additional requirements and constraints such as project security, privacy, methods, standards, and interdependencies in hardware and software development.
- Known software-specific risks.
- Project organization and resources:
- Plans for performing general software development activities, including:
- Software development processes.
- Software Development Approaches
- Software development methods.
- Software development standards
- Reusable software products and Commercial-off-the-Shelf (COTS)
- Software types/categories (i.e., operational software, test software, support equipment software) and associated processes, controls, and documentation.
- Handling of critical requirements (such as safety, security, and information assurance).
- Incremental development approach, planning, and management/oversight.
- Establishing the system/software engineering environment.
- Computer resources utilization and reserve capacity/growth management.
- Software-related development processes, including:
- Overall development methodology.
- Prototyping and simulations.
- System requirements analysis and design, including requirements definition and allocation
- Software requirements analysis.
- Software preliminary and detailed design.
- Software unit integration and testing.
- Software component integration and testing.
- Supporting processes and information, including:
- Software risk management.
- Approach to requirements traceability.
AcqLinks and References:
-  USAF Weapon Systems Software Management Guidebook – Appendix I
- Mil-STD-498 “Software Development and Documentation” – 5 Dec 1994
- Mil-STD-498 “Application and Reference Guidebook” – 3 Jan 1996
- Software Development Plan Information Outline
- Template: Software Development Plan – SPAWAR