We’ve been writing software at 37signals since 2004. About a year later I bought a new place that came with a little backyard garden. Over the past few years I’ve seen patterns in curious places. Growing plants and building software have a lot more in common than I ever thought.
Plant spurts
When you have a garden one of the things you start to notice are the seasons. I mean really notice the seasons—and micro seasons. Instead of winter, spring, summer, and fall, you notice hibernation, sprouting, prolific growth, rest, growth, rest, flowering, rest, reproduction, transformation, rest, hibernation, etc. If you watch closely you can tell when it’s working on its roots or its flowers or its leaves. If you watch closer you can tell if it’s passive, aggressive, stubborn, clever (vines are really clever), etc.
Software spurts
It recently dawned on me that software grows much in the same way that plants grow. New features are the flowers of the software world. And just as most plants aren’t flowering all year long, software isn’t sprouting features all year long. There’s flowering season. There’s new feature season. There’s infrastructure season.
Sometimes software is working on its roots. Bolstering its infrastructure. It’s growing underground where the public can’t see it. It looks like nothing’s happening, but there’s really a lot going on. Without those roots new features can’t sprout.
And sometimes it’s rest time. Plants rest in the winter. Software often rests in the summer (it’s too nice to work too hard in the summer). Everything can benefit from a deep breath, relaxation, and sleep. Chaotic constant growth and change doesn’t make room for order and organization. Growth requires new energy and new energy requires rest.
Cycles
It’s the downtimes that make you appreciate the uptimes. Winter gives way to spring which leads into summer. When you start to see shoots, new leaves, and nascent blooms you start looking forward to bigger flowers, more growth, wider coverage.
When software’s been resting for awhile, and something new blooms, you look forward to more updates. Development season takes hold, attention gathers, and things start happening. This week there’s improved search, next week there’s a brand new feature, and next week there’s something great that’s entirely unexpected. Software gains momentum and change rolls into more change.
Then the whole cycle begins again.
Anonymous Coward
on 07 Sep 07What?!
JF
on 07 Sep 07That?!
Bob Monsour
on 07 Sep 07Thanks. You just gave me some great ideas for analogies to use as we kick off a new academic year, which happens to have some of the same kinds of cyclical nature. The board of trustees goes through some of the same energy cycles and I’ve been preparing my thoughts on how to initiate this year as the new board chair. I particularly like the phrases “[a new academic.]...season takes hold, attention gathers, and things start happening.” That is exactly what we need.
Regards, -Bob
Josh Walsh
on 07 Sep 07I’m glad this metaphor works for you, but it seems a bit out-there to me.
As always, thanks for everything you do.
Chance the Gardener
on 07 Sep 07Reminds me of the Peter Sellers movie, Being There.
Chad
on 07 Sep 07It seems like hibernation at 37signals is going on right now.
Coudal
on 07 Sep 07Here’s Chance from ‘Being There” when he appears on the network TV talk show.
“Yes. In a garden, things grow – but first some things must wither; some trees lose their leaves before they grow new leaves…
The Kozinski script is here… http://www.dailyscript.com/scripts/being_there_1_10_79.html
The TV appearance is towards the end.
Sandy
on 07 Sep 07Seeing the parallel between how things happen in the natural world and the human world (which is, after all, a part of the natural world) is well established in many (or all?) native cultures. The wheel of the year (winter, spring…), the wheel of the human life (death, brith, growth, maturity), the wheel of a project (planning, implementation, completion, review) etc. is the same wheel. i.e the same types of activity : hibernation, sprouting, rapid growth, seeding, etc were observed to happen at all these different levels.
Kenn Christ
on 07 Sep 07Chad: It seems like hibernation at 37signals is going on right now.
Don’t tell me 37s is switching to Java! Say it isn’t so!
Mimo
on 07 Sep 07What you are saying Jason is true. But that is LIFE. Life has rules. So if we create things we should try to follow those rules. All inventions we have come from the nature. Everything. If we don’t follow those rules we create pervert object, projects… They are like cancer. Growing without control. This is what is wrong about capitalism, this is what is wrong about interest. Growth without controll.
Jake
on 07 Sep 07That’s interesting. When I was designing a wristwatch last week a really saw the parallel between time and the micro-seasons of plants. Naturally – I converted that burst of inspiration into a tabbed browsing interface and patented it.
Mufasa
on 07 Sep 07The circle of life…and it rules us all.
Brains4All
on 07 Sep 07So true, for more analogy between programming and gardening check out The Progmatic Programmer by Andy Hunt and Dave Thomas. Also Programming is Gardening, not Engineering A Conversation with Andy Hunt and Dave Thomas, interview by Bill Venners has a lot of very insightful stuff. I know David is a fan of the Pragmatic Programmers. I know I am.
dummy
on 08 Sep 07Given attentive study, steady cultivation, right action, or dumb luck we sometimes get a glimpse into the way of power.
There is an old book on the way of power that i am surprised you haven’t often referenced here…
Your boy Matt knows whats up, though
Viktor
on 08 Sep 07I liked the bit about hibernation. Nice excuse ;) Must use it one day.
Sukit Arseanrapoj
on 08 Sep 07Thanks. This is one of the most insightful views of software development I’ve seen in a while.
I wish more project managers can take on this view and stop the 9-month sprouting season. :)
Benjamin
on 08 Sep 07Nice analogy… And as in real life, some flowers smell sweet, others really stink. :D
Steve Argot
on 08 Sep 07Hey man, can I get a hit of that?
Guy from down the street
on 09 Sep 07Don’t listen to ‘em, I dig your analogy Jason… If you haven’t seen it yet, get Deep Sea (IMAX). It was at the IMAX Navy Pier a while back in 3D and it was mindblowing. I just got it on On Demand (Comcast) and it’s still great even though it wasn’t in 3D.
Tom
on 09 Sep 07Simple, but strong analogy. This, to me belongs to a science of design (and has been referred to as ‘design by symmetry’ on a higher level). Though it might seem obvious, it’s a powerful insight for a development cycle. You become more anticipative for upcoming steps and you appreciate the dynamics, instead of considering them as obstacles. I collect examples for the impact of transformations in design (basic assumption: focus needs to go to these moments as they are the most crucial element and contain most information about the next and previous state). So your brief reflection goes right in!
Lucas
on 10 Sep 07Very good analogy.
Also, as a plant, software dies too. But it can leave seeds to grow stronger.
Rob
on 10 Sep 07Patience is another good aspect of this analogy. We usually think of gardeners as having an enormous amount of patience tending their grounds. They know what it will look like when it’s flourishing and tend it so that it gets there.
Patience is not a word often used in software development. Instead, we want the garden in full bloom year round with deep roots, automatic irrigation and harvesting – and we need that last week because we’re running out of seed money…
Dan Sage
on 11 Sep 07Very interesting analogy. David Bednar, a professor of the year at University of Arkansas (94), once said,
“Interestingly, simple and ordinary experiences often provide the most important learning opportunities we ever have.”
Thanks for sharing that learning opportunity.
Young Blood
on 11 Sep 07Peter Sellers?!? Being There?!?..Old farts
This discussion is closed.