Blog by Eberhard Wolff

Blog Post

No future-proof architectures!

Architecture: The term itself radiates stability. It seems clear, then, that good architecture should be future-proof. But precisely this goal often leads to problems. Does that mean it is better not to design future-proof architectures?

Blog Post

Modules – Microservices – Monoliths

Microservices were supposed to solve every architectural problem conceivable. Not too surprisingly, that was not the case. Now themonoliths thatwe have been developing for decades are supposed to be the solutionagain. Inthis discussion, the foundation for developing complex software systems has been forgotten: Modularization, which is far more important than the question of monoliths vs. microservices.

Blog Post

Developers are Irresponsible and Childish!

About Respect and Trust

Blog Post

Does “Broken” Agility Help?

Agile software development is often insufficiently implemented and executed. Does it help anyway?

Blog Post

Domain-driven Design in the Large

If you know how to classify the concepts of DDD correctly, it will be easy to achieve good results - and there is a structured approach to achieve that!

Blog Post

Command & Control, SAFe, Domain-driven Design, and Release Trains

Handling Complex Software Projects

Blog Post

The Perversion of Agile Metaphors

Agility is at its core a set of values. Do the typical agile metaphors actually fit the values or do they rather lead to misunderstandings?

Blog Post

The NUMMI Factory — A Parable About Software Development

Software development is not difficult because of the technical challenges, but because so many people are involved. A story about a car plant shows how other industries deal with these challenges and what they have learned.

Blog Post

No Silver Bullets - Except Continuous Delivery?

How Continuous Delivery Improves Software Development

Blog Post

Continuous Integration Contradicts Features Branches!

Features branches are a popular approach to separating the development of different features - but unfortunately this contradicts continuous integration’s goal of continuously integrating all changes. So what to do?

Blog Post

Do We Worship Complexity?

Complexity is the most important challenge in software development. So it is important to always strive to eliminate complexity. But sometimes we worship complexity - and that can make complexity problems unsolvable.

Blog Post

The Problem With Agility

Why We Are Still Stuck in Agile Transformations

Blog Post

No-Principles Software Architecture

The traditional principles of software architecture often lead to problems. Understanding these challenges is the first step towards eliminating them or even avoiding them right from the start.

Blog Post

Code Redundancy or Reuse?

Reuse used to be the holy grail of software development. If developers reuse code, they don’t have to write it again. This should increase productivity significantly. In the meantime, however, some things have changed - and even redundant code has advantages. So avoiding redundancy is also just another trade-off.

Blog Post

Technical Debt Just Happens

…But You Will Have to Deal With It!

Blog Post

Microservices? Or Rather Monoliths?

Microservices are a hype. Now, critics suggest to return to monoliths. But does that really help?

Blog Post

Self-contained Systems: A Different Approach to Microservices

Microservices are the current hype in the Software Architecture community. However, microservices can be used in many different scenarios to reach different goals. Self-contained Systems (SCSs) are one approach to achieve some of those goals while avoiding many common pitfalls.