Code-and-Fix Model
Definition
The simplest (and oldest) software process: developers write code based on a rough idea, then fix problems as they're discovered, with no formal planning, design, or documentation phase.
Steps
- Build a quick version of the product
- Modify it (fix bugs/add features) until the customer is satisfied
- Repeat step 2 as needed
┌─────────┐ ┌──────┐
│ Code │ ───▶ │ Fix │ ───▶ (repeat)
└─────────┘ └──────┘
Characteristics
- No requirements analysis or design phase
- No formal testing plan
- Documentation, if any, is an afterthought
- Fast to get something running initially
Advantages
- Very fast for small, simple, or throwaway programs
- Minimal overhead — good for prototypes, student projects, quick scripts
- No process overhead needed for trivial problems
Disadvantages
- Not scalable — becomes unmanageable as size/complexity grows
- Expensive to maintain — no design means every fix risks breaking something else
- No way to assess progress or quality objectively
- High risk of poor structure ("spaghetti code")
- Directly associated with causing the software crisis when used on large projects
When to Use
- Small, one-off scripts or experiments
- Prototypes meant to be discarded
- Never recommended for large-scale, production, or safety-critical software
Exam tip: Often asked as "the oldest/most primitive model" — contrast directly with the Waterfall model's formal phases.