Software Developers are Gardeners

Developing software is a collaborative process of creativity, discovery, problem solving and hard work which can continue indefinitely. Working software systems are modified and reinvented in an organic process that often goes on for many years. Building software is therefore very unlike constructing a house or a bridge and much more like gardening: software grows, gets redesigned, pruned, improved and maintained over many years, very like a garden.

Organizations make changes to live, working software every single day but not always at a constant pace. In common with gardening, there are rhythms inherent software development work. There may be seasons when software does its job relatively unchanged followed by intense periods of (re)design and construction.