Structured process for building and maintaining software from idea to retirement.
Structured processes ensure software is delivered reliably, on-time, and aligned with user needs.
#Phases
SLDC has many phases
- Planning
- Requirements Analysis
- Design
- Development
- Testing
- Deployment
- Operations & Maintenance
There are also extended phases
- Proof of Concept (PoC)
- Continuous Improvement
#Planning
aka Feasibility Study, Concept Phase, Project Initiation
- Define objectives, scope, stakeholders, and high-level requirements
- Assess feasibility (technical, financial, operational, etc.)
#Requirements Analysis
aka Business Analysis, Discovery, Requirement Engineering
- Collect functional & non-functional requirements
- functional: what the product does and how it behaves
- non-functional: more broad metrics (e.g. uptime, etc.)
- Document requirements in Software Requirements Specification (SRS)
#Design
aka System Design, Architecture & Modeling, Technical Design
- Translate requirements into system architecture
- High-level design (HLD): architecture, modules, data flow
- Low-level design (LLD): detailed algorithms, database schemas
#Development
aka Implementation, Coding, Programming
- Actual programming of the software
- Translate design and requirements into working code
- Integrating modules, building features
#Testing
aka Verification, Validation, Quality Assurance (QA)
- Ensure the software meets requirements.
- Types of testing
- Unit Testing
- Integration Testing
- System Testing
- User Acceptance Testing
- Regression Testing
#Deployment
aka Release, Delivery
- Delivering the product to the user environment
- Involves setting up servers, databases, and configurations
#Operations & Maintenance
aka Maintenance, Operations, Support
- Bug fixing, patching, performance tuning
- Performance monitoring
- Feature upgrades
- Adapting to new requirements
#Proof of Concept
aka Prototyping
- Building a mock-up or prototype before full development
- Common in Agile, Spiral, and Design Thinking
#Continuous Improvement
- Agile/Devops treat this as an ongoing cycle
- Integrates monitoring and user feedback after deployment
#Models
#Waterfall
Royce, 1970
- Linear, sequential process
- Clear documentation
- Rigid structure, inflexible to change
- Weakness: design issues found later intesting
#V-Model
Late 80s, early 90s
- Matches dev phases with test phases
- Focus on quality and testing early in the process.
- Weakness: still rigid, better for slow-changing requirements
#Spiral
Boehm, 1088
- Iterative cycles combining development + risk analysis
- Good for large, complex, or high-risk projects
- Weakness: can be costly and require strong risk management
#Agile
#Manifesto
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
#Methodologies
- Iterative, incremental delivery in short cycles.
- Focus on customer collaboration, adaptability, and continuous feedback
- Integrated with Devops: automation, CI/CD, and continuous improvement.
#Roles and Responsibilities
#Business Analyst / Product Owner
- Defines requirements & priorities
#Software Architect / Designer
- Creates system architecture & design
#Developer / Programmer
- Builds features & integrates components
#Tester / QA Engineer
- Verifies quality through testing
#Agile Coach
- Facilitates team process & removes blockers
#Devops Engineer
- Automates builds, testing, deployment, and monitoring
#UI/UX Designer
- Ensures usability and customer experience
#Site Reliability Engineer (SRE)
- Focuses on reliability, scalability, and performance.