Architecture is gardening.
Photo by Daniel Soh on Unsplash

Architecture is gardening.

This is the first article in a series of articles I intend to write that describe my interpretation and understanding of the practice of architecture in large software projects.

It's originally published and best viewed at https://4lex.nz/posts/architecture-practice-1-gardeners/

The way we structure our communications with one another is the single biggest determinant of what our architecture will look like when it's done.

You design a system that looks different to the way you structure your communications.

Over time, without great effort, that design will slowly be subsumed into one that more organically maps the teams and business units that made it.

We have two choices open to us then:

- Plan, account for it and attempt to design around it

- Let it happen

It's not clear to me that either of these approaches are inherently wrong.

Expanding, our choice is whether we fight the change those communication pathways bring or whether we guide that same flow, co-opting its' force and nudging it left or right towards where we wish it. This philosophical question is not unlike a question many gardeners have faced over the years. Gardening is an excellent metaphor for the activity of architecture.

Architects are gardeners that cultivate renewable systems (both human and computer)

It is powerful and freeing to consider that we are all gardeners of systems that will outlast us.

Years before publishing his book, The Software Architect Elevator, Gregor Hohpe describes large socio-technical systems as gardens:

Large-scale IT is much like a garden: things evolve and grow on their own. Weeds tend to grow the fastest. The role of the gardener is to trim and prune what does not fit and to establish an overall balance and harmony in the garden, keeping in mind plants' needs, for example by planting shade-loving plants near large trees or bushes. A good gardener is no dictatorial master planner and certainly does not make all the detailed decisions about which direction a strain of grass should grow -- Japanese gardens being a possible exception. Rather, the gardener sees him or herself as the care taker of a living ecosystem.

The gardener is an actor within that system who tends to its' health. Pruning, planting and maintaining from within the system itself.

This philosophy contrasts sharply with the French notion of gardeners as kings and gods outside of the garden they curate.

We'll explore the French approach and compare it to a traditional Japanese Zen garden where the mindset of that Zen gardener is closer to the culture and approach architects should employ.

By acting as gardeners rather than emperor-kings, architects can guide large projects and embrace the flow of the project rather than fighting the chaos inherent in the group hallucination these projects inevitably are.

The Garden at Diago-ji, Kyoto

Consider the garden at Diago-ji in Kyoto, pictured below. What do you notice about it?

How is it assembled? What structural elements can you identify and how do they come together to form the garden?

Do you find the garden aesthetically pleasing? Do you find it calming or exciting?

What level of effort do you imagine it took to plan the garden? To plant and to grow, and to maintain it?

Photo by David Emrich on Unsplash

Fix those answers in your mind and then consider the garden constructed at The Palace of Versailles.

Consider the same questions about the effort taken to plan, plant, grow and maintain.

Consider the aesthetics. Consider the "mouth-feel" of both gardens. Where do they do the same things? Where are they different?

Photo by Hugo Herrera on Unsplash

This is an entirely different construct to the garden at Diago-ji yet they are both gardens, maintained by gardeners.

Both have plants and engineered constructions. Both are beautiful and satisfying to view, and yet, outside, they are almost entirely different!

Why? What can we learn about the gardeners through viewing and considering each choice made in these gardens?

Sailee Khurjekar at philosophynow.org can help us here.

They describe that

Garden design in the Japanese tradition presents an alternative approach to the English tradition. The properties of the natural objects are not altered to suit an aesthetic design, as an ‘English garden’ designer might cut down a shrub so that it is neat and symmetrical, with the sole aim of pleasing the observer. Instead, in a Japanese garden the organic properties are manipulated to enhance the naturalness of the objects in the garden.

(Note that for this purpose, English gardens are largely interchangeable with French ones - The Normans, victorious at the Battle of Hastings in 1066, are close enough to King Louis XIV, who would come 600 years later stylistically that the comparison stands.)

Where a Japanese garden initially presents as wild and untamed, a natural expression of nature run wild, nothing could be further from the truth, as Hohpe identifies.

It's clear to Khurjekar that a Japanese garden accentuates the natural state of the elements in that garden and, in doing so, imparts meaning to those elements as they are. This concept is very in keeping with the Zen philosophy of the gardeners.

The concept of accentuating the natural state and imparting meaning is known as the art of reduction.

What would an architecture aligned to this concept look like?

Flow Architecture embodies many of the same ideas found in the Zen garden. (For more on Flow architecture, see the excellent article and book by James Urquhart

Flow architecture advocates we represent our system as a series of nodes in a graph (rather than a stack), where each node contains its' own context and properties separate from the whole. A node is designed (manipulated) to enhance the natural properties of both that node and the nodes connected to it.

The explicit design goal of a Japanese garden is to enable the viewer to observe all of the elements of the garden at once. If the individual elements are too big or too small, they force the observer out of the scene entirely or make the observer zoom in so far that they lose sight of the broader picture.

Have you ever had a feeling when viewing an architecture diagram or document, that the level of abstraction is wrong?

How did that make you feel?

The Gardens of the Palace of Versaille

At the Palace of Versailles, we see that nature has been reshaped in distinctly unnatural ways, that is to say, ways that are the opposite of what you might expect to see in nature. When I go hiking, I rarely see shrubs on the trail formed into perfect geometric shapes. Looking at the palace garden, we see that nature is formed into shapes pleasing to the eye - aesthetics are still very important here, but instead of focusing on the natural qualities of the element, the element is shaped in a way that accentuates the unnatural construction of the garden.

To re-emphasise Khurjekars' assertion:

Garden design in the Japanese tradition presents an alternative approach to the English tradition. The properties of the natural objects are not altered to suit an aesthetic design, as an ‘English garden’ designer might cut down a shrub so that it is neat and symmetrical, with the sole aim of pleasing the observer.

Robert Schwartz defines the French approach as "Order over Nature".

Schwartz states that

Gardens are reflections of the people who create them. By shaping nature, men can exert control over their surroundings and create small paradises modeled after their own ideal of beauty.

Systems, too, are reflections of their creators and maintainers! Schwartz describes the gardens at Versaille as

The best representation of human will imposing itself on a natural landscape

And ties that into the nature of the designer of that garden, King Louis XIV.

Louis XIV became an orchestrator, not only of nature but also of how visitors viewed this landscape. Even in the King’s absence, visitors would follow a specific path through the gardens, seeing them as he wished them to be seen.

...

As the Sun King, he imposed absolute control over nature, subjugating wilderness to his own ideal of beauty.

Bringing the French philosophy back to Architecture and applying this philosophy to the design of human and computer systems, the French approach is the approach the industry has broadly taken from its birth through to perhaps the mid-2000s.

The prevailing system design philosophy was one of control. Of planning. The Waterfall way of working emphasises clear boundaries between activity and a breakdown of process by function in an attempt to tame the chaos inherent in the large group hallucinations that software is.

This philosophical approach is that of The Architect of the Matrix, which Gregor Hohpe describes as

The ultimate authority: he designed the Matrix (a computer program to simulate reality to humans being farmed by machines as an energy source) and knows and controls everything. Enterprise architects are sometimes seen as such a person - the all-knowing decision maker. Some even wish themselves into such a role, partly because it is neat to be all-knowing and partly because it gets you a lot of respect.

Hohpe also warns of the master-planned approach,

Even if the architect is a super smart person, he or she can base decisions only on those facts that are known to them. In large companies, this inevitably means relying on PowerPoint slides or statements from middle management as it is impossible to be in touch with all technology that is in place. Such an information channel to the supreme decision maker tends to be heavily guarded by people who understand its value as an influencing vehicle, which results in the architect being fed indirect, often biased information, as opposed to reality. Making decisions based on such a model is dangerous.

What can system designers learn from French and Japanese gardens?

When the Agile Manifesto took off, the change in how software projects are run became less about controlling chaos and more about embracing it and redirecting it in the direction you choose—co-opting nature rather than fighting it. Yet the root philosophy is still one of control.

Team Topologies seeks to organise teams and communication pathways such that they mirror the flow of value through the business - in other words, seek the true value in what you're doing and align around that rather than creating functional business areas that then struggle to work out how to pass parts of that value between each other.

By taking this bottom-up rather than top-down approach to system design, Team Topologies is closer to Zen than it is to Master-Planned.

In other words, rather than taming the nature of software development and imposing control over it, we now try to follow a more philosophically Japanese approach, manipulating its organic properties to enhance its naturalness.

Wardley Mapping also tends towards Zen in that it helps us identify the weeds in our system (those parts of the system that have already commoditized) Hohpe described earlier, as well as Hohpe's shade-loving plants (perhaps accelerators towards value).

If how teams interact (Kanban, Agile, lowercase a-agile) slowly becomes more Zen-like in nature and less like we are all very small Sun Kings, the practice of architecture, too, must become more Zen-like. I see that change finally coming with concepts like Team Topologies, Flow Architectures and Wardley Mapping.

Software development as a group hallucination is best when it is creative, experimental, iterative, and guided. It is inherently unconstrained in a way that hardware development is not. Our processes should manipulate that unboundedness and direct it in ways that enhance its natural beauty rather than trying to subjugate it.

For a system designer to build sustainable systems that work, we have to understand how value flows through businesses and how we should best structure the communication of that value.

Having structured that communication, we can design concepts around those flows and gently prune away the things that confuse or distort them.

We must act and design in ways that enhance the innate qualities of the elements of our organisations and systems.

Doing so allows us to place observers into those systems (customers, builders, managers, executives) who can see the system for what it is without parts of the system overwhelming others in that view.

That is why architects are gardeners and not master planners.

References and further reading

[1] The Software Architect Elevator Book by Gregor Hohpe

[2] enterpriseintegrationpatterns.com - Hohpes’ article on movie star architects that precedes his book

[3] Gregor Hohpe - Gregor Hohpes’ website

[4] Japanese Garden Imagery by David Emrich - David Emrich on Unsplash

[5] French Imperial Garden Imagery by Hugo Ferrera - AXP Photography on Unsplash

[6] Formal Gardens - France in the Age of Les Miserables, Robert Schwartz

[7] Agile Manifesto - Agile Manifesto for Software Development

[8] Why is Flow Important - James Urquhart

[9] Flow Architectures - James Urquhart


回复
Tommy Fritz

That one weird trick that tech debt hates

4 个月

I like this analogy. Knowing what your garden will grow well is important. Sun, soil, climate.

要查看或添加评论,请登录

Alex Corkin的更多文章

  • The Role of a Software Developer

    The Role of a Software Developer

    I originally posted this article here. If you want all the articles without invasive analytics, my blog is the place to…

  • The QUERY HTTP Method

    The QUERY HTTP Method

    LinkedIn article formatting isn't great - for properly formatted quotes and code inserts, check out this article as…

  • Trialling 1-Day sprints

    Trialling 1-Day sprints

    Originally published on my personal website, https://4lex.nz/non-technical/2021/10/17/1-day-sprints/ 1-day sprints are…

  • Implementing a Team Topology

    Implementing a Team Topology

    Any organisation that designs a system (defined broadly) will produce a design whose structure is a copy of the…

    9 条评论
  • Remaining Effective in a Pressure Cooker

    Remaining Effective in a Pressure Cooker

    I've written this article as a response to COVID-19 upending the lives of many people I care about. For many of them…

    13 条评论
  • When everything is #DIGITAL, then nothing is.

    When everything is #DIGITAL, then nothing is.

    Digital Transformation, Digital Experience, Digital Thought Leader, Digital Coffee Table, Digital DevOps Team, Digital…

    4 条评论
  • Why "DIGITAL TRANSFORMATION" should be dead.

    Why "DIGITAL TRANSFORMATION" should be dead.

    Digital transformations don’t work. Everyone wants to talk about digital led businesses.

    18 条评论
  • SCIENCE! in the workplace

    SCIENCE! in the workplace

    What do you do when you don’t know what to do? Even worse: What do you do when people are paying you to do things, and…

社区洞察

其他会员也浏览了