SWDev Story

SWDev Story: Development Process

waterfall, iterative, agile, scrum

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:
  1. Individuals and interactions over processes and tools.
  2. Working software over comprehensive documentation.
  3. Customer collaboration over contract negotiation.
  4. 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
ResourceDescription
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.