A never ending cycle.

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):

  1. Planning: includes project plans, schedules, cost estimations
  2. Requirements: documentation of the requirements gathered from stakeholders and experts
  3. Design: design process using established patterns for application architecture and software development
  4. Implementation: producing and coding testable and functional software
  5. Testing: it’s important to test the code quality, run functional tests, security testing, performance testing etc. (important to deliver quality!)
  6. Deployment: release of working software
  7. Maintenance: constant monitoring of software to ensure proper operations
for the visual learners

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:

This model involves a rigid structure that demands all system requirements be defined at the very start of a project. Only then can the design and development stages begin. Once development is complete, the product is tested against the initial requirements and rework is assigned. 

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:

Rather than treating requirements, design, and testing as large sequential steps, an agile model makes them all ongoing processes that require involvement from developers, management, and customers. 
Work is typically broken into 2-4 week segments known as “sprints,” in which the responsible teams tackle the major needs of their customers and perform testing as they go.

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

Blog at WordPress.com.

Up ↑

Design a site like this with WordPress.com
Get started