The Software Development Life Cycle or as most programmer would call it “SDLC”, is a process you’ll take with you throughout your programming career. The purpose of this process is to produce software with the highest quality you are capable of achieving. Each step of the cycle help bring your software from just an idea to an actual product.
How Does it work?
The software development lifecycle is never ending.Nowadays our software is dynamic. Rarely do you ever see a “finished” product. With the addition of new features, software/hardware updates and bug fixes programmers will always have a job to do.
SDLC helps to organize your project when you follow all the steps in the cycle. Complex projects are very difficult to carry out, especially with a large team.There are many benefits when using SDLC to help your development. One of the benefits to using SDLC is that the success of the project can be measured in a more organized way.SDLC is a framework that helps structure the development. Without this framework developers would not know what they should be creating. Project managers are also part of the team and if the process is not organized it will be difficult to know the progress. SDLC also goes outside of development. Business owners are involved because they give the requirements. When it comes to requirements ,SDLC will allow communication between the development team and the business team.
The Phases
- Planning
This is where the development team starts to build the blueprint. This step will include:
- Setting a goal
- Planning a budget
- Finding the right resources to begin (developers, materials)
- Scheduling
This phase in the cycle will require a lot of communication between the development and operations staff.
2. Requirements /Analysis
This is one of the most crucial steps in the cycle. The business staff must communicate with the development team.The business conveys the requirements from the stakeholders. In this day and age it is the norm to use agile development to output this requirements phase. Agile methods may produce a backlog of tasks to be performed.
3. Design
After the requirements are discussed, agreed upon and understood the next step is for the architects of the project. The design phase requires consistency, this is why developers use frameworks! Developers will use design patterns to solve algorithmic problems. The design phase should be documented so the developers know exactly what design patterns they want to use, and where they want to use them.
4. Software Development/Implementation
This is the phase that actually produces the software. Agile development is very helpful because it helps organize development goals in a timely manner using “sprints. Regardless if you use agile development or not the development team must use whatever helps complete the task quick. Business staff should be heavily involved with this phase.To ensure all expectations are met the business staff must be in contact with the development staff.
5. Testing
Arguably the most important step in the whole lifecycle of software development. Without this phase you’ll never know if your software is of quality to deploy. Testing will help measure a number of things:
- Code quality
- Unit testing (functional tests)
- Integration testing
- Performance testing
- Security testing
Most development teams run automated test to make sure nothing is ever skipped especially if you have software that is dynamic
6. Deployment
This step requires less work than the others because of how much automation is used. This will give all of the users the “finished” product until bugs are found which leads us to our next phase.
7. Maintenance
I’ve heard the maintenance phase to be like a “never ending pit”. Once you enter this phase you’ll continue until the software is no longer being supported. Bugs will be the biggest issue in this phase. Users will report them and it is up to the development team to fix anything that is lowering the functionality of the software. Throughout the life of the software someone will have to respond to the defects which feeds work back in the process.
What A Life
Software development is like growing a plant. You start with the idea that you want a plant to grow. You gather the required resources to complete the task. Afterwards you design the pot you’d like to put you plant in or plan what kind of nutrients you’d like to use. Next, planting the seed is like our development phase. Give the plant water and even some sun to develop the plant! As time goes by we are testing to see if our plant will actually grow. Our test will see if it works, and if it does we can cut the flowers the plant produced. Say we’d like more flowers in the future. We can keep maintaining the plant until it cant do it anymore.
SDLC is awesome and you can even use it in other aspects of life outside of software development!
check this out to see agile vs waterfall development!