Technology

Premature optimization: Learning from software development

Imagine this: The quality assurance team files twenty bugs for a feature to be released shortly and fifteen of them get classified as known bugs, not a blocker to release. The first time I heard of such an incident, I wondered why is it that the organization is willing to ship a feature that has known bugs. Why would anyone not fix bugs before sending it out to the world? Does that not make for a better customer experience? Turns out, there lies very sound logic in sending imperfect products out into the world. 

Let me introduce you to the concept of premature optimization. Premature optimization is spending too much time optimizing features and specifications that might add minimal value to the product or service. To quote from Donald Knuth’s book, The Art of Computer Programming, ““The real problem is that programmers have spent far too much time worrying about efficiency in the wrong places and at the wrong times; premature optimization is the root of all evil (or at least most of it) in programming.”

We know that developers are expensive and their time valuable. We also know that known design flaws are common in the world of technology. What we do not know when releasing a feature for the first time is whether customers will actually use or like it. Instead of spending time and money perfecting the feature, it is far wiser to send it out into the world to collect early customer feedback. Given that agile is a common way of work and iterative releases are the name of the game, once we have customer feedback, it gets easier to know where to focus and which areas to let slide. The same principle applies while discussing scale. Before you worry about handling millions of users, you need to make sure that 100 users even like and want to use your product. Validating user feedback needs to come first.

HR needs to take a leaf out of technology’s book. We shoot down innumerable technology interventions worrying that they aren’t perfect. We struggle to pull together the budget for the perfect tech solution. We worry about scale even before we know if our idea will gain traction with users. Over and over again, we have realized only too late that the success measures of our product are loosely defined and there doesn’t exist a closed feedback loop. Product feedback is almost always via anecdotal feedback collected from a small user base. Utilization data is never or rarely tracked for long enough and our design principles would give anyone in the world of product design endless nightmares. 

How many times have you launched a product e.g. a peer recognition platform only to have utilization follow a dying curve over the years? How many times have you started designing a product with scale in mind? 

The next time you are releasing a product or service, remember to:

  • Reduce optimization: Hit pause on the endless loops of optimization. Sift through the gaps to decide which are release blockers and which can be fixed post release. Remember there are no perfect products in the world. It is ok to alpha and beta test but also know that no one releases the perfect product even post these. Focusing on optimization deprives the product of essential quirks, eats into time rather used for crafting good success measures, collecting early feedback and staying agile. 
  • Take risks: Let imperfect ideas translate into a prototype and then into a product. No one knew that the world needed electricity, telephone, cars or even sticky tape before they were invented. The environment around us is full of impractical ideas now considered indispensable. Double down on the risk taking capacity and you will be surprised by what emerges. 
  • Keep scale off the table: Innumerable ideas never come to life only because the sponsors are more bothered about scale than if the idea actually works. ‘Have you thought about how it will scale,’ is unfortunately the most popular question in HR for reasons unknown. It is regrettably also one that decides if an idea gets funded or doesn’t. Next time someone asks you that question, give them an introductory course on premature optimization and software development basics. Maybe then you will finally be allowed to create beauty. 

It is easy to forget that there is something to learn from every process out there. As we strive to transform HR into the world of technology and into the digital era, it is important that we look at the concepts that already exist in technology and adopt them sooner than later. Yes, it is great to make our own mistakes but in the interest of time, let’s not repeat ones that we have already made. 

P.S. Don’t forget to tune into the upcoming People Matters TechHR India Conference taking place from 10th to 14th August to learn more about rewriting the HR and WorkTech playbook.  

 

Browse more in: