Software Development Life Cycle
6 Phases · Roles at a Glance
- Product Owner
- Project Manager
- Business Analyst
- CTO
- System Architect
- UX/UI Designer
- Frontend Developer
- Backend Developer
- Solutions Architect
- QA Engineer
- Tester
- DevOps
- Database Administrator
- DevOps
- End Users
- Testers
- Technical Support
01 — Analysis
Transform vague stakeholder expectations into precise, documented requirements. Define what the system must do — never how it should do it.
- Vision — The big picture and project goals
- Functional Requirements — What the system does
- Non-Functional Requirements — Performance, security, and scalability
- Constraints — Hard limits and boundaries
- Assumptions — Accepted unknowns
- Is the vision clear to ALL stakeholders?
- Are requirements measurable and testable?
- Are constraints documented explicitly?
- Have assumptions been validated?
- Can non-functional requirements be measured?
02 — Design
Convert functional requirements into system structures. Define the problem domain, establish boundaries, model use cases, and define architectural decomposition.
- Problem Domain — Define system boundaries
- Mission Use Cases — Core system purpose flows
- System Use Cases — All user-system interactions
- Actors — Who interacts with the system
- Architectural Decomposition — Layers, modules, and interfaces
- Are domain boundaries drawn explicitly?
- Are ALL actors (human and system) identified?
- Do use cases cover every user goal?
- Is the architecture scalable for future requirements?
- Are external interfaces and APIs defined?
03 — Development
Implement the designed architecture. Frontend and backend teams build the system following the approved specifications, data models, and workflow designs.
- Entities (Data Model) — Define data structures
- Flowcharts — Implement application logic flow
- Pseudocode — Plan logic before writing code
- Sequence Diagrams — Object interaction ordering
- Frontend and Backend — UI, APIs, business logic, and database
- Does the code match the approved architecture?
- Are coding standards enforced via peer reviews?
- Are edge cases and null values handled?
- Is unit test coverage adequate?
- Is pseudocode drafted before coding?
04 — Testing
Systematically verify that the system meets every requirement. Find and eliminate defects before they reach real users in production.
- Unit Testing — Individual component correctness
- Integration Testing — Combined module behavior
- System Testing — Full end-to-end flows
- UAT — User acceptance validation
- Performance Testing — Load, stress, and scalability
- Are ALL use cases covered by tests?
- Are non-functional requirements validated?
- Are test cases traceable to requirements?
- Is regression testing automated?
- Has the product owner signed off on UAT?
05 — Deployment
Move the tested system into the live production environment. Configure infrastructure, run migrations, activate monitoring, and execute the go-live plan.
- Environment Setup — Servers, configurations, and secrets
- Database Migration — Schema and seed data
- CI/CD Pipeline — Automated release processes
- Smoke Testing — Post-deployment verification
- Rollback Plan — Defined revert strategy
- Is a rollback strategy clearly defined?
- Are monitoring and alerts active?
- Is the deployment window communicated to stakeholders?
- Are secrets and configurations secured?
- Is data migration reversible?
06 — Maintenance
Monitor and keep the system healthy. Respond to user feedback, patch production bugs, and feed learnings into the next SDLC iteration.
- Corrective — Fix reported production bugs
- Adaptive — Adjust to environment changes
- Perfective — Performance improvements
- Preventive — Refactoring and reducing tech debt
- Is monitoring surfacing real issues early?
- Is user feedback channeled into the backlog?
- Are hotfixes following a proper process?
- When does the next SDLC cycle start?
Analysis & Design Workflow
- Vision
- Functional Requirements
- Non-Functional Requirements
- Constraints
- Assumptions
- Define system boundaries
- Identify core entities
- Map domain relationships
- Establish scope limits
- Mission use-case
- System use-cases
- List all Actors
- Activity diagrams
- Decompose architecture
- Define components
- Map interfaces
- Select patterns
- Infrastructure setup
- CI/CD pipeline
- Environment config
- Go-live plan
Decision Flow System
→ Return to Analysis. Re-engage stakeholders. Clarify vision and functional expectations before any design work begins.
→ Revisit Design. Decompose further. Validate the architecture against requirements again before resuming development.
→ Return to Design. Add missing actors, flows, or edge cases. Re-model before writing a single line of code.
→ Return to Development. Fix root cause — not the symptom. Re-run the full regression suite before resubmitting for QA.
→ Execute Rollback Plan. Investigate root cause. Fix in Development → re-test → redeploy with confidence.
→ Proceed to next phase. Document decisions and rationale. Notify stakeholders and update progress tracking.