Design heuristic: Challenge your own assumptions...

#dddesign

Developer: "Scenario X puts our system into an invalid state... so we should avoid."

SME: "Actually, our domain allows that. We usually just run a report at the end of the month and manually reconcile."

(Thread)
Dev: "I thought that was what we were trying to prevent?"

SME: "No... The benefit of this software is that it actually can give us that end-of-month report...
... Before, we had to pull in multiple spreadsheets and do some complex matric logic to figure out where the 1% of inconsistencies were.

Now, this system does all that up-front prep for us."
Dev: "So what I thought was an invalid state... actually IS. But our system isn't the one to enforce that."

SME: "Exactly."

Dev: "How much time do you spend on that end-of-month reconciliation?"
SME: "Before, it took a week to combine those spreadsheets. Now, it's usually only an extra 30 min of work to reconcile."

Dev: (Thinking to self) "Now I see the main goal of this system 🤦‍♂️"
This is why collaboration and hashing things out with domain experts is so important!
You can follow @jamesmh_dev.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: