Translate

quinta-feira, 7 de fevereiro de 2019

What is SDLC and why do we need it?



In short, SDLC is a software development process. In this post, I will only talk about a few points that I judge important because besides important it's an embracing matter.

SDLC means Software Development Life Cycle. Is a software production process which aims great quality along with low costs and short terms. This process has a detailed plan about how to develop, alter, maintain and replace a software system.


The SDLC has many distinct phases but the most important is to plan, design, build, test and deploy. Some of the most popular development models that use SDLC are:

- Waterfall model
- Spiral model
- Agile model
- Iterative model
- etc.

Obviously that each model has its particularities, which consequently changes or customizes SDLC according to its purpose. However, despite the model being used, it's considered a good practice in SDLC usage to follow:

1 - Conception


  • Identify the current problems: What don't we want? Identify the weakness and strengths of the actual system with improvement as a goal.

2 - Elaboration


  • Plan: What do we want? Define the requirements of the new software, the resources and effort demanded. Don't forget to list the risks.
  • Design: How do we get what we want? Translate the new system requirements into functional specifications (it depends on what model is been used) with participation and approval of all stakeholders.

Fail on this might cause the project cancellation or at least overrun its costs.

3 - Construction


  • Development: let's create what we want! This phase creates the solution by generating all its code.
  • Test: Did we get what we wanted? Search for bugs and inefficiencies and correct them until the software meets its specifications.
  • Deploy: Let's start using what we wanted! This phase is executed with some limitations and depending on end-user feedback some adjustments might be needed.
  • Maintenance: Let's get this closet to what we want! When used in the real world the solution might not be perfect as expected. Further conditions in the real world might demand some updates on the software to keep it efficient.

Benefits of SDLC

If done right, it can deliver a higher level of management, control and documentation. Developers understand what are they building and why. Everyone agrees on the established objective and the path to achieving it. Also, everyone understands the cost and resources needed.

There are many pitfalls in SDLC usage. It can become a roadblock instead of a facilitator. To fail on the execution of the main phases of SDLC independently of the motivation (cost reduction, meet deadlines, culture and etc.) might bring to you undesired results.

Tools

There are many tools that allow you to manage your project with a satisfactory level of customization to meet company needs.

Here in Montreal we use Redmine to support our SDLC. We're customizing it and maturing the process as the projects are delivered.

It's not easy, it takes time and demands perseverance as you will be breaking paradigms, changing the company's culture and take people out of their comfort zone.


Be insightful and reap the fruits of the SDLC executed in full in the not-so-distant future.

Nenhum comentário:

Postar um comentário