Software architecture is all about making decisions. For example, you need to select an architecture style - monolith vs. microservices. You also need to select the numerous elements of your technology stack. And so it goes on…
There’s no shortage of strong opinions when it comes to architecture and design decisions. X/Twitter, for example, is awash with them. But I recently stumbled across this fantastic tweet by Rob Branson:
This means, among other things, that if someone outside of your team, e.g. on social media, strongly suggests that you to use technology X or architectural style Y, you should take that advice with a grain of salt.
In this article, I start by explaining why that’s the case. I then describe how you can make good technical decisions. I conclude with some advice on how to minimize the risk of making bad decisions. Let’s first look at what the context is and how it plays a key role in making good technical decisions.