Introduction
Building software can be complex and confusing without a clear plan. A software process helps organize the steps needed to create software, making the work smoother and more predictable.
Imagine building a house. You can either follow a strict plan from start to finish, build parts step-by-step improving as you go, or work closely with the owner to make changes quickly. Sometimes, you also check for risks like bad weather before continuing.
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ Requirements │──────▶│ Design │──────▶│ Implementation│
└───────────────┘ └───────────────┘ └───────────────┘
│ │ │
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ Testing │◀──────│ Delivery │◀──────│ Maintenance │
└───────────────┘ └───────────────┘ └───────────────┘
Waterfall Model Flow
Iterative and Agile models repeat these steps in cycles, while Spiral adds risk checks in loops.