Skip to content

Sponsor: Do you build complex software systems? See how NServiceBus makes it easier to design, build, and manage software systems that use message queues to achieve loose coupling. Get started for free.

Learn more about Software Architecture & Design.
Join thousands of developers getting weekly updates to increase your understanding of software architecture and design concepts.


Follow @CodeOpinion

Software Design

Biggest scam in software dev? Best Practices.

What’s the biggest scam in tech that is deemed acceptable? Best practices. Everything has trade-offs and your context matters. Let me give various examples to get out of this dogma about best practices. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. Best Practices The topic for this video/came up when I came across this tweet from David Fowler. I couldn’t agree more. Too often, best practices, principles, practices, patterns, etc., are treated as rules without considering the reasons they exist or how they apply in your… Read More »Biggest scam in software dev? Best Practices.

Underrated skill as a developer

What do you think is an important skill to have when in a role or wanting to be in a position that requires making decisions around software architecture and design? There was a phase in the middle of my career that changed my point of view. I’d like to explain what is an underrated skill that I credit for making various technical decisions, including those around architecture and design. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. Budget This tweet resonated with me because there was… Read More »Underrated skill as a developer

Abstractions to easily swap implementations? Not so fast.

Why do you create an abstraction? One reason is to simplify the underlying concept and API. Another reason, probably more common, is that the internal implementation might change. While this can be true, it’s not always as straightforward as you’d think. I will give a couple of examples of things to think about when you’re designing an API. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. Expected Behavior I will use a Repository as the example in most of this post since it’s pretty common and… Read More »Abstractions to easily swap implementations? Not so fast.