You want to learn about something new? Software Development Lifecycles?
Start by reading about it for example here or there or here
… or just go ahead and read my summary:
Software is a complex product that starts as an idea and (optimally) flows through a sequence of steps until there is a 1st, 2nd, 3rd, 4th (and so on) release, commonly known as Software Development Lifecycle (SDLC).
The SDLC consist roughly of the following 7 steps but may vary depending on the model (we will see a couple of them in a second):
- Planning: includes project plans, schedules, cost estimations
- Requirements: documentation of the requirements gathered from stakeholders and experts
- Design: design process using established patterns for application architecture and software development
- Implementation: producing and coding testable and functional software
- Testing: it’s important to test the code quality, run functional tests, security testing, performance testing etc. (important to deliver quality!)
- Deployment: release of working software
- Maintenance: constant monitoring of software to ensure proper operations
wait, but why is it a (never ending) cycle? During the Maintenance Phase almost always additional features and bug fixes come up that need to be taken care of.
There are many different variations of SDLC Models and different projects fit best different models. Not to overwhelm you with information I will only highlight the SDLC which reading through different articles I found to be most prevailing.
The requirements of your project are well established and don’t need to be changed throughout the process? Go for the Waterfall model:
Your client is very engaged in the project and likes to interact? There is a functional requirement that needs to be ready in a very short period of time while requirements are still changing? The Agile Model is for you:
Examples of agile models you might have heard of are Scrum (clear roles and events) and Kanban (simpler, more flexible)
Other models are:
- V-Shaped Model
- Evolutionary Prototyping Model
- Spiral Model
- Iterative and Incremental Model
- …
This is about it about the basics of the SDLC. If you want to know why it is important to understand the SDLC watch this video.
Surprise!! A little Quizz at the end to check wether this blog entry was of any use for you:
- What are (roughly) the 7 Steps of a SDLC?
- Explain one step in more detail.
- What is the agile model about and in which environment do you use it?
Leave a comment