Software Development Life Cycle
by Charmaine Wong
1. Analysis
1.1. * Project goals
1.1.1. WHAT IT IS: The very first step in all projects: business, home, or education, is to define goals and objectives. This step defines the projects outcome and the steps required to achieve that outcome.
1.2. * Scope
1.3. * Data collection
1.4. * Requirements specification
1.5. * Identification of solutions
1.6. * Business case
1.7. * Feasibility study
1.8. * Justification of solution
1.9. * SWOT
1.10. * Project plan
1.11. * Project management methodology
1.12. * Project schedule
1.13. * Project milestones
2. Design
2.1. * Inputs
2.2. * Outputs
2.3. * Data structures
2.4. * Processes
2.5. * Entity Relationship Diagrams
2.6. * User interface design
2.6.1. * System context diagram
2.6.2. * Data Flow Digrams
3. Implementation Stage
3.1. * Development
3.2. * Alpha testing
3.3. * Prototyping
3.4. * Quality control
3.5. * Quality assurance
3.6. * User documentation
3.7. * Technical documentation
4. Installation stage:
4.1. * Installation
4.2. * Training
4.3. * Changeover
5. Maintenance Stage
5.1. * Maintenance
5.2. * Regression testing
5.3. * Support
5.4. * Incident tracking
5.5. * Phase out
6. Testing stage:
6.1. * Beta testing
6.2. * User acceptance testing
6.3. * Handover
7. Overall: The first stage of any project is the planning stage. In the Software Development Life Cycle (SDLC), this is where the appropriate people discuss the goals of the project, and how it will be run. A project needs to be planned before it starts. This ensures it is well run and actually achieves the goals that it is supposed to. It doesn’t matter if it’s a small change to a website, or a large system being implemented, there is some level of planning done at the start of the project. This results in better code and less re-work. Roles involved: Project Manager, Project Sponsor, other business representatives
8. Overall: This is where the analysis is done to find out what the business problem is, what the detailed targets are, what the software is trying to do or solve. This can take a lot of work. It’s usually done by the business analyst on the team, and there may be more than one, depending on the size of the project. A business analyst’s role is to speak to the people in the project and gather the requirements, which are a list of things that the solution needs to do for it to be successful. The project manager also has a minor part to play in this phase. They are responsible for communication to other project representatives, and handling the timelines and any changes in scope. Actually, if you’ve read any material from the Project Management Body of Knowledge, you might have read that the project manager is involved in all stages of the project. Once the analysis is done, the output from this is usually a requirements document or a list of user stories, depending on the project methodology that has been chosen (Waterfall or Scrum, or something else). Roles involved: Business Analyst, Project Manager, business representatives
9. Overall: Based on the requirements that have been provided, which is a list of what needs to be done, a solution is then designed and developed by the development team. This can involve many steps, depending on the team and the way they work. Often it involves: User interface design, to work out how the solution would look to the user Technical design, to determine the system architecture and the design of the solution behind the scenes Development, or the actual writing of code, to make the solution work The development team, which can be a single developer or a group of developers with a development team leader, come in to the project and perform this work. Depending on the other tasks required, other specialised roles may be involved. For example, the company that I work for at the moment has its own dedicated User Experience team, who is responsible for the user interface design. They then work closely with the developers to come up with a working solution. The business analyst and project manager can be involved in this phase of the SDLC life cycle in a small amount. The BA may assist with clarifying details of the requirements, and the PM would be there to monitor the progress and issues. Roles involved: Software Development Manager, Developers, Designers, Business Analyst, Project Manager
10. Overall: After the developers write their code (which can be at the end of all development, or at incremental stages, depending on the methodology), the code is handed to the testing team for their work. The testing team will then perform a series of tests to ensure that the code works correctly. The testing in this phase can involve many different types of tests, depending on the project and the company, such as: Unit testing: testing individual pieces of code to ensure they work System testing: testing the entire system to ensure it works Verification testing: ensure that the system does what the requirements say it should do Integration testing: ensure that the system communicates to other systems correctly Regression testing: make sure that nothing else is broken when this is implemented Those are just some examples of the testing that is involved. The main roles involved in this stage of the SDLC are the testing team, with a test manager if required. The business representatives are also included, as they have a role in checking the solution against their requirements. Roles involved: Testers, Developers, Business Analyst, Project Manager, business representatives
11. Overall: This is where the testing has passed, and the solution is ready to go into the production environment and be used by the group that needs it. This group could be an internal group to the company, or the general public, depending on the project. The implementation is usually planned very carefully, as it involves turning off some systems while the code is installed and tested. It’s usually done on a weekend or outside of business hours, so that there is minimal impact to the normal users of the system. A plan is put together, usually by the project manager and the release manager, to put this solution out into the world to be used. The plan is followed, which includes installing the code into the production system and some kind of testing, and then communicated to the wider project team. I’ve written more about the release management process in this article. The developers can also be involved, if they are the ones that need to do the implementation steps. Sometimes, at larger companies, it is a dedicated team that does the releases. Once the solution is implemented, it is then communicated to the wider team by the project manager, who explains what was done and what the result was. Roles involved: Release Manager, Project Manager, Developers, Testers
12. Overall: This is the final step of the SDLC life cycle. Once the solution has been implemented by the team and has been running for a while, the business representatives in the team will then analyse how the project has gone and if the solution as met their goals or not. This could result in a few things: The solution is deemed a success as it met all of the goals The solution needs further phases to add or change things The solution is not successful as it did not meet its goals or causes other problems Sometimes these can be determined straight away, other times there needs to be a period of time to determine. For example, if the project involves automating a manual process to save costs, there may be a period of a month or two to determine if the costs are actually being saved. This step is usually done by the project sponsor and the business representatives, with the project manager included sometimes. They will look at how the solution is performing and if it met their goals or not, and then make a decision on what to do next. This is done often in Agile projects, where a first release is evaluated, and either development continues, or it is stopped as the project has met its goal. Roles involved: Business representatives, Project Sponsor, Project Manager