Posts Tagged ‘complex’

Your software is (like) a garden

Posted: December 8, 2021 in Agile
Tags: , ,

Random thoughts on why creating software products is like creating a garden.

  1. It’s not so easy to see if your plan for your garden will work out. You’ll get most of the way there, but there will always be the patch that gets more sun than you expect; or that area where the water just does not drain; or that piece of soil that is the wrong type/acidity. And the quickest way to find these things out is to actually just start planting.
  2. You can plan your garden. Your plan will not work out as expected. How much your plan deviates depends on lots of things – for some of them, experts will know (like which plants like what types of spaces) and others will come down to the microclimate in your space. Sometimes the effort to get your garden to match your plan exactly may not be worth it.
  3. Gardens are impacted continuously by all sorts of things outside of your control: sunshine, shade, rain, drought, bugs, wind, etc. You can’t just leave it and assume it’ll still look exactly the same a year later.
  4. Generally, if you ignore your garden, things start to happen whether you wanted them to or not. Weeds appear. Your soil might get tired and need some feeding. Some plants grow out of control and need pruning/cutting back. Others get swamped and struggle to survive. Basically, gardens will continue to change/evolve even if you’re NOT involved.
  5. If you want to grow new things in your garden, unless you’ve been maintaining your garden regularly (weeding, fertilising, pruning, etc.), you’re going to need to do a lot of prep before you can plant your new plants.
  6. You can’t evaluate how well your garden serves its function until you’ve spent some time in it. You need to see it in all sorts of weather and all times of the day/year before you can properly evaluate if it has met your requirements.
  7. If you’re unsure about whether a plant is going to succeed or not, you can choose to start with a small area/number to first test your assumptions.
  8. Buying plants can be expensive. But changing where you put them is relatively cheap.
  9. Creating and maintaining a garden needs different skills. It may also need some hard physical labour. Sometimes you might need a team of people to help you create a very complex or large garden.

What other things make creating software a bit like creating a beautiful, functional garden?