Blog on Uwe Friedrichsen
AI and the ironies of automation - Part 2
AI and the ironies of automation - Part 1
It is your fault if your application is down
Solving the wrong problem
The process deadlock
A note about eventual consistency - Part 2
A note about eventual consistency - Part 1
Thoughts on AI and software development - Part 5
Thoughts on AI and software development - Part 4
Thoughts on AI and software development - Part 3
Thoughts on AI and software development - Part 2
Thoughts on AI and software development - Part 1
(Un)coupling in distributed systems - Part 2
(Un)coupling in distributed systems - Part 1
The long way towards resilience - Part 10
The long way towards resilience - Part 9
The long way towards resilience - Part 8
The long way towards resilience - Part 7
The long way towards resilience - Part 6
The long way towards resilience - Part 5
The long way towards resilience - Part 4
The long way towards resilience - Part 3
The long way towards resilience - Part 2
The long way towards resilience - Part 1
Projects considered harmful - Part 2
Projects considered harmful - Part 1
Responsible IT - Part 2
Responsible IT - Part 1
The need-vs-want dilemma
Software - It's not what you think it is - Part 7
Software - It's not what you think it is - Part 6
Software - It's not what you think it is - Part 5
Software - It's not what you think it is - Part 4
Software - It's not what you think it is - Part 3
Software - It's not what you think it is - Part 2
Software - It's not what you think it is - Part 1
Back to the future
Rethinking job ads - Part 2
Rethinking job ads - Part 1
Forget efficiency
ChatGPT already knows - Part 7
ChatGPT already knows - Part 6
ChatGPT already knows - Part 5
ChatGPT already knows - Part 4
ChatGPT already knows - Part 3
ChatGPT already knows - Part 2
ChatGPT already knows - Part 1
Let's (not) break up the monolith - Part 2
Let's (not) break up the monolith - Part 1
Reality check
The tail at scale
Watch your time - Part 2
Watch your time - Part 1
Keeping the balance
Towards greener requirements
People only change in pain - Part 2
People only change in pain - Part 1
The right dose of resilience
The business case of resilient software design
The missing ops-dev feedback loop
The 100% availability trap
Why we need resilient software design - Part 5
Why we need resilient software design - Part 4
Why we need resilient software design - Part 3
Why we need resilient software design - Part 2
Why we need resilient software design - Part 1
Resilience vs. Fault tolerance
Resilience
In search of a robust change model
The public cloud revolution - Part 2
The public cloud revolution - Part 1
Leaving the rat race - Part 6
Leaving the rat race - Part 5
Leaving the rat race - Part 4
Leaving the rat race - Part 3
Leaving the rat race - Part 2
Leaving the rat race - Part 1
The non-existence of ACID consistency - Part 4
The non-existence of ACID consistency - Part 3
The non-existence of ACID consistency - Part 2
The non-existence of ACID consistency - Part 1
The disruption delay
The limits of standardization
The non-functional-no-value trap
People are not resources
The industrialization of IT fallacy
Quality - The unknown entity - Part 4
Quality - The unknown entity - Part 3
Quality - The unknown entity - Part 2
Quality - The unknown entity - Part 1
The importance of comments - Part 3
The importance of comments - Part 2
The importance of comments - Part 1
Don't make me think!
The importance of documentation
The cloud-ready fallacy
The limits of the Saga pattern
The microservices fallacy - Part 11
The microservices fallacy - Part 10
The microservices fallacy - Part 9
The microservices fallacy - Part 8
The microservices fallacy - Part 7
The microservices fallacy - Part 6
The microservices fallacy - Part 5
The microservices fallacy - Part 4
The importance of resilience engineering
The microservices fallacy - Part 3
The microservices fallacy - Part 2
The microservices fallacy - Part 1
The value of speed
The purpose of architecture
Throwing things away
Simplify! - Introduction
Simplify! - Part 15
The continuous amnesia issue
Simplify! - Part 14
Simplify! - Part 13
Simplify! - Part 12
Simplify! - Part 11
Simplify! - Part 10
The laws of architectural work
Open Source Software - Part 3
Open Source Software - Part 2
Open Source Software - Part 1
Simplify! - Part 9
Simplify! - Part 8
Worlds apart
Simplify! - Part 7
Simplify! - Part 6
Simplify! - Part 5
Dismiss maturity models
Simplify! - Part 4
Simplify! - Part 3
Simplify! - Part 2
Simplify! - Part 1
Degrees of uncertainty
Acting under uncertainty
Understanding uncertainty
The invisibility dilemma of software
Legacy systems
The reusability fallacy - Part 4
The reusability fallacy - Part 3
The reusability fallacy - Part 2
The reusability fallacy - Part 1
The different flavors of IT - Part 2
The different flavors of IT - Part 1
The three waves of digital transformation
Systems thinking and quality
The evolution of IT
All models are wrong. Some are useful!
The demise of business processes
The evolution of markets