Open bradreeder opened 7 years ago
A Pattern Language is a book written by the architect and design theorist Christopher Alexander. It tries to distil spatial organisation and the process of creating good built environments down to a language of what he calls patterns
.
A pattern
is an 'archetypal' or 'timeless' solution to a commonly occurring design problem, as the pattern's solution is generally repeatable across contexts. An example of a small pattern would be always designing a room so that it has at least two walls with light-facing windows.
Something often misunderstood is that patterns are not isolated 'units'. His patterns are intended as a language of patterns that interlock and form a hierarchy of interrelated scales. A pattern is a pattern because it overlaps with and supports other patterns.
If you were designing a home you might think of the house and its relation to the surrounding land as the large scale, rooms as apart of the middle scale, their furniture, doors, windows as the small scale. Taking Alexander's approach you'd apply the appropriate large-scale patterns to the large-scale, middle-scale patterns to the middle, low-scale patterns to the low, applying each so that it overlaps with and supports patterns at different scales.
Diagrammatically visualised:
At the core of the thesis of the book is a philosophy that well designed towns and environments cannot be built top-down by architects and designers working remotely in offices with no intimate familiarity of the area they're designing. He believes good environments are built collectively by the communities that inhabit them.
The intention of the book was to give people a shared DIY language of good design patterns, that simplifies the process of making communal design decisions, so that people are empowered to build their own houses, streets, and neighbourhoods together using the same language.
The core problem it tries to solve then is: How do you design something good that is also created democratically by many, many people? I'm exploring the idea that his methodology applies in parallel to the idea of a curriculum that is communally designed, not by a master-planner, but democratically by many students & mentors.
Why as software developers should we take an interest in an architectural theorist who in all likelihood has never written a line of code and probably uses Microsoft vista and internet explorer?
I ❤️ ❤️ ❤️ him -- his books are pearls of masterful design wisdom.
Say we created a pattern language that is the shared language through which we create the curriculum of F&C and was the core methodology by which everyone agreed to put together and make decisions about curriculum weeks. Patterns are
large-scale: to do with the arrangement of the curriculum as a whole middle-scale: to do with the arrangement of a week as a whole low-scale: to do with the arrangement of a week's activity as a whole
Patterns could be linked to learning outcomes at each scale. An example of a hypothetical middle-scale pattern would be:
"Every time you run a code-along ensure it is followed with an opportunity for students to practice what was learnt in pairs"
As it is a pattern that links together two activities. Code-alongs as an activity could then have their own low-scale patterns like:
"Every time you run a code-along take regular breaks so that everyone can keep up and ask questions."
Every pattern proposed is initially a hypothetical solution to a problem that mentors make during planning. Mentors record their hypothetical patterns then when they run their week the fundamental attitude they have is that they are testing their hypothesis to verify it. If feedback comes back positive (i.e. if their tests pass) a mark is put against their hypothesis and it is trialled again with the next iteration.
Their hypothesis becomes a part of the communities pattern language only when it is sufficiently tested. Patterns and hypothetical patterns can be ordered in terms of how well tested they are.
A pattern should include:
Composability -- The curriculum can be expressed in terms of the inter-relations of its component patterns. As a mentor or curriculum designer it forces you to think in terms of how everything you design works together.
Repeatability -- Patterns, the core components of our curriculum, are all repeatable solutions to commonly occurring problems we face. They remove the effort of mentor's 're-inventing the wheel' as all solutions that are sufficiently tested become a part of the communities language we share. Mentors spend their time focusing not on problems we've already solved and have patterns for, but on coming up with new hypothetical patterns for unsolved problems.
Democratic education -- We follow a democratic educational model. A pattern language is 100% democratic as a pattern only becomes a formal part of the language when it has been sufficiently verified by the consensus of many, many students & mentors. The language belongs to everyone, it is open-source.
A living archive of F&C -- A problem is that mentors only have access to their own experience of the curriculum. A pattern language is a living archive of past experience. If you know F&C's pattern language you know everything that has ever worked. Pattern languages remove the problem of history as the solutions they provide are timeless.
Universality -- Patterns in theory should work across contexts. A pattern is a pattern if it works in London, Nazareth, anywhere. Thinking of our curriculum in terms of patterns means thinking in terms of designing a curriculum that is truly a blue-print that could be picked up by anyone, anywhere.
Fully documented -- As the entire curriculum can be reduced to components with accompanying documentation, it follows the entirety of the curriculum can be documented. We can begin doing background-research into each pattern so that, alongside the user-testing, we will have full proof of concept for our school.
Single source of truth -- You can have schools running in multiple places and both be contributing to the same pattern language. If the same patterns are trialled in both places, they only become a part of the language if both schools agree.
Test-driven curriculum (that felt so good to write!) -- Every single component pattern that makes up the curriculum has only become a part of our pattern language because it has been thoroughly user-tested over many iterations. Nothing is untested: 100% curriculum coverage 😉 . Everything is testable as it has been reduced to testable components that are all measured on the basis that they are repeatable solutions to problems we face. Thinking in patterns forces us to have a test-driven attitude to everything we do, and forces us to think of our curriculum design in terms of the problems it solves.
Form = Content -- We should aim for the very form, logic & processes of our curriculum to reflect and not be a contradiction of the content we teach to our students. I believe a methodology like this could help us start thinking about designing our curriculum so that the core principles of what we teach are reinforced on every level of the design. The procedure of planning weeks for the next iteration becomes a logical extension of what is taught.
What Alexander attempted to do for urban design and architecture is essentially what we're trying to do with the master-reference: create a blue-print for a replicable, scalable, sustainable & democratic educational model, that takes control away from educational institutions, and in theory could work in any context.
To do that the curriculum must be composed of patterns that applied in any setting produce the same result, and that everyone from every setting agrees is good.
We've been limited until now because we've only ever run F&C in one context. We're in a unique situation now where with two schools we have potentially twice as much data we can be cross-processing. We can run the same curriculum in two places simultaneously! It is imperative we make best use of this. That's twice as rapidly the curriculum could improve if approached with an intelligent methodology. Why? Twice as much feedback on every single part of the curriculum to contrast, twice as many people contributing to our resources!
We need a user-centred, test-driven methodology by which we can effectively run the same curriculum in multiple places and iterate a single source on the basis of feedback coming from multiple sources. I'm proposing the pattern language as a possible route forwards to accomplish this, and need to think in more detail of how this methodology could be tangibly implemented.
The ideal of having the exact same curriculum run in multiple locations may fall apart eventually as the organisation grows.
I think we want to avoid a centralised model that revolves around London eventually, and to adopt a decentralised model in which each school feels sufficiently autonomous over its own decision-making. At the same time, we want each school to share a common F&Cness that isn't significantly diverged from.
The common factor between schools could become that each one shares and agrees to work by the same pattern language through which curriculums are created so there is an archetypal core. Then each school can contribute to the same language creating their own variations with their own patterns, so that schools can learn from the results of each other's experiments.
I need to research more into Lean, Agile, UX, and how it inter-relates with this methodology. Currently finishing the Lean Startup.
To apply what we do to a Lean model. Say the students are our users, and the curriculum is our service that we iterate in life-cycles of 4 months. It follows, from a Lean perspective, that the most important part of the week is SGC. That's the part in which we get our core user feedback & data, through which to pivot or maintain, and refine our model & workshops to suit their needs.
What we then lack at the moment are empirical methods by which we analyse that data to make decisions. By lacking those methods we do not experience validated learning to the degree we could as an organisation. Funnelling that data into the master-reference is a start at a method, as it facilitates communication, and guarantees it will be actioned in some way, but it doesn't necessarily follow that those actions will lead to progress.
I think the pattern language, if it works, has the power to become that scientific methodology. If we can express the curriculum totally in terms of its component patterns, it follows every aspect of the curriculum is documented & testable. Behind every aspect of the curriculum is a precise statement of the hypothesis, or reason, for its existence. Whether that pattern is sustained, modified, or abandoned is not subjective, but based upon a realistic assessment of whether that pattern achieves that purpose against what the data says.
I genuinely feel that mentors could learn about Lean, user-testing, and many of the principles & processes we teach, through the experience of mentoring if we can nail the method down. It's on the tip of my tongue.
Reading through the advantages, agreeing with everything until
Universality -- Patterns in theory should work across contexts. A pattern is a pattern if it works in London, Nazareth, anywhere. Thinking of our curriculum in terms of patterns means thinking in terms of designing a curriculum that is truly a blue-print that could be picked up by anyone, anywhere.
Hmmm..."Surely different patterns could emerge in different context"?
And then I came to this....there is serious beauty in this.
I will leave this issue open to provide some context to this repo until I find the time to research #3 .