Thursday, June 22, 2017

Notes on pattern making: June 22, 2017

  • “No pattern is an isolated entity. Each pattern can exist in the world, only to the extent that it is supported by other patterns: the larger patterns within which it is embedded, the patterns of the same size that surround it, and the smaller patterns which are embedded in it. This is a fundamental view of the world.” ~ Christopher Alexander
  • "Are you paying attention to Alexander’s more recent view that the use of patterns indiscriminately was a bit haphazard. He developed a process for how patterns should unfold in time – a process of structure-preserving transformation. That’s in the four volume The Nature of Order (especially vol 2)." ~ comment by fourcultures
  • "Part of what I like about this pattern language is that it includes organizations and resources for each pattern, raising the possibility that a pattern language could be used as an organizing tool (where do I fit? who do I depend on and need to collaborate with? who depends on me?) or as a guide for curriculum development (a student would major in a pattern; but understand well the patterns connected to their specialty plus the “whole” modeled by the pattern language)." ~ comment by Tom Atlee
  • "I think of a pattern as 'a design element'—-something we need to attend to when consciously creating a healthy whole (of whatever the pattern language is about). Another way I think about it is as a 'need' of a healthy system. A major test of a pattern is whether we can manifest it in many ways." ~ Ibid.
  • "The [Liberating Voices (MIT Press, 2008)] pattern language begins with the most general patterns (“Theory”) and proceeds to the most specific (“Tactics”). Each pattern is a template for research as well as action and is linked to other patterns, thus forming a single coherent whole." ~ from the marketing blurb
  • "A lot of the papers that are labeled a pattern language are not. For example, Coplien's process patterns are true, valuable, and important. But they are not a pattern language. There are too many holes. A pattern language has to be complete in some sense. There are various States of a pattern, starting from fledgling or proto-pattern and going up all the way to be part of a pattern society or group of collaborating patterns within a pattern language." ~ Ali Arsanjani
  • "A pattern has defined fields, including Context, Problem, Forces, and Solution. A pattern is used in a certain design Context, and considers a recurring design Problem in this context. It focuses on the Forces which confront the designer, before describing a Solution--a proposed approach to the situation which resolves the tensions among forces." ~ M. Mahemoff
  • "The expertise is in the language." ~ CA
  • We extract meaning from chaos by spotting patterns. It is the signal in the noise.

Here is a "how to do it" series of instructions about creating pattern languages by a guy named Ward Cunningham:

1) Pick a whole area, not just one idea. I like subject matter that is practical but seldom explored in a text book. You know, the kind of stuff you have to learn from your colleagues on the job. The discussion on the "patterns" list got me thinking about checking data.

2) Make a list of all the little things you have learned through the years about the area. Imagine that your kid brother has just taken responsibility for this area on his first big job. You're getting together this weekend. What are you going to tell him. Make a list.

3) Cast each item on your list as a solution. I like to write a sentence with "therefore" in the middle. You will have to think a little deeper here to figure out the forces that bear on your solutions. It's ok to speculate. I find this to be a rewarding activity since I often find new reason for what I do.

4a) Now write each item as a Pattern. I've come to favor a four paragraph form where the second paragraph ends with the pivotal "therefore:". This is a good time to flip through Alexander's Pattern Language. I feel my work has always improved when I more closely mimic his style. I'm just now learning to make the first and last paragraphs carry weight. These are the ones that link a pattern with others in the language.

4b) Organize your patterns into sections. Write a little introduction to each section that lists each pattern by name. You may find you need to adjust your linking paragraphs as you study the higher level structure of your patterns. Try to keep 4a and 4b fluid as you write. As you become more familiar with your patterns you may find that they organize themselves.

5) Now write an introduction to your pattern language that hints at the forces you will be addressing.

The Public Sphere Project is using the web to annotate each of the 136 patterns that make up their Liberating Voices project.

The already existing division of theology into academic, systematic, biblical, and practical theology (maybe even including mystical theology) may be the discovery of a vertically organizing framework in existence in the discipline itself.

Oyvind Holmstad blogging on pattern languages offers this helpful way of making patterns:

Identifying any type of pattern follows the same criteria in architecture as in hardware or software.

1. A repeating solution to the same or similar set of problems, discovered by independent researchers and users at different times.

2. More or less universal solution across distinct topical applications, rather than being heavily dependent upon local and specific conditions.

3. That makes a pattern a simple general statement that addresses only one of many aspects of a complex system. Part of the pattern methodology is to isolate factors of complex situations so as to solve each one in an independent manner if possible.

4. A pattern may be discovered or "mined" by "excavating" successful practices developed by trial-and-error already in use, but which are not consciously treated as a pattern by those who use it. A successful pattern is already in use somewhere, perhaps not everywhere, but it does not represent a utopian or untried situation. Nor does it represent someone’s opinion of what "should" occur.

5. A pattern must have a higher level of abstraction that makes it useful on a more general level, otherwise we are overwhelmed with solutions that are too specific, and thus useless for any other situation. A pattern will have an essential area of vagueness that guarantees its universality. – Nikos A. Salingaros

Here's a gnarl of quotations from CA: "The patterns are patterns of action, and the action will not happen unless the patterns are felt, and created, and maintained by the people whose action goes into the patterns . . . patterns operate upon the whole : they are not parts, which can be added – but relationships, which get imposed upon the previous ones, in order to make more detail, more structure, and more substance – so the substance of the building emerges gradually . . the whole emerges. You are able to do this only when you no longer fear that nothing will happen, and you can therefore afford to let go of your images. because the gaps get filled, the small things that are wrong and gradually corrected, and finally, the whole is so smooth and relaxed, that it will seem as though it had been forever. It has no roughness about it, it simply lies there stretched out in time. Architects sometimes say that in order to design a building, you must have “an image” to start with, so as to give coherence and order to the whole. But you can never create a natural thing in this state of mind. If you have an idea – and try to add the patterns to it, the idea controls, distorts, makes artificial, the work which the patterns themselves are trying to do in your mind. Instead you must start with nothing in your mind. You are able to do this only when you no longer fear that nothing will happen, and you can therefore afford to let go of your images. ~ CA assorted quotations.

A pattern language is composed by a number of elements called patterns. Each pattern is written in a certain format. Although there are several types of format, it definitely contains name of the pattern, problem and its solution, and it may also contain context to apply the pattern, force as a premise that cause the problem, and related patterns. Such patterns are often organized into a catalogue. ~ Takashi Iba

Patterns identify a problem and suggest a core solution. Each pattern is connected to a larger and a smaller pattern.

"Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem in such a way that you can use that solution a million times over without ever doing it the same way twice." (CA)

"A design pattern systematically names, motivates, and explains a general design that addresses a recurring design problem in object-oriented systems. It describes the problem, the solution, when to apply the solution, and its consequences. It also gives implementation hints and examples. The solution is a general arrangement of objects and classes that solve the problem. The solution is customized and implemented to solve the problem in a particular context." (DesignPatterns Book)

At the heart of every pattern is a design problem.

Patterns must have the property of emergence, meaning that a pattern must suggest or infer its embedded system.

"The structures of a pattern are not themselves solutions, but they generate solutions. Patterns that work this way are called generative patterns. A generative pattern is a means of letting the problem resolve itself over time. . . . A pattern language not only tells us the rules for arrangement but shows us how to construct arrangements--as many as we want--which satisfy the rules." ~ CA

A query to a pattern language listerv yielded the following from a man named Peter K.

My question was, "How does one use pattern languages?" Peter's response defines as much as answers. But he does, still, add a bit to my understanding of how to use the medium. He writes,

----------

A pattern language collects and presents a body of wisdom from a community of practice in small, friendly pieces that are directly and easily applied to a given situation. The pieces are joined in a number of ways for easy navigation and browsing between the pieces, and to make it easier to comprehend the body of knowledge as a whole. The pieces are friendly and beautiful so they are soothing, enjoyable, and engaging for people to peruse.

(I purposely borrowed "small pieces" and "joined" from David Weinberger's pattern name, "Small Pieces Loosely Joined," which he uses for the Internet itself.)

It is similar to a cookbook, although more interconnected.

It has similarities to an encyclopedia, but favors practice and application rather than minute and comprehensive detail.

It has similarities to a fake book in music, but transmits more theme and application (knowledge and wisdom) rather than melody and rhythm (data).

It has similarities to the Talmud, but pattern languages are (or have been, at least) constructed as a smaller, constrained whole at a point in time, rather than accretively over centuries or millennia.

Pattern languages are particularly good for transmitting knowledge and wisdom of practitioners within and between communities of practice. They are good for individual or group reflection, inspiration, and application to immediate implementation.

Conversely, pattern languages are not a narrative; they do not tell a story of the application of the patterns.

(Stories -- narratives -- are the primary way people exchange plans and experiences.)

Nor are pattern languages meant to contain all of the context a student of a practice would need to learn the craft. A pattern language is a reference for practitioners or practitioners-to-be; it is not a learning guide for students.

(Practice is best learned by doing, under mentorship of an experienced practitioner, anyway.)

1 comment:

  1. "The problem is that we are adapting to the wrong things — to images, or to short-term greed, or to the clutter of mechanics. These maladaptations are known as “antipatterns” — a term coined not by Alexander, but by software engineers. An antipattern is something that does things wrong, yet is attractive for some reason (profitable or easy in the short term, but dysfunctional, wasteful of resources, unsustainable, unhealthy in the long term). It also keeps re-appearing. Sounds like our economy and wasteful lifestyle? Building up a patterns catalogue (and the equivalent antipatterns catalogue of things to watch out for) helps us design complex systems by putting the patterns together, in a language-like way. For this we need a Combinatoric language that builds larger-scale entities (e.g. sentences, paragraphs, books) out of elements of tried applications with meaning (e.g. words). A Pattern Language organizes complexity, into a mutually adaptive system." ~ Metropolis article "The Sustainable Technology of Christopher Alexander." https://www.metropolismag.com/sustainability/the-sustainable-technology-of-christopher-alexander/ accessed 6/2/2021

    ReplyDelete