Thursday, April 10, 2014

Agile in a Flash 20

Agile in a Flash by Jeff Langr and Tim Ottinger (card #20)

> Defer alternate paths, edge cases, or error cases
> Defer supporting fields
> Defer side effects
> Stub dependencies
> Split operationally (for example, CRUD)
> Defer nonfunctional aspects
> Verif y against audit trail
> Defer variant data cases
> Inject dummy data
> Ask the customer
--

Deliver completed stories in each iteration. Avoid XL (extra large) stories that “go dark,” requiring many iterations before you can show completed product. Consider splitting off alternate paths, edge cases, or error cases, using acceptance tests to delineate each. (But remember, they must still show business value.)

In many cases, you can split off secondary details: supporting data fields (distill to a few core fields), input validation (assume the input data is perfect), or side effects (worry later about, for example, impacts to downstream feeds). You might similarly defer nonfunctional constraints (such as logging, graceful error handling, performance, or auditing) and variant data cases (for example, have a
shipping system send all packages to the same address).

Here are some other options for putting those XL stories on a diet:
> “Fake it until you make it,” by stubbing dependencies on third-party systems or by injecting dummy data and doing data collection stories later.
> Split along CRUD (Create, Read, Update, Delete) boundaries. You don’t have to build “create” stories first!
> Use audit trails (or logs) to verify progress not visible to the user.

Finally, ask your customer—don’t be surprised if they come up with an even

better idea for breaking down your bloated stories!

No comments:

Post a Comment