Agile : the good and the ugly - B.Meyer

  • Software methodology is a tricky business because it is difficult to prove anything.
  • Authors use four kinds of argument: gut feeling, experience, logical reasoning and empirical analysis.
  • Experiential arguments are among the favorite tools of agile authors. The typical agile
    book is a succession of alternating general observations and personal anecdotes of
    project rescues/failures.
  • Ideally, we should use empirical analysis. Does pair programming lead to better
    results than code inspections? Is constant customer interaction preferable to a solid
    requirements process?
  • Agile ideas date back to the development of Extreme Programming in the 1990s, but
    reached fame with the appearance in 2001 of the “Agile Manifesto”.
  • Reading the Agile Manifesto on the previous page is enough to show that “Agile” is not
    just a collection of software techniques but a movement, an ideology, a cause.
  • The “Lean Software” draws to treat unused functionality as a “waste” (“waste minimization” is the core concern). “Kanban” seeks to minimize “work in progress”.
  • Just as scenarios (stories) and tests (TDD) are the agile replacement for Big Upfront Requirements, refactoring is the agile answer to Big Upfront Design.
  • A use case covers a full run through the system, going for example from browsing for a
    product on an E-commerce site to completing the order; a user story is a smaller unit of
    functionality expected by users.

Agile Assessment:

  New Not New
 Not Good Requirements are based on user stories:
- Stories are inadequate because they only document examples of system execution.
- Good requirements shoot for more abstract specifications, subsuming many different scenarios and supporting the development of flexible applications.
 Pair programming was introduced by the XP:
- it neglects the role of programmer personality (some excellent developers like to concentrate alone)
- Pair programming is not superior to other classical techniques such as code reviews
 Good - Team empowerment.
- Freezing of requirements during iterations.
 - Iterative development.
-  Recognize Changes and extensibility as important attributes to build a software.


Counterclaims against Agile advocates:
  • Verbal communication is a complement to written documents, not a replacement.

No comments: