You are the Software Architect in the company called “Radix”. This is a software house, which specializes in recruiting and out-sourcing of ready-to-work development teams. You have been told, that this project may be a little unusual, bo no further details were provided. You were about to find out.
Act I. The Arrival Of The Customer For The First Meeting
Your company is based in a large office building, which together with another seven towers occupies the block. Tens of companies rent space in the campus, most of them is from IT industry, just like yours. So many people on such small space, create demand for a food, which restaurants in the buildings cannot fulfill. Opportunity lost by one person, may quickly evolve in some other hands, and it is true this time. Food business owners in the buildings are satisfied with what they earn, so they are not interested in scaling. It makes many hungry people angry, when they cannot get anything to eat, because restaurants are sold-out before noon. Noon is a launch time, so expect the wave of energy-seekers. No good.
But there is this guy, called Mr. Sandwich. You can meet him at your building’s lobby in the morning. There is no fixed hour of his arrival, because he has some other locations to cover, so he might be late, or, in the worst case scenario, not to come at all, because he sold whole merchandise. But if you are lucky, you may buy some freshly made sandwiches, and some packed, ready-to-eat lunch boxes. All you need to do, is to put them into the microwave owen for a few minutes, so you can have your lunch warm and tasty.
Also, Mr. Sandwich just walked in to the meeting room you occupied.
“Hello, my name is Robert Smith, and I’m supposed to meet someone from Radix. Are you the person, fine gentleman?” — he asked pointing at you.
“Oh gosh, this is the client” — you thought, and quickly stood up. “Yes, it must be me. I’m Ryan Jones, an architect dedicated to your project. Pleased to meet you Robert.” — you shook hands and took your sits.
Robert asked: “Ryan, I saw you looked quite surprised when you saw me coming. You probably see me in this building in a different role, so you probably thought, that I wanted to sell you some sandwiches.” - Robert laughed. “But don’t worry, I know it must be a funny situation, but look, today I approach to you as a person with the opportunity. Now, let me start from the beginning, to give you idea about my business.”.
Act II. The History And Idea For Improvement
“Two years ago I was the white-collar employee of the company based in this building.” — Robert started his story. “I have never had time in the morning to prepare something for the lunch, so I always count for Mr. Sandwich. This blind faith often gave me an empty stomach to the end of a day. Local gastronomy is not interested in serving all hungry people, so there are folks like me in this campus, always hungry. Increasing production seems to be an easy money, but nobody decided to pick it up so far. And then it’s me, the guy who left his well-paid job in the financial sector, to sell his tasty dishes to everyone who wants it. It was interesting at the beginning, it was me and my wife making sandwiches and lunch boxes in a small kitchen next to our home. It was quite romantic I have to say. Anyway, there was a demand for our services, we were able to convince many white-collars to switch to our dining. But, we have our problems, and I hope that you will help us to solve them.”
You were more than happy hearing this. Implementing processes and designing architecture is fun and all, but solving business problems is something on a completely different level. Cooperation with Project Owner (Robert in this case) may be fruitful and rewarding for both, your customer and your company and yourself.
Problems Start To Come Out
“Our first problem comes from the fact, that we cannot estimate how many Dishes will be sold in a given day. If we don’t produce enough, some of our Customers gets angry and quickly moves back to local restaurants. We have already tried to fix this by producing more food, but it increases transportation costs, and what is even worse, it leaves us with unsold Dishes, which have to disposed, so food is simply being wasted. You might be aware how big this problem is in a global scale.” — Robert became sad. “And to dispose this unsold food, we need to transport it to the company, which specializes in it. We have to burn more fossil fuels and do more damage to the natural environment. I’m sure, there is room for improvements in this area.”
You liked Robert’s story. This is one of those, which positively reinforces other people and inspires them to chase their dreams. After the introduction you decided to learn about the Domains Mr. Sandwich is specialized in.
Trying To Explore The Domains
“Robert, this is a great story you have just told me!” — you couldn’t hide your excitement. “From what I see, you care about nature and try to avoid food waste. This is the mission I definitely agree with. Before we start dealing with your problems, I would like to talk about some fundamental things first. Let’s start with the Domain you are specialized with. In other words, what gives you money?” — you asked.
“Mr. Sandwich is a company specialized in food production. We make sandwiches, lunches, milk shakes and desserts. Based on that, I’m guessing, that our Domain is food producing.” — answered Robert.
“Exactly!” — you replied. “Food Factory and cooking in general is your Core Domain. Core, because this is the essence of your business, making and selling your products gives you profit. But there is more than that.”
“Of course, we have a developed network of Deliverers. There are many campuses like one you have an office in, so we had to hire a lot of Deliverers. Is it also our Domain, the Delivery?” — Robert got confused.
“You are right, and this is called a Supporting Domain. This is not the core of your business, but complementary service, which makes your enterprise special on the market. If you stopped delivering your dishes, then probably you would lose a major part of your Customers, but you are still able to sell your food. Producing food may exist without being delivered straight to the Customer, but no Delivery can be done when there are no products. So far, we have defined two types of Domain: Core and Supporting, but there is also a third type, called Generic. It concerns something commonly known, existing ideas, which help you to increase your profits. Can you think of such Domains?” — you asked Robert, because he looked like he knows Domain-related aspects well. It never hurts to ask straight questions, when you know your interlocutor knows the answer.
“In my opinion, the incoming Web Store will be our Generic Domain. This is not a to be or not to be situation for us when Web Store does not exist, but it surely will increase our profit.” — he responded quickly, and he was perfectly right. Online Store with Payment Methods and Delivery tracking, is a great example of the Generic Domain.
Handling Food Wasting Problem
During your reasoning about the Domains, you had your time to think over problem with food wasting. This is definitely something, what must be taken care of. We have only one Earth, and ars doesn’t seem to be a friendly place to live.
“Robert, one last thing. I think I might have solution for your problem with overproduction.” — you started with caution. “What if the Web Store would only take Orders for the next day? If a given Dish can be Ordered and paid upfront, you will not have to worry about an amount of food, which needs to be produced. You will have a money and the numbers.” — your idea seemed to be reasonable.
“Yes, it sounds like an idea!” — Robert couldn’t hide his enthusiasm. “What’s even more, it brings a real value to our Customers, because now they will be sure, they will get their favourite Dishes. This way we will avoid their unhappiness, and they won’t even think about going to our competition. Let’s do this!” — he truly loved your solution.
Act III. Implementing Domain-Driven Design, Preparing For Event Storming
Now, you have an idea about Domains Mr. Sandwich operates in, so the time has come to start with Domain-Driven Design. The first phase is called Strategic DDD, and as a name suggests, it will help us with choosing a right strategy to solve our problems. We will start with a mental model in a form of Ubiquitous Language. Let’s create a vocabulary of Mr. Sandwich’s lingo.
Ubiquitous Language Vocabulary
Together with Robert, you came up with a list phrases characteristic for his organization. Fortunately, it wasn’t that hard, especially with much help from Mr. Sandwich’s owner.
- Chef - a cook, person who works in the kitchen and prepares Dishes.
- Factory - place, where all the food is prepared and cooked.
- Ingredient - anything from bread to potatoes.
- Recipe - instructions how to cook a particular Dish.
- Dish - final product, umbrella term for sandwiches, soups, lunches, etc., consist at least one Ingredient and Recipe.
- Customer - a direct client, person who buys Dishes.
- Delivery Point - place on a map, where Deliverer will be waiting with ordered Dishes.
- Deliverer - person who Delivers ordered Dishes to the Delivery Point.
- Payment Method - the way how Customer will pay for his Order.
- Web Store - e-commerce system, lets Customers place Order, and later Deliver it to their workplace.
Summary
It was one of those fruitful meetings, so after writing down all the phrases, you decided to summarize Domains. Robert’s firm operates in three of them:
- Core Domain is a food selling, this is what gives them money
- Supporting Domain is a delivery service, the company brings their products almost directly to your office
- Generic Domain will come to existence after Web Store is delivered, so they can increase their profit
After the summary of today’s meeting, you have scheduled an appointment but this time in Mr. Sandwich’s headquarters. That’s because you are going to facilitate an Event Storming Workshop, therefore you need to gather all Stakeholders in one place, so you can explore their Domain quickly and efficiently.