Software Development Life Cycle Overview

Β·

2 min read

Software Development Life Cycle Overview

Why do we use Software Models in Software Engineering?

Why don't jump straight into coding, making the project?

Obviously, because of Money, Time and Energy.

Let's think about the real physical world.

When we try to build a bridge, house, or tower.

They all cost a tons of money and time to build.

We cannot build things randomly and without thinking about

  • Placement and Location

  • The design, architecture.

  • Cost estimation

  • Construction

  • Safety checks

  • Risk management

  • Testing

The same mental model also applies to software engineering.

Especially when we get into millions of lines of code.

The cost of bad code will be extremely high.

It's called Technical Debt.

It's a poor, hard-to-understand "hacky" implementation that will have to be repaid with interest later on.

20% of projects fail and many of these are due to poor development practices.

1 hour saved now could potentially cost 20+ hours later to fix.

That's why, if we want to build something big.

πŸ‘‰ We should have a solid plan, processes, and follow the principles from the beginning.

πŸ‘‰ The typical software development lifecycle details how a piece of software is built.

πŸ‘‰ It covers inception, creation, and maintenance. This model is very high-level, meaning it covers only the large areas of the cycle. Each area can be further expanded to more specifically define the process.


A Typical Software Development Cycle Steps

  1. Requirements - Get clear on WHAT are we trying to build, and define the problems we have.

  2. Design (HOW)

    • How are we going to build it?

    • What technologies to put together?

    • How is the server going to be set up?

    • How is the front end to be set up? etc

  3. Implementation (BUILD) - Coding and Documenting the work.

  4. Verification (TESTING)

    • Is it what we wanted to build?

    • Ask the questions related to the requirements to make sure we're on the right track.

  • Is it working properly? The input and output are correct?

  • Is the data stored in the DB table correctly? etc

  1. Maintenance (Fixing things, testing things, implementing more features, updates, lifecycle plan, etc)

That's it for now.

Let's deep dive into each step in my future articles.

Β