Software Architecture
42 articles · all categories
Software Architecture articles
13 articles from 2023 · show all
October 2023
Solve the problem, not a different more difficult problem
Solve the problem at hand, not the one you imagine might come next. A simple fix now often beats a complex one later.
August 2023
Avoid spooky action at a distance
Shared state in programming isn't the enemy, it's unclear dependencies that tangle your code. Keep it clean with explicit state dependencies and strict access guidelines
Finding modules in a Big Ball of Mud with ChatGPT
Detangling a Big Ball of Mud is hard. You have to find domain boundaries where none exist. Looks like AI can help 🤩
Followup answers to Forget complicated code, focus on the system
Why are utility files bad? How do you recognize architectural complexity? What the hell is a transitive dependency?
Forget complicated code, focus on the system
Clean code matters, but it's the architectural complexity that truly impacts your productivity and bug count. Focus on simplifying the system, not just the code.
July 2023
What I learned from Team Topologies
You can't escape Conway's Law. Might as well use it for good.
June 2023
Why taming architectural complexity is paramount
Unravel the hidden costs of architectural complexity in software engineering and learn practical strategies to tackle it. Boost productivity, reduce defects, and improve staff retention with insights from an MIT PhD thesis.
May 2023
Two types of complexity and their impact
Complicated code slows down junior devs, while complex systems impact senior devs more. Focus on managing system complexity & dependencies, not just simplifying code.
You can't fix the wrong abstraction
Unlock the secrets to combating architectural complexity in software development and learn to identify and fix the wrong abstraction. Boost productivity, reduce bugs, and retain more staff.
April 2023
A backend service nobody can grok
a little case study from an upcoming book I'm writing with Manning about software rewrites
Own the outcome, not the work
Efficient problem-solving in engineering with a shift in perspective – focusing on user outcomes can lead to innovative solutions and change your approach to system design.
DRY vs SoC, a difficult choice
What is the essential difference between DRY and SoC principles in software engineering and how do you balance the two
March 2023
Clever technical hackery can't solve the wrong design
A simple change in perspective can help you overcome complex technical challenges and save time on future projects.