Grown Organically
Growing Software and Bonsai
Agenda
Agenda
●
Feedback
●
Simple Steps
●
Environment
●
Learning
Bonsai: Tree in a Pot
Bonsai: Tree in a Pot
Bonsai "Kenshin Tōge", ca. 800 Jahre alt (Wikipedia,
CC BY 4.0, Author: Order of the Rose)
Bonsai: Piece of Art
Bonsai: Piece of Art
Bonsai: Piece of Art
Bonsai: Piece of Art
●
Represents a big tree in nature
●
Is a small tree in a pot
Piece of Art: Abstraction
Piece of Art: Abstraction
Tradition, Techniques, Jargon
Tradition, Techniques, Jargon
My Collection
My Collection
Feedback
The shortest Path
The shortest Path
●
...between two Points is not always a line!
MMMSS
MMMSS
●
Many More Much Smaller Steps (GeePaw Hill)
●
No obvious shortest distance
●
Must be able to change destination
●
Hand-offs between large steps are expensive
Priority #1: Health
Priority #1: Health
●
As long as you don’t kill the tree, there are
options
●
Healthy business
●
Healthy code
●
Healthy team
One Step at a Time
One Step at a Time
One Step at a Time
One Step at a Time
●
Response of the Tree = Feedback
– No no work before you observe the response
– Watch, water, fertilize, keep pests in check
●
Never work without feedback:
– Stories, that build on one another
– Long-running branches
– Accepted in review, but feature-flagged
Patience
Patience
●
Trees are slow when giving feedback
– Takes weeks
– … or months
Patience
Patience
With software products,
patience is an important skill
to make sure we don’t push
the team faster than they
can write good code, or
make changes to the product
faster than you can learn
from users response to the
changes.
-- Andy Nortrup
Speed is Key
Speed is Key
●
Which team provides more value?
Speed is Key
Speed is Key
Speed is Key
Speed is Key
Wait… Patience or Speed?
Wait… Patience or Speed?
Bad
●
More code, faster
●
More features, faster
→ Local optimization
Good
●
Better feedback, faster
●
More value, faster
Key to Success
Key to Success
●
Iteration
●
Feedback
– Better
– Faster
Simple Steps
Applied Consistently
All Steps are Simple
All Steps are Simple
●
TDD: Red-Green-Refactor
●
Refactoring: Extract variable / method, Move, …
●
Scrum: Planning, Review, Retro, …
Steps Must be Small
Steps Must be Small
●
Intrinsic benefits of Steps
– Interruptability
– Steerability
– Reversability
– Rhythm
– …
GeePaw Hill
MMMSS – Many More Much Smaller Steps
MMMSS – Many More Much Smaller Steps
“Just Let it Grow”
“Just Let it Grow”
“Just Let it Grow”
“Just Let it Grow”
“Just Let it Grow”
“Just Let it Grow”
“Just Let it Grow”
“Just Let it Grow”
“Just Let it Grow”
“Just Let it Grow”
“Just Let it Grow”
“Just Let it Grow”
“Just Let it Grow”
“Just Let it Grow”
“Just Let it Grow”
“Just Let it Grow”
“Just Let it Grow”
“Just Let it Grow”
Steps Must be Applied Consistently
Steps Must be Applied Consistently
Steps Must be Applied Consistently
Steps Must be Applied Consistently
Steps Must be Applied Consistently
Steps Must be Applied Consistently
Steps Must be Applied Consistently
Steps Must be Applied Consistently
Steps Must be Applied Consistently
Steps Must be Applied Consistently
Steps Must be Applied Consistently
Steps Must be Applied Consistently
Steps Must be Applied Consistently
Steps Must be Applied Consistently
Steps Must be Applied Consistently
Steps Must be Applied Consistently
Steps Must be Applied Consistently
Steps Must be Applied Consistently
Steps Must be Applied Consistently
Steps Must be Applied Consistently
Key to Success
Key to Success
●
Small steps
●
Applied consistently
●
Towards a goal
●
Over long periods
Environment
Bonsai: Unsustainable System
Bonsai: Unsustainable System
●
Small pot
●
Dense branches / twigs
●
Wants to grow big
→ Requires constant attention,
steering & work
Software: Unsustainable System
Software: Unsustainable System
●
Requirements change
●
Technology changes
●
We learn and get better
→ Requires constant attention,
steering & work
Health & Environment
Health & Environment
Responding to Change
Responding to Change
●
Future-proof architecture is adaptable
●
Only simple designs are easy to adapt
●
Remove unnecessary elements
●
Learn to refactor safely and in small steps
Environment: Growth and Learning
Environment: Growth and Learning
How can teams learn to
●
Get better feedback faster?
●
Create software that can be adapted based on
feedback?
●
Create processes that allow for fast iteration?
Environment: Size & Speed
Environment: Size & Speed
●
Just add one more person… (?)
●
“With half the people, we could do this project
in half the time”
Key to Success
Key to Success
●
Sustaining software requires constant work
●
Create an environment where teams can thrive
●
Optimize for adaptability
Learning
And Coaching Practical Skills
Learning by Watching?
Learning by Watching?
Video of a Bonsai Workshop
●
Student wires the whole tree (mechanical skill)
●
Master sets the branches and designs the tree
(artistic skill)
Did they maximize learning?
Bonsai Clubs
Bonsai Clubs
The Main Product
The Main Product
"The most important product of software
development is software developers"
-- Jason Gorman
We Learn by Doing
We Learn by Doing
●
From mistakes
●
From successes
●
From repetition
We Learn from Each Other
We Learn from Each Other
●
By discussing
●
By solving problems together
●
By watching and trying something similar
●
By watching and trying something different
We Learn by Teaching
We Learn by Teaching
●
By digging deeper into a subject
●
By saying things out loud
●
By watching others how they understood us
Training from The Back of the Room
Training from The Back of the Room
Samman Coaching
Samman Coaching
Way to Success
Way to Success
●
Create software developers
●
Optimize for learning
●
Learn together
●
Learn and coach in a brain-friendly way
David Tanzer
David Tanzer
●
Technical Agile Coach
●
Trainer
●
Software Developer / Architect
●
Freelancer since 2016
●
https://www.davidtanzer.net
●
https://www.devteams.at
Thank You!
Thank You!

AAC2026_Tanzer_Grown Organically Software and Bonsai.pdf