Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
ghdunn
Helper III
Helper III

Doman Driven Design for Business Intelligence

Does anyone have any experience in applying Domain Driven Design in the Business Intelligence space. My thoughts on the example use cases are as follows:

  • business intelligence use case - what analytical problem are you trying to solve and what would the solution look like

  • data value - how do you identify and measure the value of the data product you are requesting

  • predictive analytics and actionable insights - how to identify the value of the actions recommended

  • self-service bi - how to build products to suit users of varying degrees of expertise for multiple as yet undefined requests

Any thoughts, resources, books, blogs, examples would be welcome

1 ACCEPTED SOLUTION

Further thinking on this..I have ended up going instead down a 'Behaviour Driven Development' route using 'behave' behave 1.2.7.dev6 documentation  

Scenario: Fit Pareto/NBD model with PyMC
Given I have a dataset of customer transactions
When I fit the Pareto/NBD model using PyMC
Then I should obtain the model parameters


That could be replaced and enhanced with an ever-more nuanced description of self-evident customer value such as presenting churn predictions in the form of number of churning/non-churning customers, their likelihood of churn and their dollar values.  This seems to be going down a similar route:  Tutorial: create, evaluate, and score a churn prediction model - Microsoft Fabric | Microsoft Learn
once again..I will update when i get further.


View solution in original post

12 REPLIES 12
lbendlin
Super User
Super User

Ever heard of IBCS ?  www.solidoutlinedhatched.com

Thanks @lbendlin .  Yes I have, and its an absolutely an interesting perspective of the standards to apply within a data contract. I suppose I was angling more for practical examples of the models being defined, tested and their performance measured.  I posted the same question in reddit and got another interesting response:  Domain Driven Design for Business Intelligence : r/DomainDrivenDesign (reddit.com) which includes Data Contract Specification | Data contracts bring data providers and data consumers together.

My follow on question which might join the dots here is: is there such a thing as a viable data contract between the visualisation and the user...what is the value of the expectation and to what degree is that expectation and hence value delivered.  Make any sense to you?

This goes into the area of data source stewardship and certification. Power BI has such an option, but the big players in that area are Collibra and Purview (the word "players"  chosen intentionally).

 

It's all rather academic though, and rarely survives exposure to reality. In reality you need to prove value add. If there is no perceived value add in your standards then they will be ignored and/or circumvented.

Ha, good old von Moltke!  Yes..have looked at Purview but its very clunky.  Interesting you say Power BI has such an option..to what are you referring?

Ah...again a great memory jogger...i remember seeing that but it slipped my mind.  Thanks. 

It occurs to me that certain predictive analytic artefacts could be measured as inherently valuable.  I  am working in the SaaS world an have been looking at Blog Posts - PyMC Labs (pymc-labs.com) 

-If a visualisation identifies future customer lifetime value, broken down by customer.
-If it then identifies which of those customers is likely to churn by descending order of value. 
-If it then identifies day by day what the changes to that are...has the customer churned or been retained.  This is shown in a Confusion matrix - Wikipedia which is a pretty standard ML artefact.

It seems to me that the the 'value' of that analysis is self evident and independent of any subjective assessment.  It simply reports that the company has retained or churned $x per day against expectation.  That might be a straw man starting point against which to judge other BI artefacts...how close to that repeatable, measurable standard can you get to with other visualisations that require more subjective validation.  Let me know if you have any appetite for a quick conversation.

this conversation will be anything but quick. Just for context - how big or small is your company?  What's your estimate on the number of data subjects  ("objects") in your business ? How many reality tunnels do you think you have?

Good point about the short conversation!

Its a startup SaaS company with the standard set of SaaS metrics you would expect - lets say 10-20 to start with or even just the 5 or 6 mentioned below. 

Your use of the term 'reality tunnel' was unfamiliar to me (Robert Wilson???) .

It is certainly an interesting concept when thinking about self-service BI but to keep it simple I would start with simply one perspective...that of the person asking for the analytical product.  The acid test is what is the expected and actual incremental business value of that product and how would you measure it.

If I can propose a reference point of my CLV/churn example that assesses the entire CLV by customer at varying risks of churn each month and then measures performance against that  then that would seem to be a good stake in the ground to assess a new feature or use case.  This is my idea and I intend to start experimenting but I thought I would explore any existing work first.

Yeah, I am coming from the other end of the stick - our company has been around for a while, and we have easily 500+ data subjects and probably 1000+ different teams that do not talk to each other the way they should. 

 

Reality tunnel refers to a myopic view on the usage of the data you own. For example Order Management owns that data subject "Order"  but all they care about is to place and process the order. They are oblivious to the fact that other teams need to know details like who was the customer on the order, what currency was it placed at, which changes were made etc.  There is no incentive for OM to care about that, so they don't. This then makes the reporting life of all the other teams/groups so much harder.

 

You bring up a great point about measuring/quantifying the value add.  I'm afraid we're way too busy to even think about that  (but we should).

Further thinking on this..I have ended up going instead down a 'Behaviour Driven Development' route using 'behave' behave 1.2.7.dev6 documentation  

Scenario: Fit Pareto/NBD model with PyMC
Given I have a dataset of customer transactions
When I fit the Pareto/NBD model using PyMC
Then I should obtain the model parameters


That could be replaced and enhanced with an ever-more nuanced description of self-evident customer value such as presenting churn predictions in the form of number of churning/non-churning customers, their likelihood of churn and their dollar values.  This seems to be going down a similar route:  Tutorial: create, evaluate, and score a churn prediction model - Microsoft Fabric | Microsoft Learn
once again..I will update when i get further.


As usual, keep Goodhart's Law in mind.

OK.  Thanks once again for the very positive response.  Let me mock up a few visuals over the weekend and I will share.

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Jan25PBI_Carousel

Power BI Monthly Update - January 2025

Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.

Jan NL Carousel

Fabric Community Update - January 2025

Find out what's new and trending in the Fabric community.