Error processing SSI file
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 System Analysis System Design Technical Design Development Implementation Conclusion
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
  • Conduct the Phase Review
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.