DDD: Every Domain has Multiple-Languages

Architects need to help identify and work with the bounded contexts

Ethar Alali
Bz Skits
Published in
5 min readFeb 12, 2017

--

As I do every morning, I scrolled through my medium feed reading articles of interest. Unfortunately, I had other responsibilities the week of #Finovate and as such, I was unable to attend. So I was interested it read articles from those who were there.

I was reading Andra’s article this morning and I have to admit to not agreeing with a lot of what was said inside the article, not from the point of view of banking, as that’s all spot on. My disagreement is conceptually related to the premise of the uniqueness of this problem within banking, as if it doesn’t exist anywhere else.

Ubiquity

As someone who has worked across industries all the way from utilities, to telecoms, to financial services, to retail, to intergovernmental organisations etc. The reality is the problems described within Andra’s article absolutely exist everywhere.

This line of Andra’s article in particular, is absolutely spot on.

“My feeling is that these communities rarely cross each other’s borders.”

Absolutely! The vast majority of every organisation is still stuck in silos. This is one of the main problems cross-functional teams aim to solve in any industry. Oddly enough, this maps neatly to a DDD bounded context, and it is at the edges of these bounded contexts that we architects often work. Whether it is…

  • Systems - Does this plug fit this socket
  • Domains — Does this app & data architecture enable the business architecture
  • Departments — Try getting the accountants to talk to the marketers
  • Divisions
  • Geographies
  • Regulatory contexts

Every single instance of one of those has become a field with it’s own language, it’s own culture. Indeed, it’s even taught separately. The key is finding that overlap and it’s in these gaps that architects very often play a huge role, especially if valuable work must cross that chasm. An architect very often plays the role of a walking thesaurus as a result.

Banking’s Overlooked Friend

The conceptual core of any form of banking is math*. There I’ve said it. Despite this, I can’t count the number of times I’ve walked into FinTech or Fin Services projects or programmes and surprised to learn there isn’t a mathematical specialist in the team. Since all such systems can be converted into mathematical models and run with. This is, after all, what regulatory environments encourage in stress tests and how risk models are done, as a minimum.

  • Corporate Finance — Math
  • Accounting — Math
  • Risk modelling-Math
  • Pricing — Math
  • Debt sale — Math
  • Affordability-Math

*Bracketing statistics, operations research and stochastics into math for brevity

And every language within a banking environment, within the bounded context of each department or division with it’s own language splits down into a mathematical intermediate language. A canonical model if you will. The difficulty doesn’t come from manipulation of the model, but from the translation.

A classic example from the work of enterprise architects is risk-impact matrices.

“Using T-shirt sizes, what is the chance something could go wrong? If it does, what’s the impact?”

This very simple model is exactly the same as the metrics within Lean’s FMEA and also a key financial metric, Value at Risk. Even balance scorecards use a very similar mathematical manipulation process to arrive at a number in a similar way, albeit measuring a different thing. Each time, the math is the same, but the application changes.

Do we all need to be Math/Stats Specialists?

I’m yet to be convinced of that, but if I was president of the world, perhaps running it how Trump is, I would sign an executive order saying at least have a functioning level of whatever intermediate form of language is useful in the wider domain of discourse. To not do, it somewhat negligent.

It has become the norm in banking to let the computers do the work, which is fine and I’m not against that in any way, but this leads into very strange situations where the person giving advice in a bank, doesn’t appreciate the difference in affordability that may or may not occur when that number is presented to them to relay to a customer. The fail to ask:

Is denying this otherwise healthy customer a loan on these grounds missing an opportunity for us? Missing the delivery of a service for them?

Does the customer or prospect sitting in my retail bank, really need this financial product?

What makes banking difficult is that the sector is [rightly?] governed by a number of legislative boundaries covering every aspect of operations.

The only saving grace is that customer don’t complain enough. These days, customers may be more aware of what banks have done, but mainly they still don’t themselves have the functional math skills to understand concepts such as total cost of credit and customer detriment. Even with the advent of the ECCD directives, and the introduction of SECCI’s new affordability rules and other banking checks, balances and information services, they are still none the wiser. Though I’d argue this may not be the bank’s problems to solve. Indeed, many debt advice and financial inclusion charities fill this gap.

FinTech’s Contribution

It’s been well noted that even the combined value of all Fintech startups can’t make one single portfolio in a department of Meryll Lynch. Financial Services are a big beast. In the UK alone they “bank” around £130 billion to UK GVA every year and account for 11.8% of UK GDP within a service sector itself responsible for 79.9% of the UK economy, which is the biggest proportion of the UK economy. Even bigger than before the financial crisis.

All UK payment instruments and card providers are collectively responsible for over $112 trillion of transactions annually. It’s not a small number. Yet the global FinTech startup scene is “only” worth $105 billion in funding. Investors are wary of the FinTech world. There isn’t an obvious disruptor and the unicorn hunt goes on.

Epilogue

Anecdotally, people often ask me how I learn so fast or how I seem to know so much, especially given the range of topics I answer on Quora. I very often start at the same time as folk and 3 months in I’ve made 10 times as much progress in understanding the domain. The reason is precisely that I already have a mental model that I map a lot of this to. All it then becomes is a translation exercise into a mental model I already have (which is almost always mathematical in nature), manipulation of that internal model, and then transform back out to the domain language. This takes a lot less time, is more efficient and automatically gives you a linkage between types of domain. Otherwise, I’m worse than normal. I remember very little if asked to remember facts-and-dates. Indeed, it’s very often the case folk will be lucky if I remember their name when walking into a new role having to meet dozens of folk.

--

--

Ethar Alali
Bz Skits

EA, Stats, Math & Code into a fizz of a biz or two. Founder: Automedi & Axelisys. Proud Manc. Citizen of the World. I’ve been busy