“The average person makes an eye-popping 35,000 choices per day”
It may come as a surprise to many, but the most important skill in software development is not how good your coding skills are or how much you know about machine learning and data science. It’s decision-making!
And good decision-making is measured by the speed and correctness of this action.
Did you know that the average person makes 35,000 decisions each day? About 227 of these are on food alone. Our rapid advancement of technology has us continuously surrounded with an overwhelming amount of information. If that’s not enough, we’re also bombarded with “smart” notifications.
What does this have to do with software development? Software development is a massive problem solving exercise where uncertainty is the norm. This is evident in our behaviour of constantly asking questions, inventing assumptions and making countless decisions. To list a few:
Unlike our daily life decisions of what to eat and what to wear, the decisions in a business that develops software carries a cost that could be detrimental to its commercial viability. Uncertainty numbs our ability to make good decisions. There are countless intangible elements in software development make some decisions more riskier than we realise.
We’re obsessed with delivering software products faster. But at what cost?Although, what is the point if what we are delivering does not delight the customer and generate the business revenue? Furthermore, there is a certain point at which the rate of delivery becomes unsustainable and other aspects of the software business will begin to suffer such as culture, motivation and innovation.
Making better decisions is not only a necessary skill for management but for teams who deliver software as well since every decision has a flow-on effect. How we make decisions influences an organisation’s agility, culture and ability to successfully deliver software that delights its customers. Each bad decision might initially grant us a step forward but soon enough will take us a few steps backwards.
Decades of research show that we easily fall victim to our default mental shortcuts (aka cognitive biases) and how they frequently rule the way we make decisions. In order to truly optimise and rapidly deliver software, ultimately business value and thus revenue, we need better discipline around the way we make decisions in software development. The act of critical thinking seems to be It is possible to minimise or avoid teams from making the obvious bad decisions.
Bad decisions are always more costly than we realise. If we’re too busy spending money on fixing up the bad decisions, then our opportunity to innovate with technology will rapidly decrease.
For example, software projects more often late and/or over budget than on time and/or under budget. This demonstrates our lack of discipline around software estimations (eg. how much and how long will it take to deliver business value X) which leads to sub-optimal decisions. Our decisions are only as good as the information that supports it. Want to learn how to do more reliable estimations?
We repeatedly preach for a “culture that learns from its mistakes” in the software world. But yet we continue to deliver software products that are late and over budget. Have we really made any significant progress in being better at delivering software? Or have we danced around the core problems?
Change is not easy and sometimes a lot of hard work but growth can only happen when there is change. But nothing will change, unless we change!
“There is no substitute for hard work” — Thomas A. Edison
Whilst there’s no formulate to the “right” way of making decisions, there are some principles we can keep in mind such as using supporting data and being aware of cognitive biases. Ultimately, making good decisions comes down to the speed and correctness that they are made.
How have you improved making decision about project costs, resource allocations, delivery timeframes, which order to build things, etc.? I’d love to hear about the methods, techniques and/or tools that worked or didn’t for you. Please share your thoughts in the comments.
You may also like:
Coming soon! Follow me to be notified when it’s published.