Some things we want are self-destructive

These are the opposite of anti-patterns. Where anti-patterns have robust intrinsic but weak or negative extrinsic effectiveness, these self-destructive patterns invert both axes.

These are the self-destructive organisations of elements that won’t stay put unless maintained. Things such as hexagonal1 architecture don’t come about naturally. They have to be invented and adhered to on purpose.

Things that fall apart when you aren’t actively maintaining them can’t be patterns.

Without self-reinforcement of the configuration, it can’t self-form. The maintenance cost reduces the value of these kinds of solutions. We have to overcome the lack of reinforcing feedback with diligence. This is where we must use our authority and persuasive skills to maintain a good state.

Axes of Effectiveness Axes of Effectiveness.

Some non-patterns can self-maintain once started. Quite a lot of pseudoscience is self-maintaining. Each instance of pseudoscience is undoubtedly not self-starting2 because, by definition, it is not discoverable from truth or empiric evidence. But note how quickly detractors are seen as the enemy, how evidence is seen as a conspiracy against the science, and how any positive evidence is often blown out of proportion or regurgitated without criticism.

Architectural idioms are valuable because they can provide repeatable solutions to commonly occurring problems. We assume they are idioms because we can’t be sure they are self-forming. They aren’t self-destructive, as idioms still have a mechanism for spreading. There are many things in this non-self-destructive set. They include modern observations such as domain-driven design, microservices, language construction idioms such as the Backus-Naur form, and relational database idioms and their normal forms. There is a huge set of things that may reoccur, but we lack evidence that they are self-forming. Many have tremendous value and provide a foundation upon which future realisations can be made. But many are likely not patterns.

Then there are the self-destructive or exploding patterns. Rules about spending, for example. You cannot save up to be Google, but organisations still try to cut costs rather than increase revenue as a default reaction to reduced profits. You cannot cut costs to become Amazon; you must invest to create value and grow. If your number one intention is to grow, cutting costs is usually a waste of time.

Management

In any organisation that has a production pipeline, you will find that it has a natural tendency to grow longer if you don’t observe the value in waste reduction. DevOps was built on the concepts of the Theory of Constraints and actively fights against the self-destructive nature of taking the obvious next step.

The obvious route for a manager is cutting costs and optimising what they can. However, you can only optimise what you can see, and it used to be that many managers were blind to what to optimise due to their education. Managers would buy more capacity rather than learn to exploit what they already had. In software development, the obvious solution was adding more developers to a project. The Mythical Man-Month[MMM75] addresses this falsehood. After the DevOps revolution, the recognised solution was to reduce end-to-end iteration time so that developers could create value and receive feedback faster. It’s a shame that in the nearly 50 years since the book was released, not all management teams seem to have acknowledged these observations.

The crisis of management alludes to the exploding nature of these self-destructive patterns by way of saying that production processes become worse over time, not because of bad decisions but because of a lack of informed decisions. When we take the default action, the system’s self-forming, self-destructive nature shows itself.

The default action is the action of the unguided system. Management is needed when a system naturally moves away from the extrinsic good state and towards a contradictory but intrinsic good state. Management, therefore, is always needed when the equilibrium of a system does not match the core goals; otherwise, it will always regress to a worse state.

In effect, management’s duty is not to execute the obvious actions but to make the correct actions obvious.

1

This is the Ports and Adapters approach to layering software so that business logic stays within well-defined boundaries and only uses ports for communication with its dependencies. Adapters allow the business logic to avoid being tied to technologies and new use cases to use existing logic.

2

A new pseudoscience pops up every now and again, so the concept itself, like constellations, is a pattern of human behaviour, but each one is idiomatic.