Getting Started
An overview of the Software Development Lifeycle
Introduction
The Software Development Lifecycle (SDLC) is a structured, iterative process that guides software developers from initial concept to a working, maintainable application. It organizes development into well-defined phases, each with standard practices that help teams plan effectively, manage complexity, and scale systems over time.
SDLC acts as a systematic workflow that aligns software development with business goals and user requirements — ensuring that what gets built is the right thing, built the right way.
It has six (6) standard phases: Planning, Analysis, Design, Implementation, Testing and Integration, and Maintenance.
Discussion
Each stage are discussed in detail in separate pages. It dives into the main goals, priorities and output deliverables of each stage, along with sample document output for reference.
SDLC Stages Overview
Planning
The planning stage establishes the foundation for the entire project. Teams define the project's goals, scope, feasibility, budget, and timeline — and identify the stakeholders (users) whose needs the system must serve. A well-executed planning stage reduces risk and prevents costly changes later in the process.
Analysis
In the analysis stage, teams gather and document detailed requirements from users and stakeholders. Both functional requirements (what the system must do) and non-functional requirements (how well it must do it) are clarified here. The primary output is a shared understanding of the problem before any solution is designed.
Design
The design stage translates requirements into a blueprint for the system. Teams produce the architecture, data models, UI/UX specifications, and technical structure that developers will follow during implementation. Good design decisions made here directly reduce rework in later stages.
Implementation
Implementation is where the actual code is written. Developers build features, components, and functionality based on the design specifications produced in the previous stage. This is typically the longest phase and involves close collaboration between developers, designers, and testers.
Implementation across teams may vary. For this course, we will also cover the deployment stage into the implementation phase.
Testing and Integration
In the testing and integration stage, individual components are combined and the system is verified as a whole. Teams identify and fix bugs, validate that all parts work together correctly, and confirm that the software meets the requirements defined during analysis. The goal is to catch issues before the system reaches end users.
Maintenance
Once the system is live, the maintenance stage begins — and it never truly ends. Teams monitor performance, resolve issues, apply patches, and release updates in response to user feedback and changing requirements. Most real-world software spends the majority of its lifespan in this stage.