How we discover and organise domains in an existing product

Introduction

Software companies and consultants like to flex their Domain Driven Design (DDD) muscles by throwing around terms like Domain, Subdomain and Bounded Context. But what lies behind these buzzwords, and how these apply to customers' diverse environments and needs, are often not as clear. As it turns out it takes a collaborative effort between stakeholders and development team(s) over a longer period of time on a regular basis to get them right. And when you think you have figured them out, your models and concepts will get challenged by the ever-changing landscape of business requirements.

So why even bother with these fancy DDD terms? Why do we need them and how can we identify them? Aren't they just different contexts after all?

In this post we'd like to take you on a journey of riding the DDD roller coaster in the land of HR where paying back technical debt and diving deeper into the domain are everyday challenges.

Context and Abstraction

Classifying and categorizing things is in our human nature. We put things into boxes so we can reduce our cognitive load when we have to reason about things that belong to a certain box. We label these boxes with certain rules, concepts, and conventions that apply when we step into that box. Just like these boxes can help us reducing the aforementioned cognitive load, the abstraction they introduce might hurt us eventually when the environment in which they were formed changes. So let's treat a context as one of these boxes, a subset of the world with a certain amount of abstraction.

Initial Situation

During the last 4 years, we built a structured monolith that serves the following areas within the HR domain:

  • Employee records

    • Capturing various types of talks, conversations, and interviews between employee, superiors and HR like general feedbacks, personal notes, highly confidential notes, warning letters and terminations.

  • Employee Development Talks

    • Schedule, plan and record the annual development talk between employee and superiors (personal goals, personal skills assessment).

  • Employee search

    • Provides a general entry point to various usecases by making employees searchable through their “publicly” available information like name, department, working site

  • Demand management

    • Superiors claim employee demand and HR outlines a strategy to fullfill this demand.

  • Competence management

    • Align public image and self-image regarding competences. Record skill development over time.

  • Self Service

    • Allow employees to easily get in touch with HR in a more controlled way than per E-Mail as well as to directly access and edit information (like personal data, personalized application forms, etc) about themselves

From this point on our mental model consisted of several subdomains however we started questioning if they were really separated or do they share some common boundary. Do Employee Development Talks belong to a general record main domain or are they related to competence management and may belong to an Employee Development area? How should we even start?

Techniques to find subdomains

There are several tricks and heuristics you can apply in clustering features into subdomains.

  • Ask: what is the purpose of a feature? Do the features share the same goal?

  • Who is working on features? If same people work on features there may be an indication that they belong together

  • What are the domain terms for a feature? Do you use the same ubiquitous language for the features? If yes they may be close together and solve similar issues

  • Define problem statements for each subdomain. Does every feature of the subdomain adhere to this statement?

Bottom-Up Approach

As our mental model revolved around mainly low-level contexts, we gave the bottom-up approach a chance.

  • Start with the lowest feature level

  • Cluster and classify features based on similarities

  • Find a headline for the new higher-level domain

  • Define a problem statement

 

EXCERPT OF OUR FIRST CLUSTERING APPROACH

Besides the yellow features, you can see some classification post-its. Such as core or generic domain, are records written ad-hoc or in a planned meeting, who is affected by a feature, and who drives the feature. Using heuristics for classification will lead to different clustering. In the end, we had too many ideas and models in our brains. At this point, we were not able to agree on what the primary property of our boundaries should be. Is it the type of users, the confidentiality of data, or some temporal aspect?

We found out that we are all too deep into the way the domain is currently modeled and that we need someone with a fresh and distant view on this topic. So we “hired” a colleague from our consulting department to support us and moderate the workshops.

 

THE SAME CONCEPTS CAN BELONG TO DIFFERENT DOMAINS (1)

Top Down Approaches

As the bottom-up approach did not deliver a clear picture we agreed to advance our model from a top-down view. Let’s start with the top-level domain and divide it into smaller pieces. Generally, HR is not a customer-specific domain, each company has some kind of HR department and will face similar tasks to solve. The next reasonable step was to search for existing ideas for structuring an HR domain.

Ask the AI

Let’s have a look at how ChatGPT 3.5 will answer the question “How would you structure the HR domain in subdomains”

Answer (shortened)

  1. Recruitment and Talent Acquisition

  2. Employee Engagement and Retention

  3. Performance Management

  4. Compensation and Benefits

  5. HR Operations

  6. Learning and Development

  7. Diversity, Equity, and Inclusion

Ask the Web

Additionally, we have found the following illustration in the literature that described Business Capabilities of the HR domain in general.

 

Our Version - Rework

Although these models were quite good we were skeptical to use them unreflected as is. However, they turned out to be good enough guidelines for our reworked model.

As the word employee kept coming up in different contexts, we decided to use it as our primary guidance in identifying our main categories. What does the customer mean by employee? Is it the same or is it different per context? As it turned out they mean quite different employee roles and that helped us shaping the boundaries around the possible sub-domains. At this point, it seemed obvious to integrate these different roles and their perspectives into our domain structure. After multiple iterations, the following final sub-domains were identified whereas some areas are not listed which are out of our product scope.

  • HR Strategie and planning

  • Organisation Development

  • Employee attraction and recruitment

  • Employee administration

  • Employee development

  • Relations

  • Analytics

Takeaways

Whether you follow a top-down or bottom-up approach can depend on which fits your domain better and the phase of your product/project is in. Trying out both as we did can also be a good path to take. It might be useful to evaluate existing models and validate them against your requirements. Clustering heuristics help you to get different views on your domain structure. It is preferred that you design more than one model and collaboratively work on the final outcome. Keep in mind that models will evolve over time. Continuous refinement is desired.

References

  1. Domain, Subdomain, Bounded Context, Problem/Solution Space in DDD: Clearly Defined

  2. Business Capability Map Example - Modeling Business Capabilities

 

Blog 11/12/20

Announcing Domain-Driven Design Exercises

Interested in Domain Driven Design? Then this DDD exercise is perfect for you!

Kompetenz

Strategy Domains

Elements that should not be missing from your digital strategy & IT strategy! We provide guidance, priorities, and a solid foundation for your IT and digital strategy.

novaCapta: Ihr Partner für die digitale Transformation mit Microsoft Technologien
Asset

novaCapta solutions: Products, Apps, and Assets

Discover novaCapta's apps, assets, and products: Whether it's a small app or a product with custom features – with our in-house solutions, you'll be well-equipped.

Lösung

Cloud-Products

Entering the digital world. CLOUDPILOTS uses Cloud-based technologies to prepare customers for the future. The professional world is already in the Cloud today – even more so in the future!

Mann wirft sich freudig und erleichtert in Bürostuhl
Success Story

Vitra AG: Quick and easy access to product data

At Vitra, sales managers can now access product information quickly and easily via Power Apps – thanks to the new Product Launch Platform. Manual enquiries are a thing of the past.

Blog

“We are catworkx” – our office in Hamburg

In our #wirsindcatworkx series, we show you our locations in Germany, Austria, and Switzerland. We start with our headquarters in Hamburg—with insights into our team, culture, and everyday office life

Technologie Übersicht

Consulting for IBM products

IBM Software & Consulting with passion and experience – you can rely on us. Services relating to IBM Software Solutions have always been an integral part of our offer.

Technologie Übersicht

Consulting for IBM products

IBM Software & Consulting with passion and experience – you can rely on us. Services relating to IBM Software Solutions have always been an integral part of our offer.

stethoscope on computer keyboard
Service

Active Directory Domain Services Health Check

Analyze the current state of your IT, phase out outdated technologies, and optimize for the future: Our AD Health Check will show you what needs to be done.

Blog 12/19/22

Creating a Cross-Domain Capable ML Pipeline

As classifying images into categories is a ubiquitous task occurring in various domains, a need for a machine learning pipeline which can accommodate for new categories is easy to justify.

Blog 9/17/21

How to gather data from Miro

Learn how to gather data from Miro boards with this step-by-step guide. Streamline your data collection for deeper insights.

Blog

How I Won the Enterprise RAG Challenge

In this article, Ilia Ris describes the approach that helped him achieve first place in both prize categories and the overall SotA leaderboard.

News 2/1/23

We are offering cloud-based SAP solutions consulting now!

TIMETOACT GROUP expands into cloud-based SAP solutions consulting with the acquisition of WCA Walldorf Consulting and target Software Solution

Kompetenz 2/10/20

Certificates and awards

Our company and our products have won awards in the truest sense of the word. Among other things, SAP has certified our software solutions several times with various seals of approval.

Service

Training courses on how to deploy target software

Do you want to maintain the software for your idea and innovation management yourself? We will be happy to provide you with the necessary know-how in our training courses.

Referenz

How fast does Jira respond? Load simulation provides answers

Get clear answers on your Jira instance's stability and speed. Read how our custom load simulation supports critical IT software decisions.

Unternehmen

catworkx – Partner for the entire Atlassian product range

catworkx is one of the largest Atlassian Platinum and Enterprise Solution Partners in the DACH region, specialising 100 percent in Atlassian solutions.

Junger Business Mann der seinen Erfolg feiert
Event

We are 2024 Google Cloud Sales Partner of the Year - Alps!

We are proud to announce that we have won the prestigious 2024 Google Cloud Sales Partner of the Year - Alps Award!

Schild als Symbol für innere und äußere Sicherheit
Branche

Internal and external security

Defense forces and police must protect citizens and the state from ever new threats. Modern IT & software solutions support them in this task.

Headerbild zur offenen und sicheren IT bei Versicherungen
Service

Open and secure IT

Just a few years ago, insurers were reluctant to move into the cloud or platform world. Concerns about security and governance often prevailed. The paradigm has changed.

Bleiben Sie mit dem TIMETOACT GROUP Newsletter auf dem Laufenden!