Mapping out your business’s domain landscape has many benefits: knowledge sharing, generating product ideas, providing the foundation for software architecture, aligning on requirements, but a common challenge is… “where do we start?”

There’s a pretty endless list of techniques to choose from and an unlimited combination of ways in which they can be applied. Discovery feels more of an art than a science. However, I find myself gravitating towards an outside-in approach most of the time.

An outside-in approach starts with the business model, the user needs, and step-by-step zooms into the inner-workings of domains. I like this approach because…

The microservices era has been good for software architecture. I remember when the idea of multiple databases was punishable by death. But, the over-focus on micro has detracted from the true benefits of microservices which are about improving the quality and speed of development.

Over the past couple of years, I’ve seen organizations referring to microservices as Domain Services. I’ve seen such benefits from this small reframing that I now recommend not using the word microservice and using Domain Service instead.

There have been many criticisms of microservices and many horror stories. But I don’t wish to bad-mouth microservices in…

There are a few qualities that differentiate average from high performing software engineering organisations. I believe that attitude towards the design of code and architecture is one of them.

In my experience, the culture is better and the results are better in orgs where engineers and architects obsess over the design of code and architecture. In orgs where it’s all about delivering tickets as quickly as possible or obsessing over technology, the culture and results are poorer.

There’s huge variety between those two extremes, and there’s also a point where too much focus on design and not enough on delivery…

In February 2012 I began working for a new company. On my first day, I deployed to production. I was lost for words. It felt like magic. Every day was the same: pick the highest priority item, implement it, and then deploy to production immediately. After 6 months, I was still pinching myself.

The experience for me as a developer, the Developer Experience (DX), was energising and motivating. Instead of fighting against processes to get my job done and get my code into production, I felt like the red carpet was being rolled out for me.

As a result of…

Sometimes we need to stop fighting the symptoms and recognise that there is a more fundamental problem. Commonly, the fundamental problems is a mismatches in incentives between the different individuals and groups involved in achieving an outcome.

The more I observe organizations, the more I see this pattern of people fighting the symptoms and getting frustrated that things aren’t improving or changing. And the more I see that things are always going to be a struggle because incentives are widely misaligned.

When there is an incentives mismatch, a lot of energy can be expended. Lots of back and forth, lots…

As a system grows, higher-order abstractions are needed for ease of understanding, communication, and management. In Geography, continents are a higher order abstraction that allow us to collectively describe a large number of countries in a single word. As businesses grow, higher order abstractions are needed to organize groups of teams working on related challenges, like products or domains.

When I worked with Salesforce, the top-level organizational abstractions were clouds. The Salesforce Marketing Cloud was a substantial business in it’s own right, employing thousands of people and generating close to a billion dollars in revenue per-year.

Part 2 of this…

The systems we build are composed of many pieces. From mobile apps, to domains, to user journeys. How should we slice up the system and divide responsibilities among teams in our organisation?

In Part 1 of this series, a shared language was proposed to accurately describe different elements of a business’s architecture. We can now start to slice and group those architectural pieces into team-sized chunks and analyse the trade-offs of each pattern, and explore contexts in which they might be applicable.

The third part in this series will look at multi-team ownership patterns, exploring how to distribute cohesive parts…

Team Topologies has significantly advanced the discussion on organisation design for technology companies. The next step is to determine what Team Topology boundaries align to…what should Stream-aligned (and other) teams own?

When organising technology teams to build digital products and services, it is necessary to determine which parts of the product, user experience, and technology each team owns.

Should teams be frontend, backend, full stack or something else? There are more than just these three patterns to choose from, each with many trade-offs to consider.

A Model For Describing The Architecture of a Business

Before defining team responsibility ownership patterns and comparing their trade-offs, it’s necessary to have common…

Domain-Driven Design is an approach to designing systems, usually software, that emphasises creating a common language between domain experts and system builders. Famous DDD principles include Use a Ubiquitous Language and Make The Implicit Explicit.

However, some concepts in DDD do not have a clear definition and are highly implicit. Everybody has their own definition of Domain, Subdomain, Problem Space and Solution space. In this article, I’m going to provide working definitions of those concepts and clear them up.

This post is based on a long conversation on github involving many people from the DDD community. …

Enterprise Architecture (EA) is hugely important for medium and large organisations. Enterprise Architects take a broad look at an organisation, and are experts in aligning technology solutions with the business objectives.

In my experience as a consultant, EAs are not having the impact they should. Very often the EAs are seen as working off to the side, creating complex models that nobody uses and extensive documentation nobody reads, and often acting as a barrier for teams who want to move quickly.

My observation is that EA has not evolved to support modern operating models. High-performing technology organisations are characterised by…

Nick Tune

Technical Leader | Socio-Technical Architect | Continuous Delivery

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store