5.0 What is a Development Process?
A development process is an organized collection of activities, roles, and artifacts
designed to guide a team from requirements to deployed software. Processes answer
questions like: when do we design vs. code? how do we know when we are done? who
decides what to build next?
No process is right for every project. The key variables are:
- Team size - a solo developer needs almost no process;
a hundred-person team needs significant coordination structure.
- Requirements stability - if requirements are fixed and
well-understood, a plan-driven approach works; if they change frequently,
an adaptive approach is needed.
- Risk tolerance - some projects (medical devices, aerospace)
require exhaustive upfront specification; others (consumer apps) can ship
early and iterate.
5.1 Waterfall
Waterfall is a sequential, plan-driven process. Each phase completes before the
next begins. The phases are:
Requirements -> Design -> Implementation -> Testing -> Deployment
|
Maintenance
Key properties:
- Each phase produces a document or artifact that is the input to the next.
- Changes to an earlier phase are expensive once the later phases have started.
- The full system is not visible until late in the cycle.
Waterfall - Pros and Cons
| Notes |
| Pros |
Predictable schedule and cost if requirements are stable; clear milestones;
complete documentation at each phase; easy to manage with fixed contracts.
|
| Cons |
Requirements rarely stay stable; working software is not available until
late; defects found in testing are expensive to fix; customers do not see
the product until it is nearly complete.
|
| Best for |
Projects with stable, well-understood requirements and high cost of change -
embedded systems, safety-critical software, regulatory environments.
|
5.2 Iterative Development
Iterative development repeats the waterfall phases in short cycles (iterations).
Each iteration produces a working (though incomplete) version of the system.
Requirements and design evolve as the team learns from earlier iterations.
Iteration 1: core features -> working v0.1
Iteration 2: add search -> working v0.2
Iteration 3: add output fmt -> working v0.3
...
Iteration N: polish -> v1.0 release
Iterative development de-risks large projects by delivering value early and
exposing design problems before they are too expensive to fix. The architecture
must be designed to accommodate change; a rigid structure makes later iterations
difficult.
5.3 Agile
Agile is a set of values and principles for iterative, customer-focused development,
defined in the
Agile Manifesto (2001).
The four values:
- Individuals and interactions over processes and tools.
- Working software over comprehensive documentation.
- Customer collaboration over contract negotiation.
- Responding to change over following a plan.
Agile is not a single process - it is a philosophy. Scrum, Kanban, and Extreme
Programming (XP) are specific process frameworks that follow agile principles.
Common agile practices include:
- Short iterations (one to four weeks) that each deliver tested, working code.
- Frequent customer or stakeholder review and feedback.
- Cross-functional teams that include design, development, and testing.
- Continuous integration - code is integrated and tested frequently,
not once at the end of a phase.
5.4 Scrum
Scrum is the most widely used agile framework. It organizes work into fixed-length
sprints (one to four weeks). Each sprint delivers a potentially
shippable increment.
Scrum roles:
- Product Owner - prioritizes the product backlog (the list of
all desired features and fixes) and defines acceptance criteria.
- Scrum Master - coaches the team, removes blockers, and
ensures the process is followed.
- Development Team - self-organizing group that builds the
increment during each sprint.
Scrum events:
- Sprint Planning - team selects items from the backlog for
the upcoming sprint and plans how to implement them.
- Daily Scrum - short daily standup: what did I do yesterday,
what will I do today, what is blocking me.
- Sprint Review - team demonstrates the working increment to
stakeholders and collects feedback.
- Sprint Retrospective - team reflects on process: what went
well, what could improve, what to try next sprint.
5.5 References
Development Process References
| Resource | Description |
| Agile Manifesto |
Original four values and twelve principles of agile development. |
| Scrum Guide |
The official Scrum Guide - roles, events, artifacts, and rules. |
| Atlassian - Scrum |
Practical introduction to Scrum ceremonies, roles, and artifacts with examples. |
| SW Deploy Bites: Process |
Detailed process comparison table from the Deploy Bites sequence in this track. |