A Software Architecture's Greatest Strength is Its' Greatest Weakness

An approach's greatest strength is also often its greatest weakness.  You see this in Software Designs or Software Architecture.  We design something to be optimized around a set of needs, business functionality, ease of development, ease of maintenance, data integrity, performance.  Those decisions create their own problem. 

We design and build systems optimizing our design around delivery capability, technology, NFRs, and business functions. Those designs and systems architectures take into account the best practices at that time. Those best practices sometimes come from other companies with different priorities and skillsets.

The great strengths of your present-day designs will make up a good percentage of the future weaknesses. This should not be a surprise. We design around what we know now and around the technology available at that time.  

Your successors will toss your design in the future when the strengths of the current approach become the things holding back forward movement.

Monoliths and Microservices

This video walks through some of the strengths that become weaknesses for Monoliths and for Microservices.  It discusses the pros and cons of some of their attributes.

SOA and Direct and API Gateway

This video walks through some of the strengths that become weaknesses for service-to-service communication patterns. It discusses the pros and cons of different approaches and describes some of the big pros that are also some of the bigger cons of those approaches.


Created 2022 01

Comments

Popular posts from this blog

Accelerate Storage Spaces with SSDs in Windows 10 Storage Pool tiers

Understanding your WSL2 RAM and swap - Changing the default 50%-25%

Java 8 development on Linux/WSL with Visual Studio Code on Windows 10