Software Project ManagementUnit 211 min read
Software Life Cycles & Process Models: Models, Phases & Workflows
Unit 2 of Software Project Management explores the Software Development Life Cycle (SDLC) and process models (waterfall, iterative, agile, spiral), their phases, workflows, and real-world trade-offs. Learn how to choose the right model for projects, analyze their strengths/weaknesses, and apply them to case studies lik
TAKEAWAYS:
- The Software Development Life Cycle (SDLC) is a structured approach to planning, designing, building, testing, and deploying software, with 6 core phases: requirements, design, implementation, verification, maintenance, and retirement.
- Process models (waterfall, iterative, agile, spiral) define how work flows through SDLC phases—each has trade-offs between flexibility, cost, and risk.
- Waterfall is rigid and sequential; agile is iterative and adaptive. Choose based on project uncertainty, stakeholder needs, and budget constraints.
- Real-world tie: eSewa’s payment system uses an iterative model to handle frequent regulatory changes, while Daraz’s order queue relies on agile sprints for rapid feature updates.
- Critical failure point: Poor model selection (e.g., using waterfall for a research-heavy project) leads to scope creep, budget overruns, or abandoned projects (e.g., Nepal’s failed e-Governance portal in 2010).
- Exam focus: Compare models in tables, trace a project through phases, and justify model choices for given scenarios (e.g., "Why would Ncell use spiral over agile?").
1. The Software Development Life Cycle (SDLC): Phases and Workflow
The SDLC is a structured framework for developing software, ensuring systematic progress from idea to deployment. It consists of 6 phases, each with clear deliverables and review points. Visualizing SDLC as a cycle (not a linear process) helps understand its iterative nature.
stateDiagram-v2
[*] --> Requirements:Gathering
Requirements:Gathering --> System:Design
System:Design --> Implementation:Development
Implementation:Development --> Verification:Testing
Verification:Testing --> Maintenance:Support
Maintenance:Support --> [*]
Maintenance:Support --> Retirement:DecommissionKey Phases Explained
| Phase | Key Activities | Deliverables | Real-World Example |
|---|---|---|---|
| Requirements | Gather stakeholder needs, analyze feasibility, document scope. | SRS (Software Requirements Specification) | eSewa’s payment flow: "Users must pay bills in 3 clicks." |
| System Design | Architect system components, define interfaces, and tech stack. | System Architecture Diagram (SAD) | Daraz’s order queue: "Use Kafka for event streaming." |
| Implementation | Code development, unit testing, and integration. | Source Code, Unit Test Reports | Ncell’s app: "Develop Android/iOS modules separately." |
| Verification (Testing) | Test for bugs, validate against requirements. | Test Cases, Bug Reports | NEPSE’s trading platform: "Load-test for 10K users." |
| Maintenance | Fix bugs, add features, optimize performance. | Patch Notes, Updated Documentation | Khalti’s app: "Monthly security updates." |
| Retirement | Decommission old systems, migrate data, archive. | Decommission Plan, Data Backup | Old NTC website: "Migrate to new portal in 2023." |
Why SDLC Matters
- Reduces risks: Early phase reviews catch issues before coding (e.g., Ncell’s app failed its first launch due to unclear requirements).
- Controls costs: Prevents scope creep (e.g., Daraz’s initial MVP cost $500K; adding features later would have doubled it).
- Ensures quality: Structured testing (e.g., NEPSE’s stress tests) prevents crashes during high-volume trading.
A labeled flowchart of SDLC phases with arrows showing iteration loops. (Image: Cliffydcw, CC BY-SA 3.0, via Wikimedia Commons)
2. Process Models: How Work Flows Through SDLC
Process models define how the SDLC phases are executed. The choice of model impacts flexibility, cost, and risk. Below are the 4 primary models, compared in a table.
A. Waterfall Model: Sequential and Rigid
- Workflow: Linear, one-phase-to-the-next (no iteration).
- Best for: Projects with clear, stable requirements (e.g., government portals like e-Governance).
- Pros:
- Simple to manage.
- Clear milestones and documentation.
- Cons:
- No going back (e.g., if requirements change in Phase 3, you must restart).
- High risk of failure if requirements are unclear.
flowchart LR
A["Requirements"] --> B["Design"]
B --> C["Implementation"]
C --> D["Testing"]
D --> E["Maintenance"]B. Iterative Model: Repeat Phases in Cycles
- Workflow: Repeat SDLC phases for partial deliverables (e.g., build a prototype, then refine).
- Best for: Projects needing early feedback (e.g., Pathao’s ride-hailing app).
- Pros:
- Early testing reduces risks.
- Adaptable to changes.
- Cons:
- Higher initial cost (repeating phases).
- Requires stakeholder availability.
flowchart TD
A["Requirements"] --> B["Design"]
B --> C["Implementation"]
C --> D["Testing"]
D -->|"Feedback"| AC. Agile Model: Incremental and Collaborative
- Workflow: Work in sprints (2–4 weeks), with continuous stakeholder input.
- Best for: Dynamic projects (e.g., Daraz’s daily feature updates).
- Pros:
- Fast delivery of working software.
- High customer satisfaction.
- Cons:
- Requires disciplined teams.
- Documentation can lag.
flowchart LR
A["Sprint 1"] --> B["Plan"]
B --> C["Develop"]
C --> D["Test"]
D --> E["Review"]
E -->|"Feedback"| AD. Spiral Model: Risk-Driven Iterations
- Workflow: Combine iterative development with risk analysis in each cycle.
- Best for: High-risk, complex projects (e.g., Ncell’s 5G network rollout).
- Pros:
- Identifies risks early.
- Balances flexibility and control.
- Cons:
- Expensive (requires risk analysis experts).
- Overkill for small projects.
flowchart TD
A["Plan"] --> B["Risk Analysis"]
B --> C["Engineer"]
C --> D["Evaluate"]
D -->|"Feedback"| AComparison Table: Process Models
| Model | Flexibility | Best For | Risk Handling | Documentation | Example in Nepal |
|---|---|---|---|---|---|
| Waterfall | Low | Stable requirements | Late (Phase 5) | High | e-Governance portal (2010) |
| Iterative | Medium | Prototyping | Early feedback | Medium | Pathao’s MVP |
| Agile | High | Dynamic, customer-focused | Continuous | Low | Daraz’s daily updates |
| Spiral | High | High-risk, complex | Proactive | High | Ncell’s 5G infrastructure |
3. Choosing the Right Model: A Worked Example
Scenario: Nepal’s National Traffic Management Center (NTMC) wants to develop a real-time traffic monitoring system for Kathmandu.
Step 1: Analyze Project Characteristics
- Requirements: Unclear (sensors, AI, user apps).
- Stakeholders: NTMC, government, citizens.
- Budget: Limited ($2M).
- Risk: High (traffic data is volatile; regulations may change).
Step 2: Evaluate Models
| Model | Fit? | Why/Why Not? |
|---|---|---|
| Waterfall | ❌ No | Requirements are unclear; no room for iteration. |
| Iterative | ✅ Yes | Can build prototypes (e.g., sensor networks) and refine based on data. |
| Agile | ⚠️ Maybe | Good for flexibility, but NTMC lacks agile expertise. |
| Spiral | ✅ Best | Combines iterative development with risk analysis (e.g., sensor reliability tests). |
Step 3: Recommendation
- Use Spiral Model:
- Cycle 1: Define core sensors + basic dashboard (risk: sensor accuracy).
- Cycle 2: Add AI for predictions (risk: false positives in alerts).
- Cycle 3: Integrate citizen feedback (risk: app usability).
- Why? Balances NTMC’s need for structure with the project’s high uncertainty.
4. Real-World Applications: Where These Models Are Used
A. eSewa’s Payment System: Iterative + Agile Hybrid
- Model Used: Iterative for core payment flow + agile for UI updates.
- Why?
- Iterative: Built a prototype (2016) to test bank integrations before full rollout.
- Agile: Daily sprints to fix bugs (e.g., failed transactions during Dashain).
- Outcome: 5M+ users; handles 10K transactions/minute.
B. Daraz’s Order Queue: Agile Sprints
- Model Used: Pure agile (2-week sprints).
- Why?
- Dynamic: Competitors (Amazon, Flipkart) force rapid feature additions (e.g., "Cash on Delivery in 1 hour").
- Customer feedback: Daily stand-ups with logistics teams to fix delays.
- Outcome: 95% order accuracy; 24/7 support.
C. Ncell’s 5G Rollout: Spiral Model
- Model Used: Spiral (4 cycles over 3 years).
- Why?
- High risk: 5G requires new infrastructure (towers, spectrum licensing).
- Risk analysis: Cycle 1 tested tower placement in Pokhara; Cycle 2 optimized for Kathmandu’s dense traffic.
- Outcome: 5G launched in 2023 with 90% coverage.
5. Common Pitfalls and How to Avoid Them
| Pitfall | Cause | Solution |
|---|---|---|
| Scope creep | Uncontrolled changes in requirements. | Use change control boards (e.g., Daraz’s product team approves new features). |
| Poor documentation | Agile teams skip docs. | Hybrid model: Agile for code, waterfall for docs (e.g., eSewa’s SRS). |
| Ignoring risks | Overconfidence in estimates. | Spiral model’s risk analysis (e.g., Ncell tested 5G towers before full rollout). |
| Wrong model selection | Choosing waterfall for a research project. | Rule of thumb: High uncertainty → agile/spiral; stable → waterfall. |
6. Exam Tip: How to Score Full Marks
- Define clearly: Start with precise definitions (e.g., "The waterfall model is a sequential SDLC process where each phase must be completed before the next begins.").
- Use tables for comparisons: Examiners love structured comparisons (e.g., waterfall vs. agile).
- Tie to real-world examples: Always link models to Nepalese companies (e.g., "Like Daraz, projects with dynamic requirements should use agile.").
- Trace a project through phases: For case studies, show how a model would handle each SDLC phase (e.g., "In the spiral model, Ncell’s 5G project would analyze risks in Cycle 1 before implementation.").
- Highlight trade-offs: Explain why a model is chosen (e.g., "Waterfall is cheaper for stable projects but risky for eSewa’s evolving payment rules.").
- Avoid vague answers: ❌ "Agile is flexible." ✅ "Agile’s 2-week sprints allow Daraz to update its order queue daily based on customer complaints."
Pro Tip: Memorize one Nepalese example per model (e.g., eSewa = iterative, Ncell 5G = spiral). Examiners love local context!
Based on the TU BCA syllabus for Software Project Management (CACS407), unit 2.
Discussion
Loading…