Don’t let the tools you use overly-constrain your thinking. Use them as a starting point for design and discovery, and then bend them to your needs.
Alberto Brandolini says that EventStorming is his pizza and you can add your own topping. Every tool you use is somebody’s pizza, and you should always look for opportunities to tweak the recipe and find something that tingles your modelling tastebuds.
If you’re not familiar with the Bounded Context Canvas it is a tool for visualising the key design choices of a Bounded Context or a sub-system in your software architecture. …
One of the biggest time costs in software development is understanding how a system works. And the problem may be growing. Systems are getting more complex yet our ability to understand them doesn’t seem to be growing at the same rate.
As we continuously develop software systems, the complexity slowly increases and we don’t fully realise it. Nobody sets out to create a Big Ball of Mud, but many codebases end up that way due to the cumulative effect of the thousands of small changes we make.
Complex systems are harder to learn and harder for newcomers to be productive in. I’ve heard the opinion from many technical leaders that it is reasonable to expect a new hire to take upto 6 months to learn about the code, the domain, and the architecture before they become fully productive. …
As an architect, how often are you thinking about business models? If every significant architecture decision has business consequences, then knowing the business model and which trade-offs to choose is maybe the most important skill of architects.
But what is the actual relationship between a business model and a software architecture? I’ve been thinking about this a lot because I want a deeper understanding of the implications. If I know how decisions in one space affect the other, I’m going to make better architectural decisions.
It’s not just about business models and architecture, though. There are other systems involved in this tangled relationship. A software system is a model of a domain. Is the business domain the same as the business model? What about the organisation? …