Note how, by doing this work (developing the data dictionary), we also explicitly thought through and detailed many nuances: mandatory fields, format specifics, which translate into important requirements for how to collect this information in forms and how to correctly display it. Without explicit focus on the data dictionary, predicting the fate of such requirements is hard: an analyst might consider them, but it’s unclear how timely or thorough that would be — it depends on how the planets align.
What else does the data dictionary provide? It’s a single source that helps keep behavioral requirements consistent. Without it, here’s what could happen: when working on the Order creation form (User Story for creating an order), I’d think “dear stakeholder, let’s figure out what the user needs to enter and how.” Later, when detailing order editing — I’d repeat the same work; when detailing how to display the order to admins — again the same process (“what useful info do we show here?”). This is a breeding ground for inconsistencies: something collected from the user might not be displayed, or vice versa; optional info entered might not be handled correctly when shown, etc.
Having a central data dictionary greatly eases this and drastically reduces such errors. You always have one place with info on whether a parameter can be empty, its type and format, how it’s calculated, and so on.
US01 Creating a Product
As an admin, I want to be able to add a product to the system so that it becomes available for customers to order.
Acceptance criteria:
1) When viewing the product list, I can open the form to add a new product.
2) To add a new product, I must specify the following parameters:
- Name (link to the Title attribute for Product).
- The system does not allow me to enter text longer than the maximum length (described via attribute link).
- Description (link to the Description attribute for Product).
- The system does not allow me to enter text longer than the maximum length (described via attribute link).
- Price (link to the Price attribute for Product).
- If I attempt to enter a price outside the allowed range (described via attribute link), the system will shout at me.
3) If I do not provide any of these parameters and try to add the product, the system screams.
4) I can also add an image for the product (link to the Image attribute for Product).
- The system allows me to add images only in the specified format (described via attribute link).
- If I attempt to add an image file exceeding the maximum size (described via attribute link), the system swears at me.