“Out of the Software Crisis”: Gardening

The following is an extension of my notes from Baldur’s book “Out of the Software Crisis” including quotes from the author.

Great software grows in our minds, we don’t manufacture it on-demand.

[Software projects] are grown thought-stuff [but we] treat them like lego blocks.

As an interesting exercise, put aside the industrial metaphor of software as “legos” or “building blocks” and instead think about gardening as a metaphor for making software.

It takes time for a gardener to develop a sense for how the plants within their garden connect and affect each other — “what makes them thrive, what kills them off, and how you prompt them to grow.”

Stuff in the garden grows at its own pace, revealing itself along the way, and it’s the gardener who must notice and respond in kind. This growing happens together — the plants, the gardener, the ecosystem — and drop-in replacements are risky.

The constitution of a garden is the realization of the gardener’s experience.

Software is quite similar.

Software is the insights of the development team made manifest.

Love this articulation! And it’s precisely why churn is so costly to organizations. The insights a team of people has over time, and then responds to by evolving their software, is how a product grows and comes to fruition.

Cut out the people who hold the insights and you tear out the roots of the software.

The gardener is the garden, and the software is the team people who work on it.

code documentation…[is a] mnemonic for what you already know.

Software is the lessons we learned along the way.

Great software requires growing, a growing together of the team, their insights, and the technological possibilities of the time.