For teams that are applying agile strategies to Data Warehouse (DW)/Business Intelligence (BI) development is it fairly common for them to take a Disciplined Agile (DA) Approach to DW/BI due to DA’s robustness. A common question that comes up is how do you write user stories for DW/BI solutions? Here are our experiences.
First, user stories should focus on business value. In general, your stories should answer the question “What value is being provided to the user of this solution?” In the case of a DW/BI solution, they should identify what question the DW/BI solution could help someone to answer, or what business decision the solution could support. So “As a Bank Manager I would like the Customer Summary Report” or “Get Customer data from CustDB17 and TradeDB” would both be poorly written user stories because they’re not focused on business value. However, “As a Bank Manager I would like to know what services a given customer currently have with BigBankCo so that I can identify what to upsell them” is. The solution to implement that story may require you to create the Customer Summary Report (or there may be better ways at getting at that information) and it may require you to get data from CustDB17 and TradeDB (and other sources perhaps).
Here are some examples of user stories for a University DW/BI solution:
- As a Professor I would like to analyze the current grades of my students so that I can adjust the difficulty of future tests and assignments
- As a Student I would like to know the drop out rates by course and professor from previous years to determine the likely difficulty of my course choices
- As a Registrar I would like to know the rate of enrollments within a class over time to determine the popularity of them
- As a Student I would like to know the estimated travel time between back-to-back classes so that I can determine whether I can make it to class on time
Second, user stories on their own aren’t sufficient. User stories/epics are only one view into your requirements, albeit an important one. You’ll also want to explore the domain (e.g. do some data modelling), the user interface (e.g. explore what reports should look like), the business process (e.g. what are the overall business process(es) supported by your DW/BI solution), and technical views (e.g. how does the data flow through your solution architecture).
Third, data requirements are best addressed by domain modelling. As you are exploring the requirements for your DW/BI solution you will hear about data-oriented requirements. So capture them in your domain model as those sorts of details emerge over time. Consider reading Agile/Evolutionary Data Modeling: From Domain Modeling to Physical Data Modeling for a detailed discussion of this topic.
Fourth, technology issues are best captured in architecture models. You will also hear about existing legacy data sources and in general you will need to capture the architecture of your DW/BI solution. This sort of information is best captured in architecture models, not in stories.
A few more thoughts:
- User stories are only one option for usage modelling. There are several ways that we can explore usage, user stories/epics are just one way. You could also create light-weight use cases, usage scenarios, or personas to name a few strategies.
- Take a usage-driven approach. The primary modelling artifact on a Disciplined Agile DW/BI team is the usage model (e.g. your user stories) not the data model. Data modelling is a secondary consideration compared with usage modelling, and this can be a difficult concept for experienced DW/BI professionals to come to terms with.
- Keep your initial modelling light-weight. The agile rules still apply to DW/BI solutions – keep your modelling efforts sufficient for the task at hand and no more.
- Get trained in this. This is a complex topic. If you’re interested in training, we suggest that you consider DA 210: Disciplined Agile Data Warehouse (DW)/Business Intelligence (BI) Workshop.