Software Process


Agile

For decades, software development was dominated by the Waterfall model, a sequential process where each phase—requirements, design, implementation, verification, and maintenance—had to be completed entirely before the next began. This “Big Upfront Design” approach assumed that requirements were stable and that designers could predict every challenge before a single line of code was written. However, this led to significant industry frustrations: projects were frequently delayed, and because customer feedback arrived only at the very end of the multi-year cycle, teams often delivered products that no longer met the user’s changing needs.

In Waterfall, feedback from the customer only appears at the very end — after months or years of work:

Detailed description

UML state machine diagram with 5 states (Requirements, Design, Implementation, Testing, Maintenance). Transitions: the initial pseudostate transitions to Requirements; Requirements transitions to Design on sign-off; Design transitions to Implementation on sign-off; Implementation transitions to Testing on code complete; Testing transitions to Maintenance on release; Maintenance transitions to the final state.

States

  • Requirements
  • Design
  • Implementation
  • Testing
  • Maintenance

Transitions

  • the initial pseudostate transitions to Requirements
  • Requirements transitions to Design on sign-off
  • Design transitions to Implementation on sign-off
  • Implementation transitions to Testing on code complete
  • Testing transitions to Maintenance on release
  • Maintenance transitions to the final state

Agile inverts this: the team delivers a small working increment every one to four weeks and lets customer feedback reshape each subsequent iteration — the feedback loop closes in weeks, not years.

Agile Manifesto

In 2001, a group of software experts met in Utah to address these failures, resulting in the Agile Manifesto. Rather than a rigid rulebook, the manifesto proposed a shift in 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 While the authors acknowledged value in the items on the right, they insisted that the items on the left were more critical for success in complex environments.

Core Principles

The heart of Agility lies in iterative and incremental development. Instead of one long cycle, work is broken into short, time-boxed periods—often called Sprints—typically lasting one to four weeks. At the end of each sprint, the team delivers a “Working Increment” of the product, which is demonstrated to the customer to gather rapid feedback. This ensures the team is always building the “right” system and can pivot if requirements evolve. Key principles supporting this include:

  • Customer Satisfaction: Delivering valuable software early and continuously.
  • Simplicity: The art of maximizing the amount of work not done.
  • Technical Excellence: Continuous attention to good design to enhance long-term agility.
  • Self-Organizing Teams: Empowering developers to decide how to best organize their own work rather than acting as “coding monkeys”.

Common Agile Processes

The most common agile processes include:

  • Scrum: The most popular framework using roles like Scrum Master, Product Owner, and Developers.
  • Extreme Programming (XP): Focused on technical excellence through “extreme” versions of good practices, such as Test-Driven Development (TDD), Pair Programming, Continuous Integration, and Collective Code Ownership
  • Lean Software Development: Derived from Toyota’s manufacturing principles, Lean focuses on eliminating waste

Practice This

Use the flashcards to retrieve the process vocabulary, then use the quiz to decide which process assumptions fit realistic project contexts.

Software Process & Agile Flashcards

Concepts, history, and trade-offs of software processes — Waterfall, Agile, the Manifesto, iterative-incremental development, and major Agile frameworks (Scrum, XP, Lean).

Difficulty: Basic

What is the Waterfall model, and why did it fall out of favor?

Difficulty: Basic

What are the four values of the Agile Manifesto?

Difficulty: Basic

What does iterative and incremental development mean?

Difficulty: Intermediate

Why is late customer feedback Waterfall’s most costly failure mode?

Difficulty: Intermediate

Distinguish iterative from incremental delivery.

Difficulty: Basic

Name three of the key Agile principles beyond the four values.

Difficulty: Intermediate

Compare Scrum, XP, and Lean Software Development.

Difficulty: Advanced

When is Waterfall still the right choice?

Difficulty: Intermediate

What is cargo-cult Agile?

Difficulty: Intermediate

What does ‘responding to change over following a plan’ actually mean for a working team?

Difficulty: Intermediate

Why does simplicity (maximizing the work not done) appear as an Agile principle?

Difficulty: Advanced

Why must Agile teams invest in technical excellence even though working software is the primary measure of progress?

Difficulty: Basic

What is a Sprint (in Scrum) or Iteration (in XP)?

Difficulty: Basic

What is the role of self-organizing teams in Agile?

Difficulty: Expert

Why is choosing the right software process a context-dependent decision, not a universal answer?

Software Process & Agile Quiz

Apply software-process thinking to real situations — choose between Waterfall and Agile for a given domain, judge what 'over' means in the Agile Manifesto, recognize Agile anti-patterns, and reason about iterative-vs-incremental delivery.

Difficulty: Advanced

A team is building software for a Mars rover that must launch in 2 years, run autonomously for at least 5 more, and cannot receive software updates after the launch window closes. The product manager insists on Agile. What is the right pushback?

Correct Answer:
Difficulty: Intermediate

A consultant says “Agile means no documentation and no planning.” How would you respond, citing the Agile Manifesto?

Correct Answer:
Difficulty: Advanced

A team practices what they call Agile: they hold daily standups, run two-week sprints, and have a Scrum Master. But they also produce a 150-page requirements document up front, refuse to change any requirement once a sprint starts, and demo to the customer only at the end of the engagement. Diagnose what’s actually going on.

Correct Answer:
Difficulty: Intermediate

Which of these are core failures of Waterfall that Agile was designed to address? Select all that apply.

Correct Answers:
Difficulty: Intermediate

An Agile team is asked to estimate when they will be ‘done’ with a feature. They reply: “We’re delivering a working increment every 2 weeks; you can stop us whenever the product is good enough.” What Agile principle does this illustrate?

Correct Answer:
Difficulty: Basic

An organization’s leadership says: “Our developers are coding monkeys — we’ll tell them what to build.” A senior engineer says this violates a core Agile principle. Which one?

Correct Answer:
Difficulty: Intermediate

Compare Scrum, XP, and Lean Software Development at the highest level. Which framing is most accurate?

Correct Answer:
Difficulty: Intermediate

A startup CEO says: “We’re Agile, so we don’t need any plans — we just react to customer feedback every two weeks.” What’s the right correction?

Correct Answer:
Difficulty: Expert

A team’s product owner wants to demo working software to the customer every iteration but the engineering manager pushes back: “Two-week iterations are too short to produce anything demonstrable.” Which Agile principle does the engineering manager’s view violate, and what’s the right architectural response?

Correct Answer:
Difficulty: Advanced

A team is in iteration 7 of 12. Halfway through the iteration, the customer comes back with a high-priority requirement change that affects work already in progress. How should the team respond per Agile values?

Correct Answer: