SlideShare a Scribd company logo
A System Is Not a Tree
@KevlinHenney
A System Is Not a Tree
A System Is Not a Tree
Let us examine [software's]
difficulties. Following Aristotle, I
divide them into essence — the
difficulties inherent in the nature
of software — and accidents —
those difficulties that today
attend its production but that
are not inherent.
How much of what software
engineers now do is still
devoted to the accidental, as
opposed to the essential?
A System Is Not a Tree
Arboricide is the murder of trees.
The victims of arboricide are the
descriptive tree structures that are so
often found in software, holding
together many individual elements in
one coherent and immediately
understandable harmony.
Software development should not be a
trade of constructing difficulty from
simplicity. Quite the contrary. So
where there are trees to be shown you
should show them, and refrain from
turning the relationships they describe
into a puzzle. It is, essentially, a matter
of the span of description.
Aboricide, then, is using a smaller
description span when a larger one
would be better.
Trees sprout up just
about everywhere in
computer science.
Donald Knuth
A System Is Not a Tree
main
subroutine subroutine
subroutine
subroutine
subroutine
subroutine
subroutine
subroutine
afferent branch transform branch efferent branch
main
function function
function
function
function
function
function
function
afferent branch transform branch efferent branch
main
function
function
function
function function
functionfunction function
Concept Hierarchies
The construction principle involved is
best called abstraction; we concentrate on
features common to many phenomena,
and we abstract away features too far
removed from the conceptual level at
which we are working.
Ole-Johan Dahl and C A R Hoare
"Hierarchical Program Structures"
Infrastructure
Services
Domain
InfrastructureServicesDomain
concept
realisation
A city is not a tree
Christopher Alexander
A System Is Not a Tree
A city is not a tree
Christopher Alexander
The tree of my title is not a green tree
with leaves. It is the name of an
abstract structure. I shall contrast it
with another, more complex abstract
structure called a semilattice.
Both the tree and the semilattice are
ways of thinking about how a large
collection of many small systems goes
to make up a large and complex
system.
A System Is Not a Tree
The semilattice is potentially a much
more complex and subtle structure
than a tree.
It is this lack of structural complexity,
characteristic of trees, which is
crippling our concepts of the city.
The reality of today's social structure
is thick with overlap — the systems of
friends and acquaintances form a
semilattice, not a tree.
A System Is Not a Tree
A System Is Not a Tree
The basic thesis [...] is that
organizations which design
systems [...] are constrained
to produce designs which are
copies of the communication
structures of these
organizations.
Melvin Conway
How Do Committees Invent?
We have seen that this fact
has important implications
for the management of
system design. [...] A design
effort should be organized
according to the need for
communication.
Melvin Conway
How Do Committees Invent?
EPISODES:
A Pattern
Language of
Competitive
Development
Ward Cunningham
A System Is Not a Tree
In simplicity of structure the tree is
comparable to the compulsive desire
for neatness and order that insists the
candlesticks on a mantelpiece be
perfectly straight and perfectly
symmetrical about the centre.
functiontest
test
test
methodtest
test
test
method
method
method
test
test
test
method
method
test
test
test
classtests
tests class
tests
tests
A System Is Not a Tree
A System Is Not a Tree
A System Is Not a Tree
A System Is Not a Tree
A System Is Not a Tree
In simplicity of structure the tree is
comparable to the compulsive desire
for neatness and order that insists the
candlesticks on a mantelpiece be
perfectly straight and perfectly
symmetrical about the centre.
The semilattice, by comparison, is the
structure of a complex fabric; it is the
structure of living things, of great
paintings and symphonies.
A program which
has such a
structure in which
there is no single
"highest level"... is
called a heterarchy
(as distinguished
from a hierarchy).

More Related Content

PPTX
Chapter 3. CON CURRENT ENGINEERING
PDF
quality engineering(ME522) part 1
PPTX
The Architect's Clue Bucket
PDF
Lecture 04 som 26.02.2021
PDF
BITS QUESTIONS PAPERS
PDF
Serializing Value Objects-Ara Hacopian
PDF
The Rule of Three
PDF
Worse Is Better, for Better or for Worse
Chapter 3. CON CURRENT ENGINEERING
quality engineering(ME522) part 1
The Architect's Clue Bucket
Lecture 04 som 26.02.2021
BITS QUESTIONS PAPERS
Serializing Value Objects-Ara Hacopian
The Rule of Three
Worse Is Better, for Better or for Worse

Viewers also liked (20)

PPTX
Value Objects
PDF
Values
PDF
SOLID Deconstruction
ODP
#pugMi - DDD - Value objects
PDF
Value Objects, Full Throttle (to be updated for spring TC39 meetings)
PDF
Fizzbuzzalooza
PDF
Value objects in JS - an ES7 work in progress
PDF
The Architecture of Uncertainty
PDF
Persisting Value Objects
DOC
NOTULEN35
PDF
Exercices1erebacphy chimie
PPTX
Desafios para os Docentes do Ensino Superior na Era Digital
PPTX
Case Study: Managing a Metrics Initiative
PDF
Современные инъекционные методы в косметологии
PDF
The Advertising Collective Company presentation 2016
PPTX
StoryBoards
PPT
Prevencion de cancer
PDF
Oculus Rift YouTube Content
DOCX
The Escape
Value Objects
Values
SOLID Deconstruction
#pugMi - DDD - Value objects
Value Objects, Full Throttle (to be updated for spring TC39 meetings)
Fizzbuzzalooza
Value objects in JS - an ES7 work in progress
The Architecture of Uncertainty
Persisting Value Objects
NOTULEN35
Exercices1erebacphy chimie
Desafios para os Docentes do Ensino Superior na Era Digital
Case Study: Managing a Metrics Initiative
Современные инъекционные методы в косметологии
The Advertising Collective Company presentation 2016
StoryBoards
Prevencion de cancer
Oculus Rift YouTube Content
The Escape
Ad

Similar to A System Is Not a Tree (20)

PDF
Published Article: Integrating Systems & Design Thinking
PPTX
Software Architectures, Week 1 - Monolithic Architectures
PDF
Foundations of Scalable Systems - Designing Distributed Architectures 1st Edi...
PPT
Architectural Thinking - What Is Architecture?
PDF
No Silver Bullet - Essence and Accident in Software Engineering
PPTX
Breathing Data, Competing on Code
PPT
HCI_user_interaction_Design_interaction design
DOCX
No Silver Bullet Essence and Accidents ofSoftware Engineeri.docx
PPTX
L6 LSCITS Engineering
PDF
What (Else) Can Agile Learn From Complexity
PPT
Co-creation of Learning and Social CRM
PPTX
Embrace chaos
PPT
Microcontent_Evideo2008
PDF
Design for the Network - IA Summit, March 2014 - No Notes Version
PDF
Design for the Network - IA Summit, March 2014
PDF
ADC-BSC EAST 2013 Keynote: Worse Is Better—For Better or for Worse
PDF
On System Design
PDF
Electronic Document Management Systems Architecture
PPTX
Models vs Reality: Quest for the Roots of Complexity
Published Article: Integrating Systems & Design Thinking
Software Architectures, Week 1 - Monolithic Architectures
Foundations of Scalable Systems - Designing Distributed Architectures 1st Edi...
Architectural Thinking - What Is Architecture?
No Silver Bullet - Essence and Accident in Software Engineering
Breathing Data, Competing on Code
HCI_user_interaction_Design_interaction design
No Silver Bullet Essence and Accidents ofSoftware Engineeri.docx
L6 LSCITS Engineering
What (Else) Can Agile Learn From Complexity
Co-creation of Learning and Social CRM
Embrace chaos
Microcontent_Evideo2008
Design for the Network - IA Summit, March 2014 - No Notes Version
Design for the Network - IA Summit, March 2014
ADC-BSC EAST 2013 Keynote: Worse Is Better—For Better or for Worse
On System Design
Electronic Document Management Systems Architecture
Models vs Reality: Quest for the Roots of Complexity
Ad

More from Kevlin Henney (20)

PDF
Program with GUTs
PDF
The Case for Technical Excellence
PDF
Empirical Development
PDF
Lambda? You Keep Using that Letter
PDF
Lambda? You Keep Using that Letter
PDF
Solid Deconstruction
PDF
Get Kata
PDF
Procedural Programming: It’s Back? It Never Went Away
PDF
Structure and Interpretation of Test Cases
PDF
Agility ≠ Speed
PDF
Refactoring to Immutability
PDF
Old Is the New New
PDF
Turning Development Outside-In
PDF
Giving Code a Good Name
PDF
Clean Coders Hate What Happens To Your Code When You Use These Enterprise Pro...
PDF
Thinking Outside the Synchronisation Quadrant
PDF
Code as Risk
PDF
Software Is Details
PDF
Game of Sprints
PDF
Good Code
Program with GUTs
The Case for Technical Excellence
Empirical Development
Lambda? You Keep Using that Letter
Lambda? You Keep Using that Letter
Solid Deconstruction
Get Kata
Procedural Programming: It’s Back? It Never Went Away
Structure and Interpretation of Test Cases
Agility ≠ Speed
Refactoring to Immutability
Old Is the New New
Turning Development Outside-In
Giving Code a Good Name
Clean Coders Hate What Happens To Your Code When You Use These Enterprise Pro...
Thinking Outside the Synchronisation Quadrant
Code as Risk
Software Is Details
Game of Sprints
Good Code

Recently uploaded (20)

PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PPTX
L1 - Introduction to python Backend.pptx
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
Transform Your Business with a Software ERP System
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PPTX
Reimagine Home Health with the Power of Agentic AI​
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
Design an Analysis of Algorithms II-SECS-1021-03
2025 Textile ERP Trends: SAP, Odoo & Oracle
Upgrade and Innovation Strategies for SAP ERP Customers
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Operating system designcfffgfgggggggvggggggggg
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
L1 - Introduction to python Backend.pptx
CHAPTER 2 - PM Management and IT Context
Navsoft: AI-Powered Business Solutions & Custom Software Development
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Transform Your Business with a Software ERP System
wealthsignaloriginal-com-DS-text-... (1).pdf
Reimagine Home Health with the Power of Agentic AI​
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Design an Analysis of Algorithms I-SECS-1021-03
How Creative Agencies Leverage Project Management Software.pdf
Design an Analysis of Algorithms II-SECS-1021-03

A System Is Not a Tree