Human evolution with traditional software development

Enrise

14 maart 2016

When explaining the importance of incremental product development to customers or stakeholders it always helps to use examples and analogies. Henrik Kniberg’s skateboard example is a great analogy to make customers understand why they should not build their entire idea all at once, but do it in small steps and use data analytics and user feedback to sense and respond. Within such a responsive enterprise or experimental enterprise the idea evolves to the right solution which very often is quite different compared to the initial specifications. In Henrik’s skateboard example the car becomes a convertible while that would not have been so if they had built the car straight away.

How would we look if we were specified upfront?

That made me wonder: how would we – humans – look today if we were ‘developed’ the traditional software development way: a specification would have been written thousands of years ago and we would have been created exactly according to those specifications. In my imagination we would have gotten a very long neck so that we can reach the food high up in the trees. Our neck would have been given dangerous looking spikes to scare enemies and keep them at distance. The small tail we once had would have grown bigger so that we can still keep our balance now that we are so much taller than we used to be.

Now imagine these features in your daily life. It would hardly be possible to enter your house. You would need Henrik’s convertible because otherwise you wouldn’t fit in your car. And if you do have a convertible, avoid driving trough tunnels or underneath bridges. That would end badly. You can probably imagine some more unpleasant consequences of these features in today’s world.  

Human evolution translated to software development

Luckily humans are not ‘developed’ based on predefined and fixed specifications. We evolved over thousands of years to today’s version of humans. And even if we were developed according to these predefined specifications, we would have had the ability to adapt the world around us: we would build taller houses, design clothes that match with those spikes so that it looks fashionable and invent a million products to keep your tail in good shape.

When developing a product the world around it doesn’t shape itself to fit your product, it’s your product that you shape to fill a gap in the existing world. The chance of finding a solution that successfully fills this gap, increases heavily when you approach software development as a form of evolution. Make sure you learn fast. By creating an environment focussed on ‘sense and respond’ instead of ‘plan and predict’ you will be able to prevent ending up with a very long neck, scary spikes and a big tail.

What’s new here?

The principle of sense and respond instead of plan and predict is already described in other books and posts. I just liked to share my imagination and provide you with another analogy which you can use when explaining the concept. Feel free to use and share this new analogy whenever you like!