This site uses cookies to improve your experience. To help us insure we adhere to various privacy regulations, please select your country/region of residence. If you do not select a country, we will assume you are from the United States. Select your Cookie Settings or view our Privacy Policy and Terms of Use.
Cookie Settings
Cookies and similar technologies are used on this website for proper function of the website, for tracking performance analytics and for marketing purposes. We and some of our third-party providers may use cookie data for various purposes. Please review the cookie settings below and choose your preference.
Used for the proper function of the website
Used for monitoring website traffic and interactions
Cookie Settings
Cookies and similar technologies are used on this website for proper function of the website, for tracking performance analytics and for marketing purposes. We and some of our third-party providers may use cookie data for various purposes. Please review the cookie settings below and choose your preference.
Strictly Necessary: Used for the proper function of the website
Performance/Analytics: Used for monitoring website traffic and interactions
This is the question I get asked the most, so I’ve put together this article describing a workshop recipe you can use. This workshop format is designed around both of these needs and uses two tools in order to find the most effective system design: EventStorming and the Bounded Context Design Canvas. Look for pivotal events?—?look
Thoughtful and effective decision-making was a key trend at the O’Reilly SoftwareArchitecture Conference in Berlin 2019. The ability to make good decisions might be the most important aspect of a softwarearchitecture practitioner’s job. Every day.every week.every month, you make critical architectural decisions.
If you would like to learn or practice how to break up a large business into domains and use them as the foundation for your softwarearchitecture and team organization, I have created a strategic domain-driven design kata that you may find useful. Domain message flow modelling is used for this step.
You can find out more about that here: [link] This kata is based on content from my workshops. This kata is split into four sections that address different aspects of architecting software systems. All architecture decisions are ultimately driven by a company’s business model, so I think this is a sensible starting point.
Mapping out your business’s domain landscape has many benefits: knowledge sharing, generating product ideas, providing the foundation for softwarearchitecture, aligning on requirements, but a common challenge is… “where do we start?” The following steps are my baseline format for a series of discovery workshops.
In fact, Software Design EventStorming is like a DSL for designing business processes that translate directly into code. Provide Design Training & Coaching Training can accelerate the design learning process for any engineer or architect. Visualisation techniques like EventStorming can also be used to design code.
The architecture of the software could be sliced up into a Leasing context and a Car Pool context. Leasing is responsible for managing the leasing process and keeping a historial record of all leases. If the answer is yes, it should probably not be coupled to your specific business process steps.
One of the challenges I see regularly is inertia following domain discovery workshops. The example I see most often is complex manual processes ( Operational Complexity ) involving multiple people, excel spreadsheets, and a variety of tools. Adding complexity to the software domain model to reduce operational complexity (e.g.
We will be running a remote-optimised domain-driven design workshop on 15–16th June where we will use some of the techniques discussed in this post and many others, like the bounded context canvas. This style of modelling will be slow and will not generate the huge insights of a chaotic, parallel modelling process.
?? Primary Heuristic 2: Align with Business Domain Unless we’re a startup that is constantly pivoting, macro parts of our business processes will remain stable over long periods of time. Putting Heuristics into Practice We still don’t have a flowchart yet for designing sociotechnical systems but we’re bringing more structure to the process.
To demonstrate this process, we will build a canvas for the following fictitious example (inspired by real examples from our consulting work): A large logistics company wants to expand into new verticals and integrate its offerings into an emerging open marketplace. You can also experiment with various workshop formats.
In the real world we can be vague about our business rules and processes. If you’d like to go through the whole process of modelling domains, shaping the softwarearchitecture, and finding aggregates, join my 2 day workshop at DDD EU in February 2020. Hope to see you there.
Loosely-coupled teams enabled by loosely-coupled softwarearchitecture is one of the strongest predictors of continuous delivery performance and organizational scaling. We had a three step business process, and each web page neatly-belonged to one of the business process steps, and each business process step was a team boundary.
We organize all of the trending information in your field so you don't have to. Join 5,000+ users and stay up to date on the latest articles your peers are reading.
You know about us, now we want to get to know you!
Let's personalize your content
Let's get even more personalized
We recognize your account from another site in our network, please click 'Send Email' below to continue with verifying your account and setting a password.
Let's personalize your content