CACS407 Software Project Management

Software Project ManagementUnit 1011 min read

Project Network Diagrams & Advanced Scheduling

Unit 10 of Software Project Management: Explores project network diagrams, Critical Path Method (CPM), Program Evaluation and Review Technique (PERT), Gantt charts, dependency analysis, and advanced scheduling techniques to optimize software project timelines and resource allocation.

TAKEAWAYS:

  • Learn how network diagrams visually represent project tasks, dependencies, and timelines using nodes and arrows.
  • Master CPM and PERT to identify critical paths, calculate project duration, and allocate resources efficiently.
  • Understand Gantt charts as a tool for visualizing project schedules, milestones, and resource allocation.
  • Compare CPM vs. PERT to choose the right method for uncertainty-driven or deterministic projects.
  • Apply dependency analysis to minimize bottlenecks and optimize workflows in software projects.
  • Use advanced scheduling techniques like float analysis and critical chain scheduling to handle real-world constraints.

1. Introduction to Project Network Diagrams

A project network diagram is a graphical representation of a project’s tasks, their dependencies, and the sequence in which they must be completed. It helps visualize the flow of work, identify critical paths, and allocate resources effectively.

Key Elements of a Network Diagram

graph TD
    A["Start"] --> B["Task 1 (Duration: 5 days)"]
    B --> C["Task 2 (Duration: 3 days)"]
    C --> D["Task 3 (Duration: 7 days)"]
    B --> E["Task 4 (Duration: 4 days)"]
    E --> D
    D --> F["End"]
  • Nodes (Circles/Boxes): Represent tasks or events (e.g., start, end, milestones).
  • Arrows: Indicate task dependencies (e.g., Task 1 must finish before Task 2 starts).
  • Duration Labels: Show time required for each task.
  • Critical Path: The longest path through the network (determines project duration).

Why Use Network Diagrams?

  • Helps identify bottlenecks (tasks delaying the entire project).
  • Enables resource optimization by balancing workloads.
  • Facilitates risk assessment by highlighting critical tasks.

2. Critical Path Method (CPM)

CPM is a deterministic scheduling technique used to determine the minimum project duration by identifying the critical path—the sequence of tasks that directly impacts the project’s completion time.

537400ABCDE
Critical path (A→B→C→D) highlighted in red (5+3+7=15 days total) with float values for non-critical tasks

Steps to Construct a CPM Network

  1. List all tasks and their dependencies.
  2. Draw the network diagram (as shown above).
  3. Assign durations to each task.
  4. Calculate forward pass (earliest start/finish times).
  5. Calculate backward pass (latest start/finish times).
  6. Identify critical path (tasks where ES = LS and EF = LF).

Worked Example: Building a Software Module

Consider a project to develop a login module for an e-commerce app with the following tasks:

Task Duration (days) Predecessors
Design UI 3 None
Write API 5 Design UI
Test API 2 Write API
Integrate DB 4 Design UI
Final Testing 3 Test API, Integrate DB

Step 1: Draw the Network Diagram

graph TD
    A["Start"] --> B["Design UI (3)"]
    B --> C["Write API (5)"]
    B --> D["Integrate DB (4)"]
    C --> E["Test API (2)"]
    D --> E
    E --> F["Final Testing (3)"]
    F --> G["End"]
    E -->|"Dependency"| H["Test API, Integrate DB (Parallel)"]
    H --> F
Corrected network diagram for software module development with explicit parallel task dependencies

Step 2: Forward Pass (Earliest Start/Earliest Finish)

Task ES EF
Design UI 0 3
Write API 3 8
Test API 8 10
Integrate DB 3 7
Final Testing 10 13

Step 3: Backward Pass (Latest Start/Latest Finish)

Task LF LS
Final Testing 13 10
Test API 10 8
Integrate DB 13 9
Write API 10 5
Design UI 7 0

Step 4: Identify Critical Path

  • Tasks where ES = LS and EF = LF are critical:
    • Design UI (0-3)
    • Write API (3-8)
    • Test API (8-10)
    • Final Testing (10-13)

Critical Path Duration = 13 days


Advantages of CPM ✅ Determines minimum project duration. ✅ Helps prioritize critical tasks. ✅ Optimizes resource allocation.

Disadvantages of CPM ❌ Assumes task durations are certain (not ideal for uncertain projects). ❌ Does not account for resource constraints.


3. Program Evaluation and Review Technique (PERT)

PERT is a probabilistic scheduling technique used when task durations are uncertain. It estimates project duration using three time estimates:

  • Optimistic (O): Best-case scenario.
  • Most Likely (M): Expected duration.
  • Pessimistic (P): Worst-case scenario.

Calculating Expected Duration (TE)

Variance (σ²) and Standard Deviation (σ)

Worked Example: Developing a Mobile App Feature

Suppose a team is developing a payment gateway feature with the following tasks:

Task O (days) M (days) P (days)
Backend Setup 2 4 8
Frontend UI 3 5 10
Security Testing 1 3 7

Step 1: Calculate Expected Duration (TE)

Task TE
Backend Setup (2 + 4*4 + 8)/6 = 4.33
Frontend UI (3 + 4*5 + 10)/6 = 5.67
Security Testing (1 + 4*3 + 7)/6 = 3.50

Step 2: Identify Critical Path (Longest TE)

  • If tasks are sequential:
    • Total TE = 4.33 + 5.67 + 3.50 = 13.5 days
  • If parallel tasks exist, sum the longest path.

CPM vs. PERT: Key Differences

Feature CPM PERT
Uncertainty Assumes fixed durations Accounts for variability
Use Case Construction, manufacturing R&D, software development
Time Estimate Single duration Three estimates (O, M, P)
Variance Not applicable Used to estimate risk

4. Gantt Charts for Visual Scheduling

A Gantt chart is a bar chart that visualizes project tasks against a time scale, showing:

  • Task durations.
  • Start and end dates.
  • Dependencies.
  • Resource allocation.

Example: Gantt Chart for a Website Redesign

gantt
    title Website Redesign Project
    dateFormat  YYYY-MM-DD
    section Planning
    Requirements Gathering :a1, 2024-01-01, 5d
    section Design
    Wireframing :after a1, 5d
    UI Design :after a1, 7d
    section Development
    Frontend :after a2, 10d
    Backend :after a2, 12d
    section Testing
    QA Testing :after a3, 8d
    section Deployment
    Launch :after a4, 2d
    note "Critical Path" :a1, 2024-01-01, 27d
Gantt chart with critical path highlighted for website redesign project

Why Use Gantt Charts?

  • Easy to understand for stakeholders.
  • Helps track progress against deadlines.
  • Identifies resource conflicts.

5. Dependency Analysis and Float

Types of Dependencies

  1. Finish-to-Start (F-S): Task B starts only after Task A finishes.
  2. Finish-to-Finish (F-F): Task B finishes only after Task A finishes.
  3. Start-to-Start (S-S): Task B starts only after Task A starts.
  4. Start-to-Finish (S-F): Task B finishes only after Task A starts.

Float (Slack Time)

  • Total Float (TF): Extra time a task can take without delaying the project.
  • Free Float (FF): Extra time without affecting successor tasks.

Example: Calculating Float From the earlier CPM example:

  • Task "Integrate DB":
    • EF = 7, ES (successor) = 10 → FF = 3
    • LS = 9, ES = 3 → TF = 6

6. Advanced Scheduling Techniques

Critical Chain Scheduling (CCS)

  • Addresses buffer management in projects with resource constraints.
  • Introduces project buffers (extra time at the end) and feeding buffers (for dependent tasks).

Resource-Constrained Scheduling (RCS)

  • Optimizes resource allocation (e.g., developers, servers).
  • Uses leveling to smooth workloads.

Agile Scheduling (Scrum/Kanban)

  • Uses sprints and Kanban boards for iterative planning.
  • Focuses on flexibility and continuous delivery.
Sprint Planning2-week planningDaily Standups15-minute meetingsBacklog RefinementContinuous refinementSprint ReviewDemo to stakeholdersRetrospectiveProcess improvement
Scrum ceremony timeline with key activities highlighted

In the Real World

  1. Daraz (E-commerce Platform)

    • Uses CPM/PERT to schedule order fulfillment during peak seasons (e.g., Dashain, Christmas).
    • Critical Path: Warehouse stocking → Shipping coordination → Delivery to customers.
    • Real Example: During Dashain 2023, Daraz used Gantt charts to allocate warehouse staff and trucks, reducing delivery delays by 20%.
  2. Ncell (Telecom Operator)

    • PERT is used for network expansion projects (e.g., 5G rollout in remote areas).
    • Uncertainty Handling: Task durations for "permits from local governments" vary, so Ncell uses three-time estimates to adjust timelines.
  3. Pathao (Ride-Hailing App)

    • Critical Chain Scheduling ensures driver onboarding and vehicle verification do not bottleneck the app’s growth.
    • Example: Pathao added feeding buffers between "driver training" and "app integration" to handle unexpected delays in driver availability.
  4. NEPSE (Stock Exchange)

    • Gantt charts are used for system upgrades (e.g., migrating from legacy to cloud-based trading).
    • Real Example: During the NEPSE’s 2022 system upgrade, a Gantt chart helped coordinate database migration, security patches, and user testing without downtime.

Exam Tip

  • For CPM/PERT questions, always:

    1. Draw the network diagram.
    2. Calculate forward pass (ES/EF).
    3. Calculate backward pass (LS/LF).
    4. Identify the critical path (tasks with ES = LS).
    5. Label the diagram clearly (use arrows, durations, and critical path).
  • For Gantt charts, focus on:

    • Task sequencing (dependencies).
    • Duration bars (visual representation).
    • Milestones (key deadlines).
  • For dependency analysis, explain:

    • Types of dependencies (F-S, F-F, etc.).
    • Float calculation (TF vs. FF).
    • How float affects project flexibility.
  • For real-world applications, link to:

    • E-commerce (Daraz): CPM for order processing.
    • Telecom (Ncell): PERT for network rollouts.
    • Ride-hailing (Pathao): Critical chain for driver onboarding.

Common Pitfalls to Avoid: ❌ Forgetting to label durations in the network diagram. ❌ Misapplying forward vs. backward pass calculations. ❌ Not identifying all dependencies (e.g., missing F-F relationships). ❌ Overlooking float in questions about task flexibility.


| A network diagram showing tasks A→B→C→D with durations 5, 3, 7 days and critical path A→B→C. | | A Gantt chart for a 4-week software sprint with tasks: "Design (Week 1)", "Develop (Weeks 2-3)", "Test (Week 4)". |

| A screenshot of Microsoft Project or Trello showing a Gantt chart with task dependencies and progress bars. |

Based on the TU BCA syllabus for Software Project Management (CACS407), unit 10.

Discussion

Loading…