Dec. 7, 2013, 8:44 a.m.

The problem with time and competition

A competitive market forces all of us to cut corners in order to try and stay ahead of the pack. If you don't, you'll fall behind and is replaced faster than a neutrino can travel through your body. This applies to most professions alike. In the software development industry, there is an endless tug of war between timelines, features and budget. For the non technically minded readers, here is a short explanation of each.

  1. Timelines - It takes a finite amount of time to engineer a software based system. Companies want to be competitive, so the shorter time it takes to build something, the faster you get it to market and the bigger your advantage.
  2. Features - the more features a software system has, usually the better the company can promote it as being superior to the competition. More features equals more sales.
  3. Budget - naturally each software project is budget limited in some form or another. The cost to build software directly translates to the amount of profit that can be had.

Unfortunately these three aspects are mutually perpendicular to each other, kind of like a cartesian axis in 3D space. To improve on any one of them, you need to sacrifice one of the others. It is not possible to improve on all three alike at the same time. Since companies want all three improved all the time, this causes a huge predicament. Think about it - if the request comes down from management to get the release out of the door faster, i.e. reducing timelines, the only two ways you can possibly do this is to either reduce the features (i.e. reduce the work input), or to increase the budget (by adding more resources). Likewise for the other aspects.

When I started writing software I was fascinated by it. It had me mesmerized. I spent endless hours through long nights working my way through the layers of abstraction until I started understanding computers at their core... the binary bits that get toggled by boolean gates in the form of simple transistors. For this phase of my life with computers, the timeline aspect as well as budget was not really a concern. Budget went out of the door once I had my first computer - that is pretty much all that one needs to start hammering away. Timelines were not an issue because I was in high school still - I was a teenager with more time on my hands than a sloth. Therefore features - in this case experience and knowledge, had free reign.

In today's world things have changed a lot. We are ever more competitive. Meaning time and budget are ever more limited.

The opportunity for greatness has been lost.

And this is the key point of this essay - it is my belief that the key reason we have not invented anything new since the second world war (atom bomb, transistor, etc.) and the regression in technological achievements (we cannot fly nearly as fast today commercially than we did back in the 80's with the Concorde, when last did we land a human on the moon or any other planet, NASA's space shuttle program being shut down, cars not really improving in performance over their 60-70's counterparts, the fastest plane in the world was built in the 60's - the Blackbird, one would think there is a faster one by now) are all due to increased pressure on limited timelines for ingenuity and limited budgets.

During a war there are no limits on budget - nations spend endless amounts of money to get an edge. Timelines are limited but with an endless budget one can accomplish incredible things. All this is reinforced by Peter Higgs' statement. He claims he would not be hired by any university despite his Nobel Prize simply because he is not considered productive enough. Today the emphasis is not on greatness (such as his groundwork for the Higgs boson's discovery), but on the amount of research papers he can produce per year. In this case the feature aspect is on volume to look impressive as a university, not on the much harder (but more rewarding) ingenuity.