SE Notes
Planning timelines, dependencies, and milestones for software projects.
Project scheduling transforms a project plan into a time-bound sequence of activities with assigned resources, dependencies, and deadlines. While planning determines what needs to be done, scheduling determines when it will be done and by whom. A schedule makes commitments concrete—it tells stakeholders when they can expect deliverables and tells the team when each task must start and finish to meet the overall deadline. Poor scheduling leads to missed deadlines, resource conflicts, and the chronic overtime that burns out development teams.
Scheduling Fundamentals
Work Breakdown Structure (WBS) decomposes the project into manageable tasks. Each task should be small enough to estimate reliably (typically 1-5 days of effort) and assigned to one responsible person.
Dependencies define ordering constraints between tasks:
- Finish-to-Start (FS): Task B cannot start until Task A finishes (most common)
- Start-to-Start (SS): Task B cannot start until Task A starts
- Finish-to-Finish (FF): Task B cannot finish until Task A finishes
- Start-to-Finish (SF): Task B cannot finish until Task A starts (rare)
Resources are the people, equipment, and facilities available for task execution. Resource constraints may extend schedules—even if tasks have no dependencies, you cannot execute them in parallel if the same person must do both.
Critical Path Method (CPM)
CPM identifies the longest path through the project network—the sequence of dependent tasks that determines the minimum project duration. Tasks on the critical path have zero float (slack): any delay in these tasks directly delays the project.
Forward Pass calculates earliest start (ES) and earliest finish (EF) for each task. Backward Pass calculates latest start (LS) and latest finish (LF) from the project deadline. Float = LS - ES indicates how much a task can slip without affecting the project end date.
PERT Estimation
Program Evaluation and Review Technique uses three estimates per task to account for uncertainty:
| Example | Design phase |
| Optimistic | 10 days |
| Most Likely | 15 days |
| Pessimistic | 26 days |
| Expected | (10 + 60 + 26) / 6 = 16 days |
| SD | (26 - 10) / 6 = 2.67 days |
| 95% confidence | 16 ± (2 × 2.67) = 10.7 to 21.3 days |
Real-World Example: Mobile App Development Schedule
| Phase 1 | Foundation (Weeks 1-4) |
| Phase 2 | Core Development (Weeks 4-10) |
| Phase 3 | Testing & Polish (Weeks 10-14) |
| Phase 4 | Deployment (Weeks 14-16) |
| Critical Path: Architecture | Auth → Core Logic → API → Integration Testing → UAT → Submission |
| Minimum Duration | 16 weeks |
Schedule Compression Techniques
When the schedule is too long for business needs:
Crashing: Adding resources to critical-path tasks to reduce their duration. Has diminishing returns and increased cost. Adding a developer might reduce a 4-week task to 3 weeks, but adding four developers will not reduce it to 1 week (Brook's Law applies).
Fast-Tracking: Overlapping tasks that would normally be sequential. Starting coding before design is complete (risky—rework if design changes). Running testing in parallel with later development phases.
Scope Reduction: Removing lower-priority features to shorten the schedule. Often the most effective approach—delivering fewer features on time is better than delivering all features late.
Agile Scheduling
Agile teams schedule differently from traditional projects:
Release Planning: Broad roadmap showing which features are targeted for which release (quarterly horizons). Sprint Planning: Detailed commitment for the next 2-4 weeks based on team velocity. Daily Planning: Stand-up meetings adjust daily priorities based on progress and blockers.
The schedule emerges from measured velocity rather than upfront prediction—what the team actually completes per sprint predicts future delivery more reliably than initial estimates.
Common Scheduling Mistakes
Ignoring dependencies (scheduling parallel tasks that actually require sequential execution), padding uniformly (better to identify and pad high-risk tasks specifically), not accounting for non-development work (meetings, code reviews, deployments, support), optimistic estimation bias (developers consistently underestimate by 50-100%), and not tracking actual vs. planned to improve future estimates.
Schedule Monitoring
Track schedule health through: milestones met on time (percentage), schedule variance (planned vs. actual completion dates), burndown charts (work remaining vs. time remaining), and velocity trends (is the team accelerating or slowing?). Early warning indicators allow corrective action before delays become insurmountable.
Exam Focus
Revise definitions, diagrams, examples, and short-answer points for Project Scheduling.
Interview Use
Prepare one clear explanation, one practical example, and one common mistake for this Software Engineering topic.
Search Terms
software-engineering, software engineering, software, engineering, project, management, scheduling, project scheduling
Related Software Engineering Topics