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
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.
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.
My participation at these conferences is a mixture of talks and workshops. I’ve used Miro exclusively for my in-person workshops and talks, and I plan to for all upcoming events. Miro for In-person Workshops? At NDC Porto 2022, I teamed up with Maxime Sanglan-Charlier to run our 2 hour softwarearchitecture-themed workshop.
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. Martin Fowler argues that internal quality of a software system enables new features and improvements to be delivered more sustainably.
Domain-Driven Design is an approach to designing systems, usually software, that emphasises creating a common language between domain experts and system builders. Here’s an example I use in talks and workshops: How to group these concepts into domains? Software architects might want to see the domain boundaries for 100 microservices.
They are also a vital step toward defining the Kickstarter workshop. AMET designs and facilitates the Kickstarter Workshop. We recommend this to be a three-or-more-day workshop where the AMET gathers with relevant stakeholders (business, product, technology, etc.). This is fundamental to having a successful kickstart.
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.
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.
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.
One of the challenges I see regularly is inertia following domain discovery workshops. In companies with many teams and many millions of lines of code, including a lot of legacy, there are endless things that can be improved in the product, software, and organization. Why Thing Get Stuck After Discovery?
The architecture of the software could be sliced up into a Leasing context and a Car Pool context. The essential characteristics of a library context Library Context Example: Car Leasing Consider an example car leasing business which allows customers to temporarily lease cars for between 1 and 28 days.
Organisations maximising the advantages provided by microservices tend to be organisations which view microservices not just as a technical tool, but a sociotechnical tool.The way software systems are shaped determines the communication paths and the coupling between development teams. As a consequence, we also have subservient teams?
In every workshop, I always ask everyone “Imagine there is no text here. What do you read from the image below, and what might you propose to do next in the workshop? You can do this with almost any visual workshop technique. What is this arrangement of colours and shapes telling you?”.
There are thousands of ways we can shape the software systems we build and organise our teams around them. The products themselves are software systems which grow harder and harder to reason about as they scale and age. Lack of accountability leads to unmaintainable software that grows harder and harder to change.
In software, reacting to unforeseen circumstances in real-time is not possible. The gap between defining business requirements and translating them into software needs to be minimised in order to prevent this category of problems. In the software system, we need to decide the business transaction boundaries aka DDD Aggregates.
the brief past, the bewildering present, and the beautiful future” here , with resources here ), and John was with our friends from O’Reilly at the latest NYC SoftwareArchitecture Conference giving a talk on “Mostly Serverless” and a tutorial covering “Continuous Delivery in an Ephemeral World”. I hope to see some of you there.
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. We can use these to capture outcomes from the workshop aka follow-up actions. In my in-person workshops, I’ve faced this hard limitation.
They need a more loosely coupled architecture and empowered teams. The Warehousing Modernization Enabling Team (an AMET) has been established to guide modernization in the Warehousing domain, which consists of 100+ software engineers and a monolithic codebase. You can also experiment with various workshop formats.
It seems unrealistic wanting the best of both world (speed and reliability) but the field of software engineering established during the past decade that speed and reliability can both be achieved. Moving from a single to multiple products can be one of those situations where architecture starts to get in the way.
The value is in talking through the template, discussing each part, and identifying unknowns, conflicts, or other interesting factors that may benefit from additional discussions or potentially workshops. Feel free to leave a comment or message me directly if you’re interested in this topic and want to discuss anything.
Loosely-coupled teams enabled by loosely-coupled softwarearchitecture is one of the strongest predictors of continuous delivery performance and organizational scaling. Nicole Forsgren and Jez Humble report this finding in their recently-published book Accelerate , drawing on their extensive empirical research. “If
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