# Presentation: 374757

## How Do I Create a Software Development Plan?

- Presented By: Ellen M. Soper
- Software Standards Mgt. Branch
- System Support Division

## Agenda

- What is a Software Development Plan (SDP)?
- How does it help you?
- Who is involved? How does it fit?
- Elements of SDP
- Process of creating SDP
- Where do I go from here?
- Questions

## What is a SDP?

- Describes the plan for developing the software products
- Describes **how** the activities of the project’s process **will be** implemented and managed
- Who? What? When? How? How much?

**Notes:**
Tells you where you are supposed to be
Documentation of a project’s defined software process

## How Does it Help?

- Communicates to all project members
- Establishes the project expectations
- Helps to control, monitor and stay on track
- Helps to manage the team and project
- Forces more thought
- Historical reference

**Notes:**
Control consists of comparing where you are to where you are supposed to be, then taking corrective action if there is a discrepancy. 
If you have no plan, you have nothing to compare progress against.  Control is hard to achieve 
– Fire prevention is better than fire fighting
You must have a plan in order to have control

## What’s in it for me?

| Project Manager

Better able to identify and manage scope creep
Early problem detection
Right size
 | Software Engineer

Know what is to be done
Know who the players are
Reduces rework
Newbies up to speed faster
 | Mgt/Customer

Better informed
Better understanding of tasks involved
Visibility |
| --- | --- | --- |

**Notes:**
Rework – example, 
Communication & Coordination
Rework
Inconsistent work habits
Behind schedule
Not enough resources
Learning curves
Unrealistic expectations

## Who is Involved?

- Project Manager/Software Project Manager
- Software Engineers
- Managers and Technical Staff responsible for performing software development and maintenance activities (i.e., requirements, design, code, and test)
- Customers
- Sponsors, End Users

## Overall Software Development

**Concept**

**Planning**

**Implementation**

**Closeout**

**Requirements**
**Process**

**Software Project **
**Planning Process**

**Design**
**Process**

**Software Quality**
**Assurance Process**

**Software Project**
**Tracking Process**

**Coding**
**Process**

**Testing**
**Process**

**Deployment**
**Process**

**Software Configuration**
**Management Process**

## How Does it Fit?

- SPM 1

- Initiate Project &

- Planning

- SPM 5

- Implement SDP &

- Monitor Project

- SPM 4

- Review &

- Approve SDP

- SPM 6

- Closeout

- Project

- SPM 3

- Perform Risk

- Planning

- SPM 2

- Develop SDP /

- Update SDP

**SDP**

**Software Project Management Process**

**High**

**-**

**Level **

**Software **

**Requirements**

- •

**Software Project **

**Data**

- •

**New Requirements**

**Issues Log**

- SPM 1

- Initiate Project &

- Planning

- SPM 5

- Implement SDP &

- Monitor Project

- SPM 4

- Review &

- Approve SDP

- SPM 6

- Closeout

- Project

- SPM 3

- Perform Risk

- Planning

- SPM 2

- Develop SDP /

- Update SDP

**SDP**

**Software Project Management Process**

**High**

**-**

**Level **

**Software **

**Requirements**

- •

**Software Project **

**Data**

- •

**New Requirements**

**Issues Log**

## Process Relationship   

## Elements of SDP

- Requirements
- Milestones
- SLCM
- WBS
- Organizational Chart
- Roles & Responsibilities
- Work Products

- Estimates
- Schedule
- Risks
- SW & Support Tools
- Other Plans
- SQA
- SCM
- Security
- Test

**Notes:**
Resources – people, equipment, materials, facilities

## Overall SDP Process

- High Level
- Requirements

- Major
- Milestones

- SW & Support
- Tools

- SLCM

- SW Envir.
- Description

- WBS

- Task
- Dependencies

- Work
- Products

- Estimates

- Org Chart

- Sub Plans

- Schedule

- Software
- Development
- Plan

- Risks

- Risk
- Register

**Project Concept**

**Project Planning**

**Plan Review**

- Sub Plans

- Roles &
- Responsibilities

- Individual
- Assignments

## Step 1:  Pick SLCM

- Software Lifecycle Model
- Classic Waterfall
- Designed to Schedule
- Spiral
- Choose the right one for your project

- High Level
- Requirements

- Major
- Milestones

**SLCM**

- WBS

**Notes:**
Staged – show software to the customer in successively refined stages. Also known as incremental.
Evolutionary – cross between staged and prototyping

## Questions to Ask 

- Are requirements known at the beginning or are they likely to change significantly as the project progresses?
- How much risk is involved?
- Am I constrained to the schedule?
- Do I need to provide customer visibility?
- Does it require strong PM & developers?
- How reliable must the system be?

## SLCM Choices1

| Capability | Waterfall | Design to Schedule | Spiral |
| --- | --- | --- | --- |
| Req. not Known | Poor | Poor to Fair | Excellent |
| Risky | Poor | Fair to Excellent | Excellent |
| Schedule Constraints | Fair | Excellent | Fair |
| Customer 
Visibility | Poor | Fair | Excellent |
| Reliable | Excellent | Fair | Excellent |

- 1 McConnell, 1996

## Step 2:  Develop WBS

- Work Breakdown Structure
- List the tasks of the work to be done
- Identify the work products produced as a result of work
- Identify tools, methods, standards procedures to apply
- Record your assumptions
- Link your dependent tasks
- Update SDP with description of tasks (high level)

- High Level
- Requirements

- Major
- Milestones

**WBS**

- SLCM

- Task
- Dependencies

- Work
- Products

**Notes:**
A complicated task is broken down into less complicated smaller tasks.
This will help with planning what is to be done, the approach, the methods and procedures necessary, and for estimating your work.
Don’t worry about sequence – that will be covered in the scheduling.
Ties the entire project together
Allows you to assign resources, show the scope.

## Basic WBS Structure

**Notes:**
When do you stop?
General rule is you stop when you reach a point at which you can estimate to the desired degree of accuracy or at which the work will take an amount of time equal to the smallest units you want to schedule and manage.

## Example WBS

- 2003-4
- CSPI Program

- 1
- Program
- Management

- 3
- Events
- Production

- 2
- CSP
- Development

- 4
- Conference
- Website

- 6
- CSPI
- Portal

- 5
- CSPI
- Website

- CSPI Program Status

- 2004-8 CSPI Program Planning

- CSPI Program Improvement

- SEPG Staff Development

- PDT Assets

- CSP Definition

- 2004 SEPG Conference

- SEPG Brown Bag Series

- Requirements for Website

- Requirements for on-line registration

- Design

- Requirements

- PAL Development

- SEPG Publications

- Sub-Process Definition

- Program Mgmt Assets

- CMM Intro Training

- Development

- Event Assets

- PAL Requirements

## Step 3:  Develop Project Organization

- Project Organization
- Define roles and responsibilities needed for the job
- Describe the relationship of personnel/organizational units
- Develop contact lists of project members

- High Level
- Requirements

- Major
- Milestones

- SLCM

- Roles &
- Responsibilities

**Org Chart**

- WBS

**Notes:**
Determining Inter-group relationships.
Identifying key personnel involved.

## Organization Chart

**CSPI Program Manager**

**Process Architect**

**Events Coordinator**

**Conference Manager**

**Software Development Manager**

- PDT Leader

- PDT Members

- Event Leaders

- Room managers

- Developers

- Testers

**CIO**

**ITGB**

- Req’ts Analysts

**Management Support Team**

**SEPG**

- Technical Rep

- Testers

## Step 4:  Environment

- Describe the software
- SAS, Java, C,
- Describe the environments
- Platforms
- Development, Test, Production
- Describe the support tools needed to do the work
- Planning tools,SCM tools, Development tools

- High Level
- Requirements

- Major
- Milestones

- SW & Support
- Tools

**SW Envir. **
**Description**

- WBS

**Notes:**
Do you need to establish the environment?
Where will the software be developed, where will it run, on what platform? 
Describe Requirements related to the environment
Remote access, Firewall, 

## Step 5:  Develop Estimates

- Work Product Size
- SLOC, # Screens, File size, Function points
- Work Effort, Staffing & Costs
- Base on experience and data
- Document assumptions and how estimates prepared
- Take into account who is doing the work

- High Level
- Requirements

- Major
- Milestones

- SW & Support
- Tools

- WBS

- Work
- Products

**Estimates**

**Notes:**
Work Product Size is an indication of effort and productivity
Decide on what is an appropriate unit. 
# hours, days, etc.
# resources
Task duration

## Estimation Techniques

- Seat of the pants
- Data Driven
- Expert
- Pert
- Delphi
- Order of Magnitude

## Step 6:  Develop Schedule

- Start with WBS
- What is first, what can start at same time, go from there
- If Schedule doesn’t line up with Milestones, go back to Step 2 and refine/adjust or renegotiate milestone schedule.
- Take a hard look at Risks in terms of Schedule, Resources, Costs, and technical aspects.

- High Level
- Requirements

- Major
- Milestones

- Task
- Dependencies

- Estimates

**Schedule**

- Risks

- Roles &
- Responsibilities

- Individual
- Assignments

**Notes:**
Reason to schedule
to ensure the imposed deadline can be met.
Guides the management of the project.
Don’t schedule more detail than you can manage
Rule of thumb between 2 – 6 weeks.

## Overall SDP Process

- High Level
- Requirements

- Major
- Milestones

- SW & Support
- Tools

- SLCM

- SW Envir.
- Description

- WBS

- Task
- Dependencies

- Work
- Products

- Estimates

- Org Chart

- Sub Plans

- Schedule

- Software
- Development
- Plan

- Risks

- Risk
- Register

**Project Concept**

**Project Planning**

**Plan Review**

- Sub Plans

- Roles &
- Responsibilities

- Individual
- Assignments

- 1

- 2

- 3

- 4

- 5

- 6

## Where do I go from here?

- Review SDP and other plans and get approval
- Place SDP and other plans under SCM
- Communicate responsibilities
- Execute the SDP
- Monitor project activities & work products against the SDP
- Keep the SDP current and communicate changes to affected persons

## References

- Humphrey, W.S., 1989.*  Managing the Software Process.* New York: Addison-Wesley.
- Lewis, James P. 1997. *Fundamentals of Project Management* New York: American Management Association.
- McConnel, Steve. 1996. *Rapid Development*.  Microsoft Press
- Paulk, M.C., Weber, C.V., Curtis, B., & Chrissis, M.B. 1994.*  The Capability Maturity Model:  Guidelines for Improving the Software Process*.