Is design an anti-pattern in certain contexts?

David Hawk contributed to putting this thought in my mind, and im curious if he or others might have something to say about that here.

I am referring to pattern’s in the pattern language sense, and an anti-pattern as “a common response to a recurring problem that is usually ineffective and risks being highly counterproductive.”

So, in a way, this is questioning whether pattern languages are universally applicable/effective, because they are usually (to my understanding) intended to be a tool for design within a context, so if design is an anti-pattern within a context then so is a pattern langauge in that case?

I more or less am just thinking out loud here, and have many more questions than answers. (or should I frame it as a Problem/Solution within a system of forces :stuck_out_tongue: )

cc: @daviding

Not convinced yet that pattern languages necessarily have to be “good”, and by definition of whom? Alexander’s also isn’t the only one, but a very insightful, humanitarian “good” one, so sure, inventors and humanists hope that their tools and languages will be used for good. Patterns and the entire language can become outdated, misinterpreted, misused, or copied/transformed for “bad” use.

Also not sure if I understand the question: what do you mean - deliberate, manual design being an anti-pattern in a context where a pattern could/should be used, but how would that reflect back onto the pattern language the pattern in question is from?

Universal applicability of a/the pattern language(s), I guess that’s asking about a meta pattern language vs. the particular Alexander pattern language for architecture. Sure, Alexander’s individual patterns on the surface appear to be for architecture, and then he collected many of them into a whole language of such patterns, and from this selection and the particular patterns he collected, the hope might be that you discover a systemic universal meta pattern in it of what’s good and how to go about things, which should indeed be translatable universally into other domains despite each pattern and another language constructed from it might look entirely different from anything Alexander did. That’s where the GOF design patterns fall short, they’re more of a simple collection of useful, but otherwise relatively random patterns, they’re not a language and not necessarily “good” or humanistic or systemic, more like best practice recipes.

Why not come up with a practical example with what you mean by “design” (or is this a synonym for pattern, or for the method of how to come up with or discover patterns?), and how “anti-patterns” (or is this using a pattern from the pattern language in the wrong context) might make a statement about some/a pattern language? Given that “pattern” and “pattern language” happen to be Alexander jargon, and “anti-pattern” a software term, and these don’t necessarily always go together well for interesting reasons, but my impression is that Alexander would say that we’re mostly doing anti-patterns in architecture as the default, which is why he collected some non-anti-patterns.

@Robert_Best let me respond to your question, because there’s a larger context at play, in your interaction with David L. Hawk. He was a professor at NJIT, cross-appointed between architecture and management, so he knows the pattern language literature well, in the domain of built environments.

Christopher Alexander, the primary proponent of a pattern language approach, never used the term “anti-pattern”. That arose within the days of the History of Patterns, and may reflect a weak appreciation of pattern language as a whole.

A generally accepted definition of an Alexandrian pattern is as “a solution to a problem in context”. The difficulty comes when users forget about context. It’s like asking how fast an apple falls to the ground, and then forgetting to say that the context is that we’re on the moon.

So, I’ve been an advocate towards not using the idea of “anti-pattern”, but instead engaging in a discussion of the context in which a solution may or may not work. As an extreme example, Thalidomide is a drug that may be appropriate in the treatment of cancers and leprosy, but is not advised for use by women of child-bearing age. That doesn’t make its prescription an anti-pattern, it’s still a pattern in a specified context.

Here is an excerpt from David Ing, “Pattern Manual for Service Systems Thinking: A proposal for discussion”, Proceedings of the 2016 International PUARL Conference , cached at http://coevolving.com/commons/20161028-pattern-manual-for-service-systems-thinking

        4.3.3. From anti-patterns to wayfaring

For built environments, a pattern can be described as “relatively more alive, or more dead” and “relatively stable, and self-sustaining – or it is relatively unstable and self-destroying”.

Each of these “dead” patterns is incapable of containing its own forces, and keeping them in balance. What happens then, is that these forces leak out, beyond the confines of the pattern where they occur, and start to infect the other patterns (Alexander, 1979, p. 127).

In the end, the whole system must collapse. The slight stress caused by the overflow of forces from these first unstable patterns spreads first to nearby patterns – and then then spreads still further, since these nearby patterns become unstable and destructive, too (Alexander, 1979, p. 130).

The source of the anti-patterns idea originated not from architecting built environments, but instead from a software developer outside of the core community cataloguing new patterns.

This suggestion is inspired by a story told about Thomas Edison. While he was trying to build the first electric light, he tried hundreds of possible materials for filaments. Every experiment came out a failure. At some point, someone remarked to him that all those must be discouraging. He responded that he was not discouraged – after all, he now knew hundreds of things that didn’t work.
If one does not know how to solve a problem, it must nevertheless be useful to know about likely blind alleys. This is particularly true when something appears at first to be a solution but further analysis proves it is not. Even if one knows the right answer, however, it may be important to point out particular hazards associated with that answer or seemingly trivial variations of that answer that turns solutions into non-solutions.
I have coined the term antipattern to refer to such non-solutions. An antipattern is just like a pattern, except that instead of a solution it gives something that looks superficially like a solution but isn‘t one. If an antipattern is coupled with a pattern, it might be tempting to think of it as a pattern-antipattern pair. That would impart a certain energy to the solution (Koenig, 1998, p. 387).

This description of anti-pattern orients towards a problem-solving orientation. Bounded problem-solving distracts explorers from appreciating contexts, e.g. a filament that fails to perform under one set of circumstances may turn out to the ultimately best material in a reframed set of circumstances. Further, an anti-pattern was originally envisioned in a dialectic with a pattern, combining fruitful and fruitless paths towards generating better patterns. [pp. 39-40]

On the topic of design … I’ve found it helpful for people to have an appreciation that outcomes are not always as originally intended, and there could be emergent events over time. An illustration from Henry Mintzberg is helpful to get the idea across.

1987_CalMgmtRev_v30_n1_p018_Mintzberg_TheStrategyConcept_Figure1_540px

  • Figure 1: Deliberate and Emergent Strategies

Henry Mintzberg, 1987. “The Strategy Concept I: Five Ps For Strategy.” California Management Review 30 (1): 11–24. https://doi.org/10.2307/41165263., alternative search at https://scholar.google.com/scholar?cluster=1077689366563106580

Incidentally, there’s the issue of whether practitioners should or should not be extending pattern language towards wicked problems.

Pattern language is not for wicked problems , said Max Jacobson, coauthor with Christopher Alexander of the 1977 A Pattern Language: Towns, Building, Construction . In addition, the conventional definition of an Alexandrian pattern as “a solution to a problem in context” when applied to social change might better use the term “intervention”, rather than “solution”.

… see “Exploring the Context of Pattern Languages” | March 3, 2018 at http://coevolving.com/blogs/index.php/archive/exploring-the-context-of-pattern-languages/

What is this thing called Truth or Veracity?

Truth is a mobile army of metaphors, metonyms, and anthropomorphisms—in short, a sum of human relations which have been enhanced, transposed, and embellished poetically and rhetorically, and which after long use seem firm, canonical, and obligatory to a people: truths are illusions about which one has forgotten that this is what they are; metaphors which are worn out and without sensuous power; coins which have lost their pictures and now matter only as metal, no longer as coins

truths are metaphors which do not correspond to reality. Although all concepts are [metaphors] invented by humans (created by common agreement to facilitate ease of communication), human beings forget this fact after inventing them, and come to believe that they are “true” and do correspond to reality…

Anyone want to add?

All truth passes through three stages. First, it is ridiculed. Second, it is violently opposed. Third, it is accepted as being self-evident.