Bounded Context In Enterprise Ecosystem: Bounded Buy & Bounded Build
Bounded Context is basically Domain Driven Design (DDD) term, as Martin Fowler mentioned, Bounded Context is a Central Pattern of DDD. DDD deals with large modules by dividing them into different Bounded Context and being explicit about their relationships.
Just come out of Microservices and think Bounded Context for an Enterprise Ecosystem business domain (ex: Retail, Investment Banking, Insurance etc.), further to these main businesses consider sub domains, for ex: Under Retail domain, there are many domains like Supply Chain Management (SCM), Store, Order, Payment. Inventory etc.
Apply Bounded Context Design Thinking in to these sub domains, we can see Customer has different perspective in Payment, SCM and in Order etc.
Similar way applies bounded context across domains for an Enterprise Ecosystem instead of everything as one.
As an Architect don’t impose vendor king to all boundaries of business. Identify and separate a business domain boundary and take a call on bounded buy or bounded build.
Vendor King
Vendor King is not suitable to next generation IT and does not suite business disruption effectively, for more information, refer Raymond Lee article, “Avoid the Vendor King” article (https://raymondhlee.wordpress.com/). “Vendor King” is an architectural anti pattern commonly found in many enterprises.
Bounded Buy
The “Bounded Buy” is coined by ThoughtWorks in their recent radar, which they say Organizations to develop a clear target capability model and employ a strategy. The Vendor King solutions tend to aggressively expand their scope to entangle themselves into every part of your business. This blurs integration boundaries and makes change less predictable and slow.
The enterprise goes with Vendor Lock due to lack of technical expertise, clear vision and not conducting of an Architecture Assessment of the enterprise.
Many companies today are going through tough phase like business disruptions, technology disruption, open architecture, Impatient end customer, high competition etc.
The enterprise wants journey of Lean & Liquid instead of big bang and one solution or one vendor for all. By looking into all, the enterprises are started adopting the combination of Bounded Buy and Bounded Build.
Architect’s responsibility to Assess an Enterprise and propose New IT and Post digital era with a right combination of Bounded Buy and Bounded Build.
How will you decide on Bounded Context in an Enterprise?
I would recommend the following best practices to draw a line for Bounded Context
· Be more domain/business: You need to identify each business capability in the organization and separate each capability in to separate buckets.
· Static/Dynamic: Identify business which are undergo more business changes (Dynamic) and static in nature
· Business Flow: The solution should be able to connect with other business domains with ease of access.
· Be Future: Identify the domain area where you can move to New IT and Post Digital era.
· Lean and Liquid: Identify domains where easy to deploy, test etc. and most importantly easy to discard and build new.
· Data Specific: Identify the solution which are easy to collect data from relevant enterprise which are useful to business domains
How will you decide on Bounded Buy and Bounded Build?
Either way is not good, enterprise architects need to draw a line between Bounded Buy or Build.
I would recommend following principles for Bounded Buy or Bounded Build
· Choose Bounded Build where the business or domain need more frequent changes
· Choose Bounded Buy where product more cloud native, ease of integration like RESTful APIs and event driven and near real time integration with buy and with other vendor products
· Choose products which are cloud native, future proof, can work with build components.
· Choose Architecture which helps to build business around data and data usage
· Don’t lean into one vendor products
· Choose products which are adhere to Industry Open Architecture Principles
· Choose products which data accessible is easy and able to provide in near real time