A
UserStory that is really a generator of
UserStories. For example:
- The product will load-balance many servers.
- All communications between these servers will be crypto-secured.
- The bridges will all feed the log-server.
- The product will be easy to use
- Availability will be 99.98% (one well known company in financial information systems always specifies this number since TomGilb came by but nobody is quite sure exactly what it means, so it's still a MotherhoodStory until that's explained)
- ...
The strength of this idea is that
MotherhoodStorys are invaluable clues to real (hard) requirements - which in XP are
UserStories. The name seems to capture this nicely.
See
PlanningGame,
MotherhoodStatement,
XpFixedPlanningGame.
Q: I am faced with a few
MotherhoodStorys on my current project. Can anyone give more detail on how these might be broken down into 3-week
UserStorys? In particular, some appear at first glance to be atomic
MotherhoodStory's -- the product won't really be 'deliverable' until the entire story is complete.
Particulars: We are building a distributed filesystem, with real-time constraints driven by a few key applications. Thus, as per the above example,
The product will load-balance many servers is one story. Another is
Client application X will be able to play media at aggregate bandwidth Y from the filesystem. Finally the rather large
The filesystem will support the full set of filesystem APIs on platforms A, B, and C.
To be fair, the filesystem API story is relatively easy to break down -- there are nicely separable features of the filesystem. So this one just has the atomic
MotherhoodStory problem.
But the
Client X aggregate bandwidth Y story is almost a
FunctionalTest specification. How do I get estimable
UserStorys out of this?
Any guidance in the
OneTrueWayOfXp is greatly appreciated.
--
GarthDickie
Sure. Just play the
XpFixedPlanningGame.
OK, here is an idea. You can split the bandwidth story at least in two:
- Client X can play media.
- Client X can do so at aggregate bandwidth Y.
The first one is a pretty standard
UserStory. The second one is at least testable. It can be split further like so:
- Aggregate bandwidth is at least Y/10
- Aggregate bandwidth is at least Y/5
- Aggregate bandwidth is at least Y/2
- Aggregate bandwidth is at least Y
I think the point is that each increase in bandwidth should be a rather minor optimization. [Disclaimer: I don't know where I'm talking about.]
--
StephanHouben
CategoryStories