This is my side note.
Not all programmers are equal. There are fresh graduate, normal programmers and more superior programmers. What do you think of the productivity of a normal programmer (say a fresh graduate) compare to a superior programmer? Is it 10% higher? Is it 25% higher? Twice or three times higher?
Let us compare based on the actual project experience that fortunately we have recorded many years ago.
In one of our projects, we hired 8 normal programmers (that already has a few years working experience) to work for 10 months and they could not finish the project. The software run very slow and there was a lot of problems. In every meeting they argue that this and that could not be done and demanding higher resources (such as memory, bandwidth and machines) and even after we supply their demand, they were not able to accomplish as promised.
Finally we decided to terminate the contract of the 8 programmers and hired two more superior programmers. The cost of each of the superior programmers is 2 to 5 times higher than the usual programmers. After a lot of arguments, we agreed that the two superior programmers scraped the whole code that had been built for almost a year and they start develop it again from scratch. To our delighted surprise, in just two weeks, the two more superior programmers accomplished the same functionalities as the previous 8 programmers did in 10 months and the software run faster. They finally finished the whole projects in just two months without any problems.
At that time, we thought the programmers’ fee has the same factor as their capability. We were wrong. The productivity of one superior programmer is equivalent to approximately 80 normal programmers.
How do we get this number?
Let us compare their capabilities when they produce the same functionalities. The comparison is for the same functionalities and we did not count the emotional and financial problems due to late of the projects and problems because the program have so much bugs, slow and sub-standard code. We also could not compare the whole project of two months from the superior programmers because they have developed much different functionalities that the first normal programmers did not develop.
- Normal programmers: 8 programmers * 10 months = 80 man-month.
- Superior programmers: 2 programmers * 2 weeks = 1 man-month.
Thus, the productivity of one superior programmer is equivalent to approximately 80 normal programmers. Not twice, not three time but eighty times higher.
But the superior programmer demand much higher salary. You may think that it is cheaper to hire normal programmer. Let us analyze if that were true.
Suppose the salary of normal programmer is $X, then the salary of superior programmer is $5X (note that we use the maximum value form the range). Total cost of using normal programmer is 80X. Total cost of superior programmers is 5X for the same functionalities.
Thus, a superior programmers is actually 80X/5X = 16 times cheaper than a normal programmer.
The benefit of hiring superior programmers include emotional (no problems and no worries) and superior code and documentation and well maintain for the long term, which value significantly much higher but we did not yet take into account in above simple analysis.
How to cite this tutorial:
Teknomo, Kardi. (2017) Analysis of Algorithm .