|
Software Development Lifecycle Process
Starting Condition
IT nomination request received or expected.
Deliverables
| Installed software |
| Quality Assurance Plan |
| User Training |
| Documentation |
| Customer support plan |
| SDLC Performance Report |
Roles
Planning Phase
Starting Condition:
IT nomination request received or expected.
Objectives
Identify a need to enhance business practice through a software
development project, determine the assumptions and constraints on the
solutions and propose a solution.
Tasks and Activities:
Requirements development and management
- Develop the project proposal
- Identify project stakeholders
- Develop a Project Boundary Document
- Develop the Concept of Operations document
Project management
- Identify project sponsor and project manager
- Develop a role statement
- Create a preliminary plan and schedule
- Develop a risk assessment statement
- Develop a Cost-Benefit Analysis
- Conduct the Phase Review
Software design
- Create the Use Case business model.
Software development
Project implementation
Roles and Responsibilities:
- Sponsor - responsible for ensuring that resources for the project
will be available and for identifying underlying assumptions
and integration with the overall business process. If primarily
responsible for identifying project stakeholders and the benefit
side of the Cost-Benefit Analysis.
- Project Manager - responsible for the technical aspects of the
project including identifying the necessary roles, plans and
schedules, and identifying project risk factors.
- Integration Lead - develop the Integration Plan and proceed with
the acquisition of the necessary hardware
and software resources for the project and provide a cost
estimate.
Deliverables:
Issues for Consideration:
Phase Review Activity:
- Get approval for the Project Proposal as needed.
- Collect metrics regarding the time and other resources required for
various parts of this phase.
- Complete the Project Status Report.
System Analysis Phase
Starting Condition:
Decision is made to proceed with the project.
Objectives:
Determine the functional design of the system with respect to inputs,
outputs, processes and interfaces and develop baseline plans for
proceeding.
Tasks and Activities:
Requirements development and management
- Develop the Requirements Document
- Develop a System Security Plan
- Develop a Quality Assurance Plan
- Develop an interface control document
Project management
- Develop a project workscope
- Develop a baseline project plan and timeline
- Develop the risk management plan
- Develop a security and privacy plan
- Create a quality assurance plan
- Select the project team
- Begin the project costing document
- Conduct the Phase Review
Software design
Software development
Project implementation
Roles and Responsibilities:
- Sponsor - insure that resources for the improved plan are
available and that costs are within acceptable limits. Review and
approve integration between the client and the project team.
- Project Manager - responsible for directing the development
of the project plan and assigning roles to staff members.
Responsible for the accuracy and completeness of all deliverables,
and for reporting on project progress.
- Project Team - Complete assigned tasks and contribute expertise
in planning the project and evaluating technical risk factors.
- Requirements Lead - Plan and conduct the collection of the
data and the formation of the Requirements Document. This
will include considerable work with clients identifying the
appropriate means for data collection and the vetting of the
final document.
- System Architect - Work with the Requirements Lead and the
other Project Team members to insure that the requirements can
be met within the available resources.
- Security Lead - insure that security and privacy concerns
are identified and accounted for in the planning process.
- Chief Information Officer - Approval of project for continuance.
- Client Liaison - interface with the client to insure that
the project meets requirements by getting approval for the
Requirements Document.
- Configuration Lead - insure that all documents are properly
archived and protected as necessary.
- Integration Lead - insure that the hardware and software system
are available and properly configured. Work with the Project
Team to solve problems.
Deliverables:
Issues for Consideration:
If sensitive data is involved, determine the appropriate standards
for privacy and insure that consideration is given to this issue.
Insure that all staff have the appropriate levels of access.
Insure that the planned implementation platforms can enforce
the privacy standards.
Give appropriate attention to the possibility of using an existing
system or purchasing software to meet these needs if the goals
can be met and the cost is advantageous.
The Interface Control Document should identify all systems to
which this software will interface (software and otherwise)
and determine how they will interface with regard to business
processes and data exchange. At this point, the details may
not be complete, but it is vital that all interactions be known
and understood.
Phase Review Activity:
- Does the project, as planned, meet the stated goals and is it
feasible technically and from a resource point-of-view.
- Collect metrics regarding the time and other resources required
for various parts of this phase.
- Get approval to proceed.
- Update the Project Status Report continuously
System Design Phase
Starting Condition:
Requirements document has reached a stable state, the plans covering
project content are in place, and planning has proceeded to the point
that tasks can be assigned.
Objectives:
Transform the system requirements into detailed specifications that
describe how the system is to meet the functional, physical, interface
and data requirements. This process may be iterative, producing several
models.
Tasks and Activities:
Requirements development and management
- Develop the system specification
- Update requirements
Project management
- Update the project plan
- Conduct the Phase Review
Software design
- Develop the Analysis Model
- Develop the user interface storyboards
- Develop change orders
Software development
Project implementation
- Develop a security plan
- Develop a system test plan
- Develop an acceptance test plan
- Develop the acceptance test cases
- Develop the documentation plan
- Develop a user support plan
- Develop a training plan
- Develop an integration plan
- Develop a conversion plan
- Develop a deployment plan
Roles and Responsibilities:
- Project Manager - leadership role in the staffing and development
of the specification and design. Must review all deliverables
for accuracy and approve. Responsible for interfacing with
the Sponsor to insure that any changes in cost or resources
are approved.
- Project Team - responsible for task assignments.
- Requirements Lead - responsible for insuring that the
System Specification accurately reflects the Requirements
Document and get client approval of any changes.
- System Architect - responsible for the overall design process,
for risk assessment and for the technical properties of the
system and acceptance tests.
- Procurement Officer - responsible for acquiring resources and
contract management.
- Client Liaison - interface with the client to insure that the
project meets requirements by doing necessary walkthroughs of
design documents (specifications and user interface storyboards)
with the client and getting approval. For any changes, produce
change orders in collaboration with the Project Manager.
- Configuration Lead - insure that all documents are properly
archived and protected as necessary.
- Integration Lead - insure that the hardware and software system
are available and properly configured. Work with the Project
Team to solve problems.
- Deployment Lead - develop a deployment plan and get approval.
Deliverables:
Issues for Consideration:
Look for opportunities to use off-the-shelf (OTS) components,
where practical, in assessing the design.
Pay particular attention to implementation decisions, such a
language and platform, and how they affect the design.
Phase Review Activity:
- The design phase is the best opportunity for the project team
to identify technological risk and its potential impact on the
future of the project. It is particularly important that all
high-risk components be identified and maximum delays and costs
be properly inserted in the project plan and project report.
- Insure that client approval of the specification and user
interface is gained before proceeding.
- Reassess cost and
resource needs based on the updated project plan and get
approval for continuance.
- Collect metrics regarding the time
and other resources required for various parts of this phase.
- Review the overall handling of the phase to make recommendations
for improvements in future projects.
- Update the Project Status Report continuously
Technical Design Phase
Starting Condition:
The System Analysis Model has reached a state of detail that allows all
or part of the Technical Design to proceed,
Objectives:
Transform the system design into a language specific system specification
that will meet the system requirements for functional, physical, interface
and data requirements. This process may be iterative and create multiple
designs. Establish plans for the development and testing of the software.
Tasks:
Requirements development and management
- Update the requirements document
- Update the system specification document
- Project management
Project management
- Update the project plan
- Conduct the Phase Review
Software design
- Develop the Design Model
- Develop the data model specification
- Develop the user interface mockups
- Develop and process change orders
Software development
- Develop a unit test plan
- Develop a software standards document
Project implementation
- Update the system test plan
- Create a system operation plan
- Create a configuration management system
- Update the acceptance test plan
- Develop a contingency plan.
Roles and Responsibilities:
- Project Manager - leadership role in the staffing and development
of the advanced design. Must review all deliverables for accuracy
and approve. Responsible for interfacing with the Sponsor to
insure that any changes in cost or resources are approved.
- Project Team - responsible for task assignments.
- Requirements Lead - responsible for insuring that the
design accurately reflects the Requirements
Document and get client approval of any changes.
- System Architect - responsible for the overall design process,
and for the quality of the design. Responsible for the programming
standards document and the unit test plan,
system and acceptance tests.
- Configuration Lead - with the System Architect, develop the
configuration management system.
- Procurement Officer - responsible for acquiring resources and
contract management.
- Client Liaison - interface with the client to insure that the
project meets requirements by doing necessary walkthroughs of
design documents (specifications and user interface storyboards)
and getting approval. For any changes, produce
change orders in collaboration with the Project Manager.
- Configuration Lead - insure that all documents are properly
archived and protected as necessary.
- Integration Lead - insure that the hardware and software system
are available and properly configured. Work with the Project
Team to solve problems. Develop or acquire software for
installing and managing the deployed system during the
development cycle and create the System Administration Plan.
Deliverables:
Issues for Consideration:
The team must be careful to maintain a design and not an
implementation at this phase. This is an opportunity to review
the design in detail and find any problems before they creep
into the development.
During this phase, there is an opportunity to begin development
efforts on foundational parts of the design that are necessary
for the larger project scope, and to work on high risk areas of
the design.
Because many security issues are programming language dependent,
a security analysis at this stage and an update of the security
plan is important. Security issues are a fundamental part of
the programming standards document.
Phase Review Activity:
- As with the previous phase, evaluate for high risk components
or areas of the implementations that have functionality that
is not known by the design team.
- Insure that any changes in the specification and user interface are
reported to the client and approval is gained before proceeding.
- Reassess cost and resource needs based on the updated project plan and
get approval for continuance.
- Collect metrics regarding the time and
other resources required for various parts of this phase.
- Review
the overall handling of the phase to make recommendations for
improvements in future projects.
- Update the Project Status Report continuously.
Development Phase
Starting Condition:
The Technical Design has progressed to the point where developments
tasks can be assigned, tested and monitored.
Objectives:
Create and test working software that meets the specifications for
the system.
Tasks:
Requirements development and management
- Update the requirements document
- Update the specification document
- Project management
Project management
- Update the project plan
- Conduct the Phase Review
Software design
- Update the system design
- Develop and process change orders
Software development
- Develop the running software
- Perform successful unit tests
- Defect list
Project implementation
- Develop the user documentation
- Develop the product documentation
- Develop the training courseware
- Develop the operations system and documentation
- Perform successful system tests
Roles and Responsibilities:
- Project Manager - leadership role in the staffing and direction of
the development team. Must review all deliverables for accuracy
and approve. Responsible for interfacing with the Sponsor to
insure that any changes in cost or resources are approved.
- Quality Assurance Officer - tests the product according to the
system test plan and reports any defects to the development team.
When the system test is passed, reports to the Project Manager.
- Project Team - responsible for task assignments and for unit
tests. Team as a whole is responsible for smoke testing the
software to insure that it can past to quality assurance.
- Requirements Lead - insure that the developed software accurately
reflects the Requirements Document and get client approval of any
changes. Work closely with the Client Liaison to develop and
execute a schedule of demonstrations for the client. For any changes,
produce change orders in collaboration with the Project Manager.
- Documentation Lead - develop the documentation and verify through
the project team with approval by the Project Manager and System
Architect. Work with the Client Liaison to get customer approval
of the documentation format.
- System Architect - responsible for the overall development process,
and for the quality of the software. Responsible for insuring that
unit tests are properly completed. Responsible for product
documentation.
- Configuration Lead - work with the System Architect and the
development team to build and configure the product and to
develop the operational tools and documentation.
- Procurement Officer - responsible for acquiring resources and
contract management.
- Client Liaison - provide the client with demonstrations of
the product at regular intervals and obtain approval for the
implementation or identify areas that require modification.
For any changes, produce
change orders in collaboration with the Project Manager.
- Configuration Lead - insure that all documents are properly
archived and protected as necessary. Work with the development
team and the Integration Lead to insure that the software versioning
works properly and effectively for development and quality
assurance.
- Integration Lead - insure that the hardware and software system
are available and properly configured. Work with the Project
Team to solve problems. Insure that system builds operate properly
and update the System Administration and Deployment plans as necessary.
Deliverables:
- Functional software
- Documentation
- Successful System Test
Issues for Consideration:
Software leaving development often has known defects that are
minor or are accepted by the client for the short term.
Because this phase often represents a majority of the time,
the collection of metrics regarding the time and other resources
required for is particularly important.
Phase Review Activity:
- Insure that the Requirements Document, Specification and system
documentation are updated to reflect any changes.
- Collect metrics regarding the time and other resources required for
this phase.
- Review the overall handling of the phase to make recommendations for
improvements in future projects.
- Update the Project Status Report continuously
Implementation Phase
Starting Condition:
All or part of the developed software has is ready for installation
and testing.
Objectives:
Install, operate and test the system to insure that it meets
the established system specifications, that all subsystems meet
specification and that all interfacing systems operate correctly.
Specifications include user satisfaction, documentation acceptance and
successful training.
Tasks and Activities:
Requirements development and management
- Review and update the requirements document
- Review and update the specification document
Project management
Software design
- Develop and process change orders
Software development
- Update product
- Quality assurance testing
Project implementation
- Install and test software
- Test and finalize the system operation
- Perform system integration
- Collect user feedback
- Perform the acceptance test
- Revise the user support plan
- Perform training
- Execute a user survey
Roles and Responsibilities:
- Project Manager - leadership role directing the implementation
team. Must review all deliverables for accuracy and approve.
Must interface with the Sponsor for any issues that arise with
the client.
- Quality Assurance Officer - continue product testing.
- Project Team - responsible for task assignments.
- Configuration Lead - test and finalize the operational system.
- Procurement Officer - responsible for acquiring resources and
contract management.
- Procurement Officer - responsible for acquiring resources and
contract management.
- Users - actively work with the product during training and system
testing and report any potential defects.
- Client Liaison - interface with the client to insure that the
project meets requirements by being actively involved in user
testing and handling insertion of defects. Responsible for the
acceptance test, client training management and the user survey.
For any changes, produce
change orders in collaboration with the Project Manager.
- Configuration Lead - insure that all documents are properly
archived and protected as necessary.
- Deployment Lead - oversee the deployment process.
- Integration Lead - insure that the hardware and software system
are available and properly configured. Work with the Project
Team and users to solve operational problems.
- Maintenance Team - develop a plan for maintaining the product
and integrating with the defect management system.
Deliverables:
- Deployed software
- Required training
- Successful implementation report
Issues for Consideration:
Insure that any security testing is accomplished at this stage.
Phase Review Activity:
- Insure that the Requirements Document, Specification and system
documentation are updated to reflect any changes.
- Collect metrics
regarding the time and other resources required for this phase.
- Review the overall handling of the phase to make recommendations for
improvements in future projects.
- Update the Project Status Report continuously
Conclusion Phase
Starting Condition:
All testing is complete and accepted by the customer, all training is
complete and all deliverables are complete or a completion date can
be established.
Objectives:
Transition the software to the maintenance cycle and conduct a review
of the project for the purpose of improving the software development
life cycle.
Tasks:
Requirements development and management
Project management
- Create a maintenance plan
- Conduct the project review
- Update policies and procedures.
Roles and Responsibilities:
- Project Manager - leadership role directing the move to
maintenance mode. Must review all deliverables for accuracy
and approve. Provide the interface to the maintenance team.
- Quality Assurance Lead - continue product testing.
- Project Team - responsible for task assignments.
- Maintenance Team - begin maintenance of the product, including
the handling of defects, if so required.
- Procurement Officer - responsible for acquiring resources and
contract management.
- Client Liaison - Continue to assure client satisfaction and
interface with the Defect Management System and the
Maintenance Team.
- Configuration Lead - insure that all documents are properly
archived and protected as necessary. Prepare the project repository
for closing.
Deliverables:
Issues for Consideration:
Project Review Activity:
- Evaluate the entire project for ways to improve the process at
each phase, and to establish improved metrics for estimating projects.
|