| <?xml version="1.0" encoding="UTF-8"?> |
| <org.eclipse.epf.uma:ArtifactDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.3/uma.ecore" epf:version="1.0.0" xmi:id="-rtY57MTVQrEcfTKwD3-Wvw" name="xp_user_story,{21946731-4F5C-4862-8B4D-868629952B92}" guid="-rtY57MTVQrEcfTKwD3-Wvw" changeDate="2006-11-13T14:28:55.298-0800" version="1.0.0"> |
| <mainDescription><p> |
| A <a class="PresentationName" guid="{21946731-4F5C-4862-8B4D-868629952B92}">User Story</a> is only a token of past and |
| future conversation between the customer and the programmers. XP's on-site customer practice minimizes the need to |
| document extensively each story as the programmers can simply walk over and ask their questions to the customer as |
| needed. <a class="PresentationName" guid="{21946731-4F5C-4862-8B4D-868629952B92}">User Story</a> details are captured |
| in automated acceptance tests that are then used to validate the implementation of the story. |
| </p> |
| <p> |
| It may not be necessary to write a description for all stories as the name of some of the stories might already offer |
| enough information. |
| </p> |
| <p> |
| What makes a good <a class="PresentationName" guid="{21946731-4F5C-4862-8B4D-868629952B92}">User Story</a>? |
| </p> |
| <ul> |
| <li> |
| The customer should care about it. The story should have business value in the customer's eyes so it can be |
| prioritized. Sometimes a story needs to be broken down into smaller pieces to fit into an iteration. If by itself |
| the story does not provide business value, it should at least provide demonstrable progress toward a feature with |
| business value. |
| </li> |
| <li> |
| Stories vertically slice through the product's architecture. They are not usually focused on a specific subsystem. |
| </li> |
| <li> |
| Test cases can be written to verify that the programmers have implemented it correctly. |
| </li> |
| <li> |
| It can be reasonably estimated by the developers. Stories that can't be estimated are rewritten. |
| </li> |
| <li> |
| It can be completed within one iteration. A story that does not fit in an iteration is broken down into two or more |
| smaller stories. |
| </li> |
| </ul></mainDescription> |
| <purpose><a id="XE_user_story__artifact_definition" name="XE_user_story__artifact_definition"></a><a id="Purpose" |
| name="Purpose"></a><a id="XE_user_story__purpose_of" name="XE_user_story__purpose_of"></a> |
| <p> |
| A <a class="PresentationName" guid="{21946731-4F5C-4862-8B4D-868629952B92}">User Story</a> represents a small piece of |
| functionality of the system being built. It is not a complete specification of a feature. It is a promise to discuss a |
| feature or a reminder of the discussion that has already taken place. |
| </p></purpose> |
| <representationOptions><p> |
| Here are some sample stories for a typical on-line store application: |
| </p> |
| <p> |
| --------------------------------------------------------------------------------<br /> |
| If the customer has entered a valid Tax Exemption ID, do not charge sales tax. |
| </p> |
| <p> |
| --------------------------------------------------------------------------------<br /> |
| If the Customer ID is on the Preferred Customer list, do not charge for shipping, except for Next Day service. |
| </p> |
| <p> |
| --------------------------------------------------------------------------------<br /> |
| On the System Status Page, show the number of orders in the past 24 hours, the total revenue, and list the top ten |
| items in order of quantity ordered. |
| </p> |
| <p> |
| --------------------------------------------------------------------------------<br /> |
| If the delivery address of a purchase is in any of the states in the attached table, calculate, display, and charge |
| sales tax using the corresponding percentage. |
| </p></representationOptions> |
| </org.eclipse.epf.uma:ArtifactDescription> |