As a Bay Area transplant, succulents – which thrive in this climate – are facinating to me. They are extremely forgiving house plants, and popular subjects of photography. But it’s the way that they grow that intrigues me. Mature succulents sometimes shoot out exploratory roots from their trunks and branches, and a broken piece (or cutting) can propagate an entirely new plant.

We often use metaphors to describe software such as architecture and plumbing, but my favorite has always been that software is gardening. As careful as your attention may be, your planting and pruning will someday go awry. Weeds encroach and vines entangle. But the idea I like the most from working with succulents is the idea that maybe, just possibly, a piece of code can put down roots, and grow into an entirely new plant.

The results are not always pretty – especially at maturity – but in the beginning each plant is perfect, eccentric, and bursting with creative potential.

Software engineers can be forgiven for drawing trees upside down. Botany has a way of defying imagined constraints.

related ideas:

Fractal Law – software systems will replicate themselves at every level. (See also Conway’s Law)