Software Development Life Cycle (SDLC) can also be referred to as Application Development Life Cycle (ADLC). It is a process for planning, creating, testing, and deploying an information system in a proper functional manner.
SDLC consists of several phases which are mentioned them below:
2. Requirements Gathering/Analysis
4. Implementation / Development / coding
Before any of the above phases, it should start with an idea whether its an own product or a client who is looking for an application with certain requirements.
Let’s say that there’s a software application development company and a customer comes in with a business idea for an application and the money to get it started.
The customer will first meet a companies product owner or a project manager. They will discuss the terms of their agreement and sign a deal and accept the project. After this, the project will start with planning the requirements.
Together the customer and the project manager will outline the requirements of the application. Let’s say that the customer is looking for a website and both of them agree upon certain requirements. Requirements such as pages for user registration, login page, logout page, dashboard of landing page and so on… Once we have the planning of the application, then this will be moved to the requirements gathering/analysis phase.
Here the whole team of the company starting with operations team, developers team, project managers and testers will meet up. They all will meetup in an office and define each outlined requirement and give more planning details. The details will be defined clearly on what and why the fields are necessary in that page. Details such as username input field, password field, submit button and the ability to save the user into the database in the user registration page as per the requirement and then fields for the login page to read and log the user into the systems. Same goes with the logout page and dashboard outlining the details of each field and its use. Once the requirements have been analyzed by the team and defined, the project manager will take all the defined requirements and create tickets in a project management system. This will lead into the design phase.
The design phase will take all the requirements and start to plan the product. The design phase may include the business rules, the interface layouts, color schemes, what programming languages to use, what frameworks, system server design, database relationships, architecture of the applications, mobile aspects, supported browsers and much more. Then it’s time for implementation or development or coding.
Implementation / development / coding:
The operations team will start setting up the hardware for the servers, the developers will start writing the code, the designers will continue planning the user interface, and the testers will start analyzing the requirements and start building test cases for their test plans. Even during this stage, testers are incredibly valuable as they begin to imagine the usability of the applying and see how everything flows together. Sometimes while running test cases they will discover things that don’t make sense and help free design fundamental flaws in early stages of the application.
Testing phase is a really important phase. It’s important because this is where testers get to know how things work at users end. It eliminates end users from working and complaining about the issues. So let’s imagine that the developer has finished coding the new features and requirements, and then when the user logs out, then it actually does not clear the session in the browser and when another person walks up to the computer and clicks on the login button or clicks at the refresh page and they gain access to the previous account, get access to all of their money and start making payments on various things. It would be a huge and expensive terrible bug that would get released if the testers didn’t have tested these types of things beforehand. So what does a tester do during the testing phase? Now that we have the servers all setup and the database is all setup, developers have finished coding, they’ve given an application, an actual website that we can log into. Now the testers can start testing and executing our test cases from the test plans that were created, validate that all of the requirements that have been met, make sure all of the functionalities work as expected, find as many bugs as we possibly can, which could be color schemed as incorrect or there’s a user interface bug somewhere. There are so many mistakes that a developer can make and do make frequently . So as the testers test, they will start to find bugs and what they will do is that they will report then in a bug tracking system which will then be assigned to a developer. Developers will go in and they will fix the issue and they will assign it back to the tester and this is called a “Bug Lifecycle”.
In the deployment phase, the operations team will end nearing the staging or development environment systems that have been tested in and get them ready for production. This means that the new hardwares or brand new servers will be setup which will be scalable for production. This includes all such as setting up the links, setting up the databases for real users, seeking up with the development teams and release managers and other necessary setups. Once all of the tasks are completed, the application will go-live to the real users. This brings us to the final phase of SDLC – Maintenance.
So after the application has been launched and released to the end users, and let’s say that the application became so successful and millions of users are logging in and registering into the application, then we need to maintain the servers and the environments and need to monitor the load and the stress and everything that’s coming on the server’s by many users logging in and using it, so that it doesn’t bring down the system. If necessary, we need to make larger servers, larger databases, and maybe we need to get faster servers. So there’s a lot of stuff that goes on during the maintenance phase. There will be bugs found in production and its called Production Support. Frequently users will email with their issues and these should be taken into consideration immediately and investigated on what they are complaining about or what their issue is, figure it out and write up a bug, get it resolved and do another deployment to production with issues fixed.
So to summarize, we’ve discussed Planning, Requirement Analysis, Design, Implementation, Testing, Deployment and Maintenance coving all phases of Software Development Life Cycle (SDLC).
In the maintenance phase, new features will come through, new requirements will come through and this will restart the whole process again and be able to get new stuff added into the existing application in a timely and proper way.