Principle: Feeling
Where are the pain points? How might we make them less painful?
How might we make the system less alienating to be in?
- Systems can be stable (self-sustaining) or unstable (prone to collapse or replacement)
- Caveat: instability of the parts sometimes contributes to stability of the whole!
- Examples: economics (competition means firms that can't compete go out of business, but the market is more efficient), evolution (because individuals die, the species can survive and adapt in a changing environment)
- Caveat: instability of the parts sometimes contributes to stability of the whole!
Being stuck in a dying system is no fun!
dying systems can be kept on life support by an influx of money, or heroic feats.
living systems can be killed by the clumsiness or malice of some larger system.
Software Gardening
A healthy system is like a healthy garden: it produces lots of value, sustainably. When a system becomes unhealthy it produces less value, and may even start to die. An unhealthy system needs to be propped up by expensive interventions (think pesticides and fertilizers) just to keep going.
Our primary goal in software development must be to create a healthy system. Otherwise, we will be forever overpaying for underwhelming results.
Being in an Information Flow
When we published the pattern language for the Peruvian houses, people in Peru said that our pattern language and our houses we designed from the pattern language were a more accurate reflection of Peruvian reality than even the Peruvian architects had managed.
People wondered how we did it. But it was really very simple, and we did nothing more than I have just described. We identified the centers by getting so deeply into the situation that we could feel, in our own bodies, just which ones needed to be there.
The essential technique in the observation of centers, in any social situation, and in any culture, is to allow the feelings to generate themselves, inside you. You have to say, "What would I do if I were one of the people living here, what would it be like for me?" thus inserting yourself into the situation, and then using your own common sense and feelings as a measuring instrument.
Of course you must always check with people, explicitly. You cannot assume you are right. You have to check. On the other hand, checking doesn't mean just do what people say; their own sense of what is involved can also be in error. One must always go to the root, asking what is likely to create the most life, and maintaining a cautious skepticism, even while pursuing these difficult and soul-searching questions.
Christopher Alexander, The Process of Creating Life p. 352
Technique: Relative Life as a Design Heuristic
- The rational part of your brain is slow, expensive, and weak. (SoftwareDevelopment/Humans.html)
- Our hardware is optimized for holistic perception and feeling.
- Perhaps you have had the experience of lying awake at night tossing and turning because you can't get comfortable. You may have discovered that trying to be comfortable, and overthinking it, is part of the problem. It's nearly impossible to find a comfortable position by planning it out. The only way to get to sleep is to forget control completely, and let your more efficient instincts take over.
- In exactly the same way, it is nearly impossible to design a living system by reasoning out all the interactions between forces. It is much easier to get wholeness by feeling your way to it, letting the forces themselves drive your behavior until they work themselves out.
- Compare: Notes on the Synthesis of Form to The Nature of Order.
- Therefore, our judgment of relative life must be our central guiding criterion as we design. There is no other way to get quality/value at a reasonable speed.
- ...but we also have to confirm that our snap judgments are reasonable, e.g. by asking "who benefits"?
- When we can be honest with ourselves about which of two situations feels more alive or dead, the difference is often immediately obvious. Although a feeling of relative aliveness is no guarantee that a solution is good, and needs confirmation from rational processes, a feeling of relative deadness is a good enough reason to reject a solution.
- We can also automate a lot of judgments about the software components of the system, e.g. with tests, types, and linters.
The Feeling of Deathly Morphology
alienation - "feeling like a cog in a machine"
the world "alien" comes from the Latin alius, meaning "other". An alienating system is one that makes you feel like an outsider. Keep out you can almost hear it saying. You do not belong here. You are only a visitor. Do not question the order of things.
- "Apparently it wants me to do X? I'm not sure why, but I'll do it."
- "Ugh, why is this so hard?"
alienation leads to a loss of agency, and disengagement. Alienated workers stop thinking and stop caring. They become emotionally uninvested in the results of their work. They try to get work off their plate and make it someone else's problem as quickly as possible.
To counter alienation - use SharedOwnership (facilitated by PairProgramming). Early in their life, alienating systems are often KnowledgeSilos where one person is the keeper of the keys. But when that person leaves the company or moves on to other projects, the system can keep going with no one who really understands it or feels ownership of it. Such a system will keep on causing suffering until it dies.
implications for both team work and software UX design
What Happens When A Team Of People Realizes Feeling Is Universal
Christopher Alexander observed that feeling, in this sense, is not based on idiosyncratic opinions, but is mostly the same from person to person.
When a whole team of people realizes that their feelings are all mostly the same, there is a kind of dramatic gelling that happens. They begin to trust each other, and to collaborate — not in a perfunctory, "my manager wants me to be collaborative" kind of way, but really, truly to collaborate. They get interested in each others' ideas. They start having open dialogue and making decisions as a group. They start learning from each other. They become an unstoppable force.
This is how the great cathedrals of Europe were built — a process that took generations and was the life's work of countless laborers and craftsmen. They were built by people who knew that their feeling was all the same.