SDLC Models
Part of Software Engineering
Software Development Life Cycle (SDLC)
SDLC is a structured process for building software that ensures quality, meets requirements, and is delivered on time and within budget. It encompasses all activities from initial concept to maintenance and support.
Why SDLC Matters
Following a proper SDLC is like having a blueprint for construction. It provides structure, reduces risks, ensures quality, and helps teams deliver software that actually meets user needs. Without it, projects often fail due to scope creep, poor quality, or missed deadlines.
SDLC Phases
The software development life cycle typically consists of seven main phases, each with specific activities and deliverables.
Communication
Key Role:
Project Manager / Business Analyst
Description
Initial project initiation and requirement gathering
Activities
- Project initiation meeting
- Stakeholder identification
- Feasibility study
- Scope definition
Deliverables
- Project charter
- Initial requirement document
- Feasibility report
Planning
Key Role:
Project Manager
Description
Detailed project planning and resource allocation
Activities
- Project planning
- Resource allocation
- Risk assessment
- Cost estimation
- Schedule creation
Deliverables
- Project plan
- Risk management plan
- Budget estimate
- Schedule
Modeling/Analysis
Key Role:
System Architect / Designer
Description
System design and architecture planning
Activities
- Requirement analysis
- System design
- Architecture planning
- UI/UX design
- Database design
Deliverables
- SRS document
- System design document
- Architecture diagram
- Wireframes
Construction/Implementation
Key Role:
Software Developer
Description
Actual coding and development of the software
Activities
- Coding
- Unit testing
- Code review
- Integration
- Version control
Deliverables
- Source code
- Unit test cases
- Technical documentation
- Build artifacts
Testing
Key Role:
QA Engineer / Tester
Description
Verification and validation of the software
Activities
- Test planning
- Test case development
- Test execution
- Bug reporting
- Performance testing
Deliverables
- Test plans
- Test cases
- Bug reports
- Test summary report
Deployment
Key Role:
DevOps Engineer
Description
Release and installation of software in production
Activities
- Deployment planning
- Environment setup
- Data migration
- User training
- Go-live
Deliverables
- Deployed system
- User manuals
- Training materials
- Release notes
Maintenance
Key Role:
Support Engineer
Description
Post-deployment support and enhancements
Activities
- Bug fixing
- Performance monitoring
- Updates and patches
- Enhancements
- User support
Deliverables
- Maintenance logs
- Patch releases
- Performance reports
- Support tickets
Types of Requirements
Requirements define what needs to be built. They are categorized into functional and non-functional requirements.
Functional Requirements
What the system should do - specific behaviors and functions
Examples
Format
User stories, use cases, functional specifications
Verification
Unit testing, integration testing
Non-Functional Requirements
How the system should perform - quality attributes
Examples
Format
Technical specifications, SLA documents
Verification
Performance testing, security testing
Requirements Specification Example
Functional Requirement
User Story: As a registered user, I want to reset my password so that I can regain access to my account if I forget it.
- • Password reset link sent to registered email
- • Link expires after 24 hours
- • Password must meet security requirements
Non-Functional Requirement
Performance Requirement: The password reset page must load within 2 seconds for 95% of users under normal load conditions.
- • Response time: < 2 seconds
- • Availability: 99.9% uptime
- • Security: HTTPS encryption required
Process Models
Different approaches to organizing and executing the software development process.
Scrum Framework
Scrum is an Agile framework for managing complex software development projects.
Scrum Roles
Product Owner
Represents stakeholders and business, manages product backlog
Responsibilities
- Define product vision
- Prioritize backlog items
- Accept or reject work results
- Communicate with stakeholders
Key Skills
Scrum Master
Facilitates Scrum process, removes impediments, ensures team follows practices
Responsibilities
- Facilitate Scrum events
- Remove obstacles
- Coach team on Scrum
- Protect team from distractions
Key Skills
Development Team
Cross-functional team that delivers product increments
Responsibilities
- Plan sprint work
- Design and develop features
- Test and integrate
- Maintain quality standards
Key Skills
Scrum Artifacts
Product Backlog
Ordered list of everything needed in the product
Content
User stories, features, enhancements, bug fixes
Management
Owned by Product Owner, regularly refined
Sprint Backlog
Set of Product Backlog items selected for Sprint plus plan
Content
Tasks, estimated effort, assignment, progress
Management
Owned by Development Team, updated daily
Increment
Sum of all Product Backlog items completed during Sprint
Content
Working software, documentation, tests
Management
Must be in usable condition, potentially shippable
Scrum Events
Sprint Planning
4*8h-weekPurpose
Plan work for upcoming sprint
Participants
Scrum Team
Output
Sprint backlog, Sprint goal
Daily Scrum
15 minutesPurpose
Inspect progress toward Sprint Goal
Participants
Development Team, Scrum Master
Output
Updated plan for next 24 hours
Sprint Review
4*4h-weekPurpose
Inspect increment and adapt Product Backlog
Participants
Scrum Team, stakeholders
Output
Revised Product Backlog
Sprint Retrospective
Purpose
Plan improvements for next Sprint
Participants
Scrum Team
Output
Improvement plan
Tools & Software
Project Management
Jira
Agile project management and issue tracking
Key Features
- Scrum/Kanban boards
- Backlog management
- Sprint planning
- Reports
Pricing
Free for up to 10 users
Best For
Software development teams
ClickUp
All-in-one productivity platform
Key Features
- Tasks, Docs, Goals
- Time tracking
- Mind maps
- Custom views
Pricing
Free plan available
Best For
Teams needing flexibility
Trello
Visual collaboration tool
Key Features
- Kanban boards
- Cards and lists
- Power-ups
- Automation
Pricing
Free basic plan
Best For
Simple project tracking
Asana
Work management platform
Key Features
- Task management
- Timeline view
- Workflow automation
- Portfolios
Pricing
Free for up to 15 users
Best For
Cross-functional teams
Requirements Management
Confluence
Team collaboration and documentation
Key Features
- Requirements docs
- Meeting notes
- Knowledge base
- Integration with Jira
Pricing
Free for up to 10 users
Best For
Documentation and collaboration
Jama Connect
Requirements management and traceability
Key Features
- Requirements tracking
- Traceability matrix
- Compliance
- Reviews
Pricing
Enterprise pricing
Best For
Complex, regulated projects
IBM DOORS
Enterprise requirements management
Key Features
- Requirements capture
- Change management
- Impact analysis
- Reporting
Pricing
Enterprise pricing
Best For
Large-scale enterprise projects
Modeling & Design
Lucidchart
Diagramming and visualization
Key Features
- UML diagrams
- Flowcharts
- Wireframes
- Collaboration
Pricing
Free basic plan
Best For
Visual design and modeling
Draw.io
Free diagramming tool
Key Features
- Multiple diagram types
- Export options
- Integration
- Open source
Pricing
Completely free
Best For
Budget-conscious teams
Figma
Interface design and prototyping
Key Features
- UI/UX design
- Prototyping
- Design systems
- Collaboration
Pricing
Free for individuals
Best For
UI/UX designers
Jira vs ClickUp: Comparison
| Aspect | Jira | ClickUp |
|---|---|---|
| Primary Focus | Software development & Agile | All-in-one productivity |
| Agile Support | Excellent Native Scrum/Kanban, advanced reporting | Good Basic Agile features, flexible views |
| Learning Curve | Steep Complex setup, many configurations | Gentle Intuitive interface, easy to start |
| Customization | High (via add-ons) | Very High (built-in) |
| Integration | Excellent (3000+ apps) | Good (1000+ apps) |
| Best For | Software teams needing deep Agile features | Teams wanting all-in-one flexibility |
Common SDLC Mistakes
Skipping Requirements Phase
Jumping straight to coding without proper requirements leads to scope creep, rework, and unsatisfied stakeholders.
Ignoring Non-Functional Requirements
Focusing only on what the system does (functional) while ignoring how it performs (non-functional) leads to poor user experience and system failures.
Wrong Process Model Selection
Using Waterfall for rapidly changing requirements or Agile for highly regulated, fixed-scope projects leads to project failure.
Poor Tool Selection
Choosing complex tools for simple projects or simple tools for complex projects reduces productivity and increases frustration.
Best Practices
Stakeholder Involvement
Involve stakeholders throughout the process. Regular communication and feedback prevent misunderstandings and ensure the final product meets needs.
Clear Requirements
Document both functional and non-functional requirements clearly. Use user stories, acceptance criteria, and measurable quality attributes.
Right Process Model
Choose the process model based on project characteristics: Waterfall for stable requirements, Agile for changing requirements, Hybrid for mixed scenarios.
Appropriate Tools
Select tools that match your team size, process, and complexity. Don't over-complicate with enterprise tools for small projects.
Test Your SDLC Knowledge
Software Life Cycle Quiz
Question 1 of 6Which SDLC phase involves stakeholder identification and feasibility study?