Monday, September 7, 2015

Myth of the Myth of the Uber Programmer


Try not to become a man of success, but rather try to become a man of value.
Albert Einstein

Is there such thing as an Uber programmer - one who is so talented, he or she is 10 times more productive than others on the staff?  Or is this just a myth and the gap between developers is really just one of perception or hard work?  Jacob Kaplan-Moss, one of the creators of Django, believes this is really just a myth.  He believes this myth creates stereotype that alienates potential developers who otherwise would be quite successful.  He bases his deconstruction of the Uber programmer on developer productivity and the difficulty in measuring it.   On this particular point I agree with him, it would be rare to find a developer who is 10 times more productive than most other developers if we use simple productivity measures (lines of code, User Stories, etc.).  But I do believe in the existence of Uber programmers who produce 10 times (or more) VALUE with the code they write. Not only do I believe they exist, but Jacob Kaplan-Moss is an Uber programmer by all appearances.  His users certainly feel his software provides great value.  Why should any other measurement matter?  Value encompasses all those characteristics we want in a developer: innovation, quality, and delivery.  What other KPI is able to quantify these?  This is why KPIs, stack ranking, etc. all fail to identify the best developers.  When you measure lines of code, you get more lines of code.  When you measure unit test coverage, you get more unit test.  When you measure hours, you get more hours.  When you measure value, you get more value.  Only one of those tells me who the Uber programmer is. 



Now the tough question, how do you measure value?  Value has 3 possible measurements: increased revenues, decreased cost, customer satisfaction.  If a feature set address one of these 3, value is achieved.  If it addresses more than one, then it provides transformative value.  There are developers who understand value and deliver on it time and time again.  You inherently know who they are and  when you have a mission critical application to be done, you do not pour over the KPI reports to find out who should do the work. You go right to the person you know will deliver value, even if you do not consciously think of it that way.  

Surprisingly value is the least discussed measurement of  developers and really all employees. Everyone who manages people should strive to identify the value brought by individuals and find ways to document it.  Once you can document value, you can get the recognition necessary to hang on to business critical employees.