The Software Development Lifecycle (SDLC) is a set of patterns and practices companies/users have implemented in the design world to produce better software. The main purpose of the SDLC is to ensure a smooth process that produces software that is accurate, meets specifications, is on time and on budget, among other important goals.

Stage 1 and Stage 2: Planning and Analysis. This stage or phase begins by someone having an idea. Typically the person that comes up with the idea will be the product owner. A business analyst will get involved and begin looking at return on investment and a high level design. Finally a project manager is assigned if the project will continue to move forward. Software Devs will sometimes come in in this phase and act as a consultant. Answering questions like this can be done, that can’t be etc

Stage 3: Design. Depending on the size of the company, this phase may be handled by a Lead or Sr Dev, an architect, a UI/UX designer or the BA. This phase also can be huge with class diagrams, every screen and field defined, and all logic laid out in explicit detail. It can also be as basic as a few excel sheets with the logic and screens.

Stage 4: Development. At this stage, development begins and in theory everything should be worked out. The devs will work in 1, 2 or 3 week sprints, often demoing what has been done at the end of that time.

Stage 5: Testing. A formal end of development testing is completed by Quality Assurance and some other key players like the product owner. Another type of testing, User Acceptance Testing, is vital to ensure a product meets the specifications and the users needs. In order for the product to be successful, and more importantly used, it must be free from errors, intuitive and solve the intended problems. All this is verified during testing and is part of change management. Change management, is a hard challenge in a corporation, with users always reluctant to change the way anything is done. A successful UAT session(s) will help speed the adoption of the software.

Stage 6: Deployment. Deployment typically involves the software developers having provided some type of package and script(s) to the operations team. If the release is a website, this can also involve setting up a URL. If the software is a package meant to be sold, sales and marking now take over and begin packaging and distributing the product.

Stage 7: Maintenance. Maintenance is the longest phase of the SDLC, and if the product is updated often, will involved many iterations of this cycle. The more successful the software the more years this will last.