- 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:
Post a Comment