Understanding SDLC in Software Development Process
Tags: beginners, sdlc, programming, productivity
Published: 2022-03-10 09:10:12

## Introduction
> In systems engineering, information systems and software engineering, the systems development life cycle (SDLC), also referred to as the application development life-cycle, is a process for planning, creating, testing, and deploying an information system.

So SDLC is a methodology that refers to how a software cycle is developed, ranging from design, code, testing, release to maintenance.
Of course, all programmers who are still learning to the professional must use this methodology, although sometimes beginners are still unfamiliar with this SDLC terminology.

## Analysis
![Analysis](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4p72zrqkj9h1tvwrvu8f.png)

Every software made is expected to be a bridge for humans to make things easier. For this reason, it is necessary to analyze the approach, both from a logical and technical perspective.

At this stage, analysts usually identify existing data and information to design programs that can meet the needs to be achieved, then determine the adjustment of how to solve the problem with existing technology.

This phase contains requirements gathering, project initiation, estimation, scheduling, tracking, SRS documentation 

## Design
![Design](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h1kkbkabwoko69ltk7qy.png)

Ideally, the software that has been created can be used properly and is easy to operate by users, so it is necessary to design UI and UX according to the target user and the goals to be achieved.

In addition, it is also necessary to design the program so that it can be adequately maintained over the long term, both in terms of technology and security.
So that in this phase, the software design and technology are discussed.

## Implementation
![Implementation](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0plwyjvwdvk6osorzdrg.png)

The phase where the programmer writes code to translate the design into software following the needs that have been analyzed.

## Testing
![Testing](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mkdpu6pr446254igsje6.png)

Bugs are unavoidable in both development and production environments.
So it is necessary to test so that the program code does not have bugs that can later interfere with the application's user.

So it is necessary to test the program that has been made, both procedurally based on existing analysis, or automatically based on standards, or manually by considering how the user will use this software later.

## Deployment
![Deployment](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v6npnzuwuxvix9vorkyo.png)
 
When the program has passed the bug screening and is following the required requirements, it is time for the application to be launched so that users can use it and, of course, utilized by end-users / users in the form of applications that users can use.
In this phase, the user is expected to properly use the entire function and the MVP of the application.

## Maintenance
![Maintenance](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/774xaka5as966v0zx9yg.png)

Technology is constantly changing and, of course, developing, so it needs to be maintained so that the application can adapt to these changes and still run over time.
 
**The importance of SDLC for developing software systems :**

1. Become a framework for software development management
2. Make software development work more efficient and accountable
3. Increase productivity in software development
4. Facilitate project consolidation with clients