You need a Business Domain Model. But, We don't have a Business Domain Model! (oh, yes you do ...)

Software implements the business domain model of whatever its used for. BY DEFINITION.
It may do it poorly or incoherently or inconsistently or incompletely or wrongly but it DOES implement it.
So you HAVE a model, its in the source code.
Its HARD to visualize it, though.

You NEED a Business Domain Model (BDM) in a way that you can easily reference it, update it, argue about it, ... but if its only in the code, how can you discuss it with the User? BAs? PM? ScrumMasters? Testers?

What happens when the BD (Business Domain) you build software for changes SO MUCH it no longer aligns with the BDM as implemented in the software? How would you know? (Hint: your customers will complain about your software, ask for changes or buy somebody else's product)

First, I define a BDM as an unambiguous (as much as possible) description of the things, behaviors, rules, constraints, changes over time, workflows, events and goals of any business WITHOUT any detail that involves software or computers (ex: banking has existed for 1000's of years before computers - model that stuff and you have the BDM. Education is the same.)

Often times an industry changes gradually over time but changes so much that the BDM is NOT really what it used to be. Example snail mail and email are similar but NOT the same BD by a long shot. Video rental store and Video Download are different BDs though they seem similar.

So, every time you migrate a system or create a new version you are discovering the same info about the BDM but NEVER creating it in a way that is easily reusable or viewable. Instead, you embed the info in the coed in the software. AGAIN and AGAIN and AGAIN. Inefficient and error prone. Tribal knowledge is often trapped in the heads of a few. Its hard to bring on new folks and ramp them up because the know acquisition curve is too steep. SOUND FAMILIAR?

Worst of all, you can't tell if new customers actually  fit your existing business domains serviced, well or are so different the software is gonna irritate the heck out of them..

Software's embedded BDM misalignment with a customers real BD is the source of cost, risk, aggravation, delay, customer dissatisfaction and frustration.

Does BDM fix that ? Not everything but it does reduce a lot of it.

BDM uses UML and other unambiguous mechanisms for detailing thing, relationships, change over time, important events, etc. A word document that contains words / sentences is NOT unambiguous, so it AIN'T A BDM artifact!

Will you do Business Domain Modeling on the next project? NO. 
But I did warn you



 
Trackbacks
  • No trackbacks exist for this post.
Comments
  • No comments exist for this post.
Leave a comment

Submitted comments are subject to moderation before being displayed.

 Enter the above security code (required)

 Name (required)

 Email (will not be published) (required)

Your comment is 0 characters limited to 3000 characters.