Collaborating with Domain Experts for Business Success
Devote yourself to understanding your domain. Creating a simple, practical model from a complex problem requires extensive knowledge and deep insights. This knowledge can only be acquired through continuous collaboration with domain experts. Distill a large problem domain into smaller subdomains. Identify the core subdomains to reveal what is Important. The core domains are those of greater. Value to the business requires more focus, effort, and time.
Use the same ubiquitous language to bind the analysis and code models. Split the model (if necessary) into smaller models where language is ambiguous or the model is too large for a single team. Enclose the model within a boundary to protect the model’s integrity. Use tactical patterns to separate technical and domain codes to prevent accidental complexity. When working with many models, they must be understood in context. This distillation reveals the core subdomain (s) — the reason the software is being written. The core domain is the driving force behind the product under development.
People will tell you what they want rather than what is needed; the difference is subtle but leads to different outcomes. So take your time with requirements — offer solutions. Software development is a learning process, as is the quest to reveal deep insights into your problem domain. The code is an artifact of developers and domain experts working together and modeling the solution for the problem domain.
With impact mapping, you go beyond a formal requirements document; instead, you try to work out what impacts the company is trying to make. Do they want to increase sales? Is their goal to increase market share? Do they want to enter a new market? They may want to increase engagement to create loyal customers with a higher lifetime value. Impact mapping is a very informal technique. Once you understand the impact the business is trying to make, you can play a more effective role in helping them to achieve it. You create mind‐map-like diagrams that stress crucial business information. You work with the business so that, like knowledge crunching, it is a collaborative exercise that helps to build up a shared vision for the product.
Understanding the building blocks of the business tells you can identify what is essential to the company — critical information like how it makes money, its most important assets, and its target customers. With an impact map, you can unwind their assumptions and what they want to achieve. And then, you can use your technical expertise to suggest superior alternatives they would never have considered. The focus should be on contributing to business outcomes over software output. It’s not about writing elegant code; it’s about getting results that benefit the business and help achieve its goal.
[¹]: Domain-Driven Design: Tackling Complexity in the Heart of Software
[²]: Impact Mapping: Making a big impact with software products and projects