CACS407 Software Project Management

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:Decommission

Key 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.

software development life cycle phases diagramA 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"| A

C. 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"| A

D. 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"| A

Comparison 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:
    1. Cycle 1: Define core sensors + basic dashboard (risk: sensor accuracy).
    2. Cycle 2: Add AI for predictions (risk: false positives in alerts).
    3. 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

  1. 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.").
  2. Use tables for comparisons: Examiners love structured comparisons (e.g., waterfall vs. agile).
  3. Tie to real-world examples: Always link models to Nepalese companies (e.g., "Like Daraz, projects with dynamic requirements should use agile.").
  4. 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.").
  5. 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.").
  6. 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…