SDLC

The Software Development Life Cycle  (SDLC) is an approximately five-phase process that describes the steps that every software development project undergoes.These days, the SDLC may be known as the Application Life cycle Management (ALM) due to the increasing focus on delivery and/or retirement of systems and applications. However the development phases of the SDLC and ALM are identical. No matter how large or small, every software application that is produced must  pass through these stages –Planning, Implementation, Testing, Deployment, and Maintenance – in order to reach a successful conclusion and ship a quality product.

  1. Planning
  2. Implementation
  3. Testing
  4. Deployment
  5. Maintenance

Planning

The first stage in developing any software product is planning. During the planning stage, the company’s management team sets out detailed business requirements based on market projections, the competitive environment, and other business drivers. The managers also determine acceptable levels of business risk and outline components of the budget and timeline.

Implementation

During the implementation phase, the development team begins the process of  writing the code for the product based on the planning completed in phase one. First, software architects evaluate the needs of the product and determine the best model and programming language to complete the project.Once the coding environment is established, the development team begins writing code for each of the features specified by the business analysts, in the order dictated by the project plan. As developers complete features, they use the source control system to merge their work together and assist each other with code reviews to minimize code defects reviews.

Testing

Once the developers have begun coding, the test team commences the quality assurance (QA) process. The test team implements a variety of strategies to ensure that all features outlined by the business analysts are functioning as intended. They also utilize QA techniques which seek to uncover any defects in the code. The test team may use automated scenario-driven test cases, manual testing, or exploratory testing. When the test team finds a problem with the code, they report it back to the development team for fixing. In this way,the testing phase is not entirely discrete,but is an ongoing process that meshes with the implementation phase until the product is ready for deployment.

Deployment

The deployment phase is the stage at  which the product is considered complete and released to customers. To reach this “Go Live” milestone, the product may first undergo multiple rounds of internal release or beta releases before the final version is complete. In addition to creating a preview version of the product, these early releases also allow the deployment team to try out the planned deployment processes and refine the deployment strategies before the final release.

Maintenance

After the testing phase is completely through and the system is found to be error free it is delivered to the customer. But no real system would be error free even then. This is because when the system gets executed in real user system scenarios there would be possibilities of lot of bugs and errors. This phase is called the maintenance phase and the errors in this are recorded and changes has to be made in the system accordingly and again testing phase comes into picture.