Using DDD for mapping a company’s core domain is quite known and one can find many case studies on that, but case studies for merging or re-dividing domains upon acquisition are harder to find.
As an R&D director at Taboola I had the opportunity of leading a technical due-diligence of an acquired company. During that time we considered a few alternatives of how such an acquisition might look like from two main perspectives: organization structure and technical integration whereas the two obviously affect each other per Conway’s Law.
In addition, post acquisition previous assumptions turned out to be inaccurate and required further domain analysis, for finding a better solution.
During those challenging times, I found DDD to be a very practical tool for executing the relevant change.
If you are in a dynamic company where teams, products and domains grow fast and then split or merge, you need to constantly analyze the domains and consider alternatives for those changes. From my experience, DDD approach helps visualizing and considering these alternatives while being able to keep the discussion both business and technical.
In my talk, I will share the two years journey post acquisition. A journey in which domains merged and split due to a dynamic environment, for example:
1)Why we used DDD to decide an acquired team should stay as an isolated domain, acting as a supportive domain in the company
2)How we later merged part of a supportive domain into the core domain
3)How and why we ended up splitting the merged domain again
1. Oops, I DDD it
again:
A story about using strategic DDD during Acquisition
(again and again)
Ora Egozi Barzilai
Feb 2020
Head of R&D operations at Taboola
DDD Europe
2020
EgoziOra
2. About
myself
• Writing code and leading engineers for 15 years
• Experienced in companies of all sizes
• Leading at Taboola the Publishers R&D group, Now leading R&D
operations
• Fascinated by DDD, part of DDD-IL Meetup
• Mentored at the GBS excellence program
-DDD-IL
EgoziOra
3. This is
a true story
The events depicted in this film took place in Minnesota in 1987.
At the request of the survivors, the names have been changed.
Out of respect for the dead, the rest has been told exactly as
It occurred.
EgoziOra
6. Bounded
Contexts at
Taboola
2016
Rule: “for all users from USA show only USA
related articles”
Main Taboola flow - Serving right
recommendation to user on
Publisher site
Reporting
Recommendation
Serving
Serving Rules
Management
Rules are
deployed
Rules
Data is
collected
AI
EgoziOra
11. Bounded
Contexts at
Ninja 2016
More rules, WYSIWYG tool
Main Ninja flow - Serving right
campaign to user on e-commerce
site
Reporting
Campaign
Serving
Serving Rules
Management
Rules are
deployed
Data is
collected
EgoziOra
E-commerce sites Poor reporting
Ninja rule: When user is about to leave site show
her the best campaign
12. Value of
Taboola+
NINJA
More rules, WYSIWYG tool
Reporting
Recommendation
Serving
Serving Rules
Management
Rules are
deployed
Data is
collected
EgoziOra
E-commerce sites
WYSIWYG tool
E-commerce
Ninja
Personalization Ninja reporting
18. Architecture will be
shaped like the
communication
EgoziOra
Conway’s Law
“Any organization that designs a system will
Inevitably produce a design whose structure
Is a copy of the organization’s communication
Structure.”
Melvin E.Conway
20. Take 1
Architecture
KPI: Ninja people stay, Demo two products working together
Reporting
Recommendation
Serving
Serving Rules
Management
EgoziOra
WYSIWYG tool
Ninja
Personalization
23. Reminder:
Sub-Domains
types
Generic Domain
Not Valuable for the business
Can be bought off the shelf
Supportive Domain
Supports the business
Important but not a competitive advantage
Core Domain
Critical to the Business
Competitive advantage
EgoziOra
24. Which Sub
Domain is
Ninja’s Product
EgoziOra
• Ninja’s team is separated
• Ninja’s product supports
recommendation
Supportive Domain
Supports the business
Important but not a competitive advantage
Generic Domain
Not Valuable for the business
Can be bought off the shelf
Core Domain
Critical to the Business
Competitive advantage
25. Which Sub
Domain is
Ninja’s Product
EgoziOra
Yes! Ninja’s personalization supports
the recommendation core domain Supportive Domain
Supports the business
Important but not a competitive advantage
Generic Domain
Not Valuable for the business
Can be bought off the shelf
Core Domain
Critical to the Business
Competitive advantage
26. Take1: What’s
wrong with this
approach?
Can you spot the problem?
Reporting
Recommendation
Serving
Serving Rules
Management
EgoziOra
WYSIWYG tool
Ninja
Personalization
27. Take1: What’s
wrong with this
approach?
Lets focus on Serving Time:
Recommendation
Serving
EgoziOra
Ninja
Personalization
Supportive
Domain
Core
Domain
Ninja: For fast scrollers show
engaging content
Ninja
Rules
Taboola
RulesTaboola: For user resembling
clickers show more ads
(Machine Learning based)
28. EgoziOra
Nothing works beyond demo.
Rules collide….
We want MVP
Take1:
Achievements
& Challenges –
People and
Business
We are a startup!
We are the
personalization team!
Just inside Taboola
29. The MVP or one product to rule
them all
KPI: Revenue indicators!
Take 2
EgoziOra
33. Take2:
Moved Ninja’s code
into Core domain
Reporting
Recommendation
Serving
Serving Rules
Management
EgoziOra
Ninja
Personalization
Configuration
Ninja+
Taboola
Rules
Ninja
personalization
Single place for rules management, single place for running them
Core Domain
34. Defining a MVP eliminates
supportive domains,
hence focusing you on
the core domain
EgoziOra
35. EgoziOra
MVP is looking good,
Why are you developing so
slowly?
Take2:
Achievements
& Challenges –
People and
Business
Were quite upset, cause
they “lost their
product”
38. When we are architecting a
software system, we must
consider the impact on the teams
in the organization and vice-versa
(Nick Tune, Sociotechnical
Architecture Patterns)
EgoziOra
46. Personalization
Happy End –
2016 VS 2020
• Personalization modules of 2020 reflect the
ubiquitous language we formed.
• Team grew and evolved - Ninja people moved to
other teams in the group
• Moved from rule based to Deep-Learning based -
leveraging Taboola’s competitive advantage
EgoziOra
47. EgoziOra
Heuristics:
Integrating teams and products
is not an event, it is a process:
• Strategic DDD is a great tool for an acquisition- use it to:
a. Identify what parts of the acquisition should turn into core
domain. Your goal is to transition them ASAP.
b. Look for NEW bounded contexts
• People are critical - Use Socio-technical Architecture as a
tool for matching people and architecture.
• It is all about Evolution!