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
How do we break a large system into smaller, more manageable modular components? This is the question I get asked the most, so I’ve put together this article describing a workshop recipe you can use. 45 minutes) I recommend allocating a full-day for this workshop as a starting point. 1 hour) Candidate Context Modelling (min.
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.
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.
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? Domains are subjective and they are not mutually exclusive.
For example, security concerns and unreliability becoming commonplace, like the recent Southwest Airlines scheduling crisis caused by a decades-old scheduling system. Architecture modernization initiatives aim to convert aging architecture into modern architecture, applying the latest tech innovations and architectural patterns.
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 softwaresystems. 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.
Loosely-coupled teams enabled by loosely-coupled softwarearchitecture is one of the strongest predictors of continuous delivery performance and organizational scaling. Decoupling Streams of Work Our goal when designing systems is to maximise the speed of delivery and value of the work we deliver.
Martin Fowler argues that internal quality of a softwaresystem enables new features and improvements to be delivered more sustainably. Spread Domain Expertise Design is more than generic technical patterns that can be applied to almost softwaresystem.
The key to loose coupling is to understand how the system you are building is going to change, and minimising the cost of those changes. Is there any way it’s possible to predict the future so that our architecture can easily absorb the changes we need to make of it?
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 softwaresystems are shaped determines the communication paths and the coupling between development teams. As a consequence, we also have subservient teams?
The figure below shows the typical life-cycle of an architecture modernization initiative, including commonly observed points where we have observed AMET formation. Their technology landscape has a high level of what they consider to be legacy or heritage systems — monolithic systems with tens or hundreds of developers working in them.
There are thousands of ways we can shape the softwaresystems we build and organise our teams around them. Sociotechnical systems are complex systems formed of complex systems. The products themselves are softwaresystems which grow harder and harder to reason about as they scale and age.
If someone from a different culture with a different naming convention cannot be served by a system, it’s not good business or publicity. Transactional & Invariant Business Rules To enforce business rules in softwaresystems, transactional boundaries need to be identified: which business rules must succeed or fail together.
One of the challenges I see regularly is inertia following domain discovery workshops. Some complexity we embrace because there is an opportunity to differentiate, whereas some complexity is providing little or no value and is simply making our systems more complex and expensive to maintain. It’s also possible to exchange complexity.
Most companies have their own language for talking about products, platforms, systems, value streams and so on. Not all parts of a system are considered to be part of a product. The final column, Responsibilities , captures the parts of the system that each team owns. The top 3 levels of Ross Clanton et al.’s
The system needs to be highly reliable because even just a little downtime can alienate loyal customers. Two particularly relevant patterns are Efficiency Enables Evolution and Higher Order Systems Create New Sources of Worth. In Wardley lingo, Google Maps is so efficient that it acts as a building block for higher-order systems (e.g.
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