Software Development Life Cycle (SDLC)
Basically, SDLC consists of all the steps/stages of software starting from its inception to its implementation. There are in fact numerous types of SDLC models (Agile, Waterfall et al) and depending upon your requirements you can choose any of them to meet your purpose.

Given below are some phases, which are common in every SDLC model. Let us go through them to get an idea.

1. Requirement Gathering and Analysis: Requirement gathering and analysis is the first stage of any SDLC model. This phase is basically the brainstorming phase and often consists of sub-stages like Feasibility Analysis to check how much of the idea can be put into action. If any particular software needs to be modified, the underlying problem(s) of that software is sorted out along with finding ways to solve it. If a brand new software is going to be developed, then every minute requirement regarding that software is looked in to. This implies that this stage involves maximum research and inputs from both the company that is developing the software and the client.

2. System Analysis: This is the second phase of SDLC where the entire system is defined in detail. In fact, it this stage wherein a detailed blueprint of various processes of the software is developed. If needed the system is divided into smaller parts to make it easier more manageable for the developers, designers, testers, project managers and other professionals who are going to work on the software in the latter stages.

3. System Design: In this phase, the physical system is designed with the help of the logical design prepared by system analysts. The analysts and designers work together and use certain tools and software to create the overall system design, including the probable output.

4. Coding: As the name implies, in this stage the software is coded with precision. A team of programmers are assigned by the company to work on the software. More often than not, the work is sub-divided under a sub-phase called Task Allocation, where each developer is assigned a part of the work depending on his or her skill set(s). This helps complete the coding efficiently.

5. Testing: When the software is ready, it is sent to the testing department where Quality Analysts test it thoroughly for different errors by forming various test cases. They either test the software manually or using automated testing tools and ensure that each and every component of the software works fine. Once the QA makes sure that the software is error-free, it goes to the next stage, which is Implementation.

6. Implementation: This is the final stage of software development life cycle. In this stage, if the software is run on various systems by users. If it runs smoothly on these systems without any flaw, then it is considered ready to be launched.