Predator patterns

Christopher Alexander claimed an “I” lies behind all living structures[NoO4-04], though not all structures. He often wrote about structures that were dead, or at least not living. One interpretation of this is to think of the structure of things in the world as being alive when they are a product of a living process or at least a process that does not destroy the wholesome living structures.

But we live in a world constructed by living things. All structures must be living, even those Alexander considered dead. I believe he failed to recognise the life form. For one thing, these new building forms are propelled by something; their form is self-constructed. The style emerged from the environment, so they fit the bill of being at least alive in the sense that the system creating them is self-propelling and self-maintaining.

In his last book, The Battle for the Life and Beauty of the Earth[Battle12], he names the beast generating these structures ‘System B’. But he does not acknowledge that the system is alive with natural defence mechanisms and self-righting feedback forces, despite their clear presence.

Christopher Alexander tried to rekindle life in structures and buildings but may never have sought out the predator or parasite killing them in the first place, even when confronted by it. He definitely recognised the efforts by System B enough to list1 many of the effects in The Nature of Order, Book 3[NoO3-05]. A thing as good and powerful as the natural building process does not fade without reason. The natural unfolding process must have been attacked and subjugated, passively or actively.

Living processes thrive and survive through the creation of wholesome entities at each step. What do these other processes create to increase their ability to grow and continue? A good candidate is money. Money equips you with the power to control others directly while not supporting them in their processes. Money can hire labour to act without ideals. Production techniques developed over the last century have removed craftspeople who can create to a dynamic specification and solve local problems. These individuals were replaced with robots that follow instructions and fail as soon as there is a deviation.

Money uses image-driven creation because of distrust. A building developer will have goals but believes the builder can’t be left to resolve them, so they require an image before signing off. Because they are not trusted, a builder becomes untrustworthy. When they no longer share goals and diligence goes unrewarded, there’s no point in doing more than what they are paid to do. The further the builder is from the client and the less control they have over the implementation details, the less engaged they can be in the project. Money creates a care gap.

Image-driven construction gets things built fast. Even though they may be the wrong thing, they are complete. The contract is fulfilled, so everyone gets paid. If we are used to image-driven construction, it shifts our expectation towards seeing faster turn-around or reduced costs as a measure of success. Our goals shift from building the right thing to building within the contract as swiftly and cheaply as possible. When a developer buys land, they reward builders for being quick and cheap, so anything that slows the development down is cut or ignored. There is no clear benefit in trying to do or be better.

The core predator pattern is that of using expense reduction as a goal, not requirement satisfaction within a budget. It’s an abnormally attractive pattern and easy to slip into at all levels of any development. Getting a project right needs to be an effort that is coordinated at all levels. However, reducing costs and increasing pace only requires a team to put some effort into optimising costs and processes at the local level. When a team member finds a shortcut, they look more productive; their shortcut becomes the new baseline against which others are measured, and so the pattern spreads throughout the process.

‘Cheap and fast’ is a contagious goal. It’s a predator pattern of construction. It destroys other patterns by supporting the creation of many other anti-patterns forming around the forces of cost-cutting and metrics based on money rather than value.

Naming things

Some predator patterns are attractive. They pull you in and lure the unsuspecting into supporting their grander schemes. The systems operate unnoticed. Natural responses and motivations reinforce them and normalise their impact.

We name stars and comets. We name elements. So many of them are named after their discoverers or things dear to them. Naming things is important to people. It’s fame and legacy again. We want recognition of our purpose. The predator here is the feedback we get when naming things. It stirs us to find more things to name rather than discovering the connections and unifying or refining what we already have.

‘Coining the phrase’ is an anti-pattern . ‘Naming things’ for kudos and fame is an anti-pattern that affected the pattern movement quite badly. In fact, ‘leaving a legacy’ could be the prime predator pattern. Many poisons derive from the desire to leave a mark on the world—to escape death.

Denial of images and ego

The pattern based processes for designing deny this image-driven approach completely. The establishment, littered with people with reputations for designing beautiful buildings (even if they were never built), could not tolerate such impudence. Patterns contradicted their values because they were about place-making. They did not merely design a building, but made a place for people to inhabit and within which they could grow. Paper designs would not survive this assault, so they fought back.

The idea that a building was only good if built in a context also ran counter to the image-driven process. Patterns required an architect to aim to make a building fit its surroundings so well that it would not look out of place. Patterns invited designs that conformed and complemented rather than being curiosities and contrasts. This, too, was unacceptable for those wanting to leave a mark or a calling card. The pattern movement had to be stopped before it stripped all possibility of fame and reputation.

In a defensive manoeuvre, the establishment turned its back on Christopher Alexander. In some places, they halted projects before they were fully underway or claimed he was a traditionalist, denigrating his work as primitive and regressive[NoO4-04]. In other places, the establishment would bribe and cajole people into not working with him2 or demand strange requirements that were never asked of anyone else working on a development. Over his career, the establishment turned from loving to fearing, to shunning him, and then to indifference. There are still pockets around pushing the principles, but without perceiving the predators, the pattern based process will permanently remain prey.

Fame, fortune, and out-of-print books

Recognition and approval are powerful motivators. They’re a form of immortality for some and security for others. Either way, the result tends away from the natural process of building and towards a situation where the individual creates problems for the users of their products. In the case of books, authors wish to claim they have written a book; they want some authority.

There is no big money in writing books and even less in updating them. But being published is priceless. Well-loved books create talking opportunities and offers to work at better places for more money. This leads to an interest in holding the fame tighter than looking after the work. This predator pattern affects the motivation and integrity of authors3 of non-fiction works.

If you’re enjoying reading this and want more of my ramblings, I’m available for conferences and consultancy. Just drop me an email at sellout@unresolvedforces.com.

The draw to consultancy is a predator pattern too. The immortality associated with having an authoritative impact has an alluring aroma. Consultancy allows the individual to shed some of the drawbacks of failing, as it’s difficult to fail at telling people how to do things. But it’s a trap as a consultant becomes detached and has to start acting on instinct rather than experience. Eventually, they make the same mistakes as those without experience, but at least they are still paid for the advice.

These outcomes run counter to making a book available cheaply to others or ensuring the information inside the book is unrestricted to all who need it. They run counter to the principles of patterns, discovery, and dissemination.

There were also issues with the goals driving people to write them down. Developers enjoyed being part of the pattern movement because it was meaningful to them. But to elevate from bystander to credited pattern finder would be even better for so many. So, developers hunted down patterns and hoped to find something that could get them published. They tried to find patterns in their work. They tried to guess at patterns outside of it. This was the fork in the road where the software design patterns problems really began but could have been avoided.

When a developer’s goal is to find new patterns, they will find something they recognise as a pattern. We are, after all, pattern recognition machines, for the most part. If you plant an idea in my head, I will see it if I look hard enough. Consider the Kuleshov effect, where a short movie clip primes us to assume a particular emotion on a neutral face. We can accidentally use the wrong pattern because it was the first one we thought of or because we require finer discernment to see how it doesn’t fit. A developer on the hunt for patterns cannot see how their patterns are not patterns. They may be idioms or simple consequences, or even anti-patterns and recurring failures under a different lens. Just because something happens repeatedly doesn’t mean it’s good, and it doesn’t even mean it’s self-forming.

Some developers appear to have found patterns through wishful thinking. The general rule was to only include those which had been seen at least three times. Compared to the architectural patterns in A Pattern Language, software design patterns are seen far less frequently before we document them. All the two-star4 physical building patterns had plentiful examples. Some software design patterns, as documented, have only a single example. Others, none at all. We should only consider regularly witnessed patterns or those providing numerous concrete examples to better show commonality and variation.

Many of the most famous software design patterns had not been observed more than a handful of times before they were included in the catalogue. Once documented, they became easy to spot and suffered from the frequency illusion, also known as the Baader-Meinhof phenomenon. They were seen everywhere, even where they didn’t exist. This is another reason why the patterns in A Pattern Language[APL77] seem so different. Those in A Pattern Language are the kind which are seen repeatedly without anyone hunting them down, and they all appear to be self-starting patterns.

By inventing situations they wanted to see, software design pattern hunters claimed patterns so other people might begin to see them too. Or they claimed negative or abusive recurrences as patterns because they had lopsided benefits that tilted in favour of the author.

Command and control

Command-and-control begets those who want power. It’s a pattern borne of fearful insecurity and a desire for enduring life. It’s one of the most natural predator patterns, and only trust can counter it. But trust invites dangerous reliance on the unreliable. Any organisation will likely be risk-averse, and every time we reward faith with pain, the system’s assumptions will bias further towards control over guidance. Vision will turn to direction, and goals will turn to tasks. The burden of doing what you are told to do rather than what you believe should be done removes your drive to do the right thing. Then, your actions betray your intention; you do what is asked and prove them right. You can’t be trusted to do the right thing or speak up when you see someone doing wrong. The circle closes, and you dream of being in charge so you can do it better. You are now the next generation of those who tell rather than organise, demand rather than inform.

The accretion of policies by an organisation in response to problems could be called the scar tissue5 of wounds inflicted. The policies impede the flexibility of the organisation. They are a history lesson in the things that caused it pain in the past. And as with history, an organisation will not want to forget its lessons. The policies are a form of lost trust. They deny freedom for fear of future trespass. We see it with setback laws and planning permission, laws created because at some point people took advantage, and now cannot be trusted.

This predator pattern is the ‘lack-of-trust codified’. Written rules and laws hold us back from being allowed to make local judgements because it’s ‘quicker-and-cheaper’ to just rubber stamp a denied on a request than to carefully consider cases. The predator pattern generates variations of this anti-pattern wherever it hunts. ‘quicker-and-cheaper’ wins out over reasonable and considered.

Viral infrastructure

There are some anti-patterns that, while self-forming and systemic, are repulsive. They create unmistakable problems, but the root cause is difficult to abandon.

Personal transport is one such pattern. We’ve seen it grow slowly but inexorably over the last century. Whole cities have become owned by cars instead of people. The proliferation of suburbs was made possible by cars, but cars were reinforced by their existence in return. A pattern of mutual reinforcement such as that of cars allowing people to work further from home means more workplaces can grow, pulling in more people from further away. Shopping malls cater to more people. They have large parking areas, which are only required because transport infrastructure wasn’t built fast enough, so there are many cars and few people. The infrastructure to create all these highways takes up space too, meaning there are gaps between places that would have previously been within walking distance, reinforcing the need for a car.

We see this anti-pattern in software development as well. Many sites build up a web stack from a slow wrapper around a database, which requires more instances, load balancing, monitoring, fail-over, and virtual machine on-demand spin-up. But sometimes, all of that could be a single process on a shared device if the basic structure of the data stored was more efficient6. If your data were ‘walkable’, the collection of servers would not be necessary. If we start small by thinking about what we need now and optimising what we have rather than scale, we can get very far. But copying everyone else’s scalable architecture is cheap, intellectually, which can be fast to market.

There is, of course, a limit to this. Even in the real world, we need trains, buses, and highways between our walkable cities. It’s just a matter of how quickly we jump to large-scale solutions. We don’t catch the bus to the corner shop, even if there were a stop outside both your house and the shop. But we put up with a culture of getting in the car to travel less than a mile.

Regression to meanness

Broken windows and workarounds set a level of expectation. The anti-pattern of ‘deviation-to-low-standards’ can only be countered by actively working against degeneration. Not thoroughly investigating the root cause of a problem leads to hopeful fixes. These workarounds are faster than fully understanding problems and set a level of expectation around how quickly future issues should be resolved. The system rewards those who turn around fixes fast, not those who never create problems. The culture of workarounds breeds agents who prefer cure over prevention.

Design patterns suffered from many of these anti-patterns. Patterns became burdened by applying layers of corrections and increased numbers rather than digging deeper to find the fundamental forms or even create generative languages. The pattern movement suffered from naming and money creating weird incentives. The regression to an easier form for the sake of teaching led to the design patterns lessons we see being repeated today, misunderstanding the original GoF patterns and interpreting them in shallow and solution-oriented form.

All this left the software design pattern movement as one that pushed people away rather than attracting them.

1

which we will return to in the How Do We Fix Patterns section

2

Many examples of these incidents are recorded across Christopher Alexander’s publications, most notably in The Battle for the Life and Beauty of the Earth[Battle12], but also in the Production of Houses[TPoH85] and some implicit in The Nature of Order, Book 3[NoO3-05].

3

Don’t worry, I’m clearly immune. I keep releasing my content for free.

4

The none-, one-, or two-star mark Christopher Alexander used in A Pattern Language[APL77] to show whether the pattern was, to them, a draft, a very likely pattern, or almost certainly a pattern where all wholesome solutions would include its invariants in some way.

5

I picked up this term during a conversation, but it seems to originate in REWORK by Jason Fried, in the section ‘Don’t scar on the first cut’.

6

If you understand your data, you can drastically cut your hardware utilisation and response times.