Back to Top
 

Software development - a gardeners point of view

Software development is a creative job and we are all passionate about what we do and how we like to do it. We love to start a "greenfield project"

So how can I introduce change - an intrinsic change that will grow and find acceptance within the teams I am working with? Working with so many developers, product owners, DevOps and test automation engineers made me think about ways of better communication and a new way to approach change and collaboration.

One approach I like to use is based on Nature as a metaphor to talk about technology and it seems to work quite well. In this case, people tend to open up and forget about their roles and disciplines, they start to discuss nature and find new synergies that will work the same way in software development - they start to participate. At the same time, we all align without too many discussions about specific technology topics on a new common approach.

Why is that? Talking about Nature brings us all to the same level of understanding - we are less passioned about our own opinions and it is fun to find some more examples. We remove the expert knowledge and we can focus on a common ground of understanding. Nature also provides a good example of a functioning ecosystem. In this case - Nature can teach us how to look at the whole picture of an Ecosystem, the same way as we should do this for software development.

 

My last talk at the Amazon Summit in Berlin (2017) was about the same topic. I started by wondering why we call it "Cloud Computing" - in Nature clouds are difficult to predict, they never do as expected and it is really impossible to grow a Greenfield on a cloud. 

 

And we love to start "greenfield projects" new software from the scratch

 

But in reality we are confronted with the "Cactus"

 

The huge monolith, nobody likes to touch - it hurts if you get too close unless you know what you are doing. But still the cactus fruit is sweet - just hard to get to it.

Look at the soil - it is all dry, not many plants can grow here. 

 

At this point I usually talk about soil-computing instead of cloud-computing to start the thinking process. 

 

Some more examples:

 

Weed the garden = refactoring

Pruning = re-use components

 Fences to protect your garden - or no fences and teamwork to make use of existing applications

Bee hives (there are actually many books to read about) = your teams

 

Team roles like the Product Owner

 

The best product you can get - but what about the honey?

 

Your worker bee - only one title, driven by intrinsic motivation to produce the product

 

Your builder bee - strong and reliable infrastructure with the lowest complexity

 

The heater bee - cooling down the hive with an agile mindset, heating it up with deadlines

 

The beekeeper - making sure you got the best bees