Software Project Survival Guide
Software Development Plan
Top Level Contents
- Revision Chart
- Preface
- Contents
1. Introduction
- 1.1 Project Overview
- 1.2 Project Deliverables
- 1.3 Evolution of the Software Project Management Plan
- 1.4 Reference Materials
- 1.5 Definitions and Acronyms
2. Project Organization
- 2.1 Process Model
- 2.2 Organizational Structure
- 2.3 Organizational Boundaries and Interfaces
- 2.4 Project Responsibilities
3. Managerial Process
- 3.1 Management Objectives and Priorities
- 3.2 Assumptions, Dependencies, and Constraints
- 3.3 Risk Management
- 3.4 Monitoring and Controlling Mechanisms
- 3.5 Staffing Plan
4. Technical Process
- 4.1 Methods, Tools, and Techniques
- 4.2 Software Documentation
- 4.3 Project Support Functions
5. Work Packages, Schedule, and Budget
- 5.1 Work Packages
- 5.2 Dependencies
- 5.3 Resource Requirements
- 5.4 Budget and Resource Allocation
- 5.5 Schedule
6. Additional Components
7. Index
Detailed Contents
This chart contains a history of this document’s revisions. The entries below are provided solely for purposes of illustration. Entries should be deleted until the revision they refer to has actually been created.
The document itself should be stored in revision control, and a brief description of each version should be entered in the revision control system. That brief description can be repeated in this section. Revisions do not need to be described elsewhere in the document except inasmuch as they explain the development plan itself.
Version | Primary Author(s) | Description of Version | Date Completed |
---|---|---|---|
Draft | TBD | Initial draft created for distribution and review comments | TBD |
Preliminary | TBD | Second draft incorporating initial review comments, distributed for final review | TBD |
Final | TBD | First complete draft, which is placed under change control | TBD |
Revision 1 | TBD | Revised draft, revised according to the change control process and maintained under change control | TBD |
Revision 2 | TBD | Revised draft, revised according to the change control process and maintained under change control | TBD |
etc. | TBD | TBD | TBD |
Preface
The preface contains an introduction to the document. It is optional and can be deleted if desired.
Contents
List the document contents by page number
List of Figures
List the figures in the document by page number
Introduction
This section should describe the project and the software product being to be built. No text is necessary between the heading above and the heading below unless otherwise desired.
Project Overview
Give a short summary of the project objectives, the software to be delivered, major activities, major deliverables, major milestones, required resources, and top-level schedule and budget. Describe the relationship of this project to other projects, if appropriate.
Project Deliverables
List all of the major items to be delivered to the customer (external customer, in-house user, etc.).
List the deliverables, delivery dates, delivery locations, delivery method (email, FTP, CD, etc.), and quantities necessary to satisfy the project’s requirements.
Evolution of the Software Project Management Plan
Describe how you expect this document to evolve over time. This section should be very similar to the “Revision Chart” earlier in the document. The revision chart should list what has already been done to this document. This section should list what is expected to be done to this document.
This chart contains a plan for the document’s revisions. The entries below are provided for purposes of illustration. The progression from “Draft” to “Preliminary” to “Final” and then through a section of “Revisions” is one typical approach.
Version | Primary Author(s) | Description of Version | Date Completed |
---|---|---|---|
Draft | TBD | Initial draft created for distribution and review comments | TBD |
Preliminary | TBD | Second draft incorporating initial review comments, distributed for final review | TBD |
Final | TBD | First complete draft, which is placed under change control | TBD |
Revision 1 | TBD | Revised draft, revised according to the change control process and maintained under change control | TBD |
etc. | TBD | TBD | TBD |
Reference Materials
List all the documents and other materials referenced in this document. This section is like the bibliography in a published book.
Definitions and Acronyms
Provide definitions or references to all the definitions of the special terms and acronyms used within this document.
Project Organization
In this section, describe the process model (e.g., lifecycle model), the organizational structure (e.g., chain of command or management reporting structure), and responsibilities of individuals on the project.
No text is necessary between the heading above and the heading below unless otherwise desired.
Process Model
Describe the following items:
- The project’s lifecycle model (e.g., waterfall model, spiral model, evolutionary prototyping model, etc.)
- The project’s major milestones (content and dates/timing). This should include a text description of the meaning of each milestone plus a Gantt chart or other high-level description of the project’s schedule.
- Major work products, including content and timing. These should be listed in a table like the following one:
Work Product Name | Planned Completion Date | Placed Under Change Control? | Deliverable to Cus-tomer? | People Who Must Sign Off on the Work Product |
---|---|---|---|---|
Software Project Management Plan: This is the controlling document for managing a software project, and it defines the technical and managerial processes necessary to deliver the project requirements. | TBD | Yes | No | Project Manager, Engineering Lead, QA Lead, Documentation Lead |
TBD | TBD | TBD | TBD | TBD |
You should consider including all of the top-level work products described in SPSG, including:
- Change Control Plan
- Change Proposals
- Vision statement
- Top 10 Risks List
- Software Development Plan, including project cost and schedule estimates
- User Interface Style Guide
- User Manual/Requirements Specification
- Quality Assurance Plan
- Software Architecture
- Software Integration Procedure
- Staged Delivery Plan
- Individual Stage Plans, including miniature milestone schedules
- Coding Standard
- Detailed Design Documents
- Software Construction Plans
- Deployment Document (Cutover Handbook)
- Release Checklist
- Release Sign-Off Form
- Software Project Log
- Software Project History Document
The items in this section (and, in general, in this document) can be fully described here, or, if they are described in sufficient detail elsewhere, that description can simply be referenced here.
Organizational Structure
Describe the internal management structure of the project. Use org charts, matrix diagrams, or other appropriate notations to describe the lines of authority, responsibility, and communication within the project.
Organizational Boundaries and Interfaces
Describe the relationships between the project and each of the following organizations:
- Parent organization (upper management)
- Customer organization (internal or external)
- Subcontracting organization(s) (if any)
- QA organization, if separate
- Documentation organization, if separate
- End-user support organization, if separate
- Any other organizations the project interacts with
This list should include a description of a specific person or project role that is responsible for maintaining the interface between the project and each of these other organizations.
Project Responsibilities
Identify and describe each major project function and activity, and identify the person(s) responsible for each function and activity. You might use a table like the one below:
Responsibility | Persons responsible |
---|---|
Overall Project Manager | TBD |
Engineering Manager | TBD |
Quality Assurance Manager | TBD |
End-User Documentation Manager | TBD |
Requirements Development | TBD |
Software Architecture | TBD |
Technical Self-Review | TBD |
Etc. | TBD |
Managerial Process
Describe management objectives, priorities, project assumptions, dependencies, constraints, risk management techniques, monitoring and controlling mechanisms, and the staffing plan.
No text is necessary between the heading above and the heading below unless otherwise desired.
Management Objectives and Priorities
Describe the philosophy, goals, and priorities for management during the project. Consider including the following items:
- kind of status reporting
- relative priorities among functionality, schedule, and budget
- risk management procedures
- approach to acquiring third party software
- approach to modifying or using existing software
Assumptions, Dependencies, and Constraints
Describe the assumptions upon which the project plans are based, the dependencies of the project plans, and the constraints upon the project plans (e.g., schedule, budget, quality, functionality, etc.)
Risk Management
Describe the major risks to the project, which the project plan has been designed to address. Describe how risks will be tracked and monitored.
Monitoring and Controlling Mechanisms
Describe how project cost, schedule, quality, and functionality will be tracked throughout the project. Consider describing the following:
- Report contents/formats
- Reporting structure and frequency
- Audit mechanisms
Staffing Plan
Describe the numbers and types of personnel needed to conduct the project. Describe the required skill levels, start times, duration on the project, method of obtaining the personnel, training required, and phasing out of project personnel.
Technical Process
This section describes the top-level technical processes used on the project including the technical methods, tools, and techniques; major software documents; and supporting activities such as configuration management and quality assurance.
No text is necessary between the heading above and the heading below unless otherwise desired.
Methods, Tools, and Techniques
Describe the following:
- The computing system environment including hardware and operating system environment;
- Software tools including design tools, source code control, time accounting, compiler or IDE, debugging aids, defect tracking, and so on
- Development methodologies including requirements development practices, design methodologies and notations, programming language, coding standards, documentation standards, system integration procedure, and so on (these will not all be defined when the first draft of the project plan is created; the section should be updated as the plans become more detailed)
- Quality assurance practices including methods of technical peer review, unit testing, stepping through code in a debugger, system testing, automated regression tests, and so on
Software Documentation
List the documents that will be developed for the project, including milestones, reviews, and signoffs for each document. The documentation list might include the follow documents:
- Change Control Plan
- Change Proposals
- Vision statement
- Top 10 Risks List
- Software Development Plan, including project cost and schedule estimates
- User Interface Style Guide
- User Manual/Requirements Specification
- Quality Assurance Plan
- Software Architecture
- Software Integration Procedure
- Staged Delivery Plan
- Individual Stage Plans, including miniature milestone schedules
- Coding Standard
- Detailed Design Documents
- Software Construction Plans
- Deployment Document (Cutover Handbook)
- Release Checklist
- Release Sign-Off Form
- Software Project Log
- Software Project History Document
Project Support Functions
Describe or give references to other documents that describe the plans for functions that support the software development effort, including configuration management, quality assurance, and end user documentation. Whether included in this document or described elsewhere, the plans for these supporting functions should be developed in as much detail as the plans for the software itself are. (This includes responsibilities, resource requirements, schedule, budget, and so on.)
Work Packages, Schedule, and Budget
No text is necessary between the heading above and the heading below unless otherwise desired.
Work Packages
Describe the work package (i.e., task or collection of tasks) that must be completed to complete the software. Identify each work package with a unique number, and provide a diagram showing the breakdown of work packages into sub-packages.
Dependencies
Describe the dependencies both among work packages and between the project’s work packages and external events.
Resource Requirements
Describe the resources required for the project week by week or month by month, depending on the length of the project. Describe the numbers and type of personnel that are used, number of computers and software used, office facilities used, training needed, budget used, and so on over the whole course of the project.
Budget and Resource Allocation
Describe the portion of the project’s budget allocated to different functions (e.g., engineering, quality assurance, documentation, management). Describe how the budget will be expended over the course of the project.
Schedule
Describe the schedule for the various project functions, activities, and tasks, taking into account the various dependencies and required milestone dates and deliverable dates. You can express schedules either as absolute calendar dates or as times relative to key project milestones (e.g., “requirements signed off + 60 days”).\
Additional Components
Include additional components needed to manage your specific project. Possibilities include subcontractor management plans, security plans, training plans, hardware procurement plans, facilities plans, installation plans, cutover plans, and software maintenance plans.
Index
The index is optional according to the IEEE standard. If the document is made available in electronic form, readers can search for terms electronically.
Appendices
Include supporting detail that would be too distracting to include in the main body of the document.