你的每行代碼值多少錢?
我知道,“line of code”(LoC)是一種非常愚蠢的計量方式。不要急著噴我,請大家先聽我講講我最近參與的兩個項目,看一下一些非常有意思的數字。
項目#1:傳統的同地協作
第一個項目是由一組程序員通過傳統的同地協作來執行的。人數為20(不包括項目經理、分析人員、產品負責人、SCRUM大師等等)。該項目是一個大流量的網絡拍賣網站(每天有超過200萬的頁面訪問量)。
代碼庫的大小約為20萬行,其中15萬是PHP,3萬5是JavaScript,其余則是CSS、XML以及Ruby等。這20萬行只包括使用cloc.pl的非空和非注釋行代碼.
這是一個商業項目,所以具體名字我不便透露。
大家在歐洲的同一個辦公室里,每個人都“朝九晚五”地工作。我們可以一起開會、吃飯、面對面聊天以及通過其他多種非正式方式溝通。所有的任務都使用了JIRA跟蹤。
項目#2:分布式
第二個項目是一個開源的Java產品,通過一個約15人的分布式團隊開發。我們沒有任何的交流也不做任何非正式的溝通。我們都是在Github上討論問題。代碼庫明顯要小很多只有大約3萬行,其中約90%Java,其余則是XML。
成熟的開發
這兩個項目都是托管在Github上的代碼庫。
兩個團隊都使用了自動化構建、持續集成、靜態分析和代碼審查。這表明這兩支項目團隊都已經比較成熟。
這兩個項目都滿足了用戶的需求。我提這一點是想強調,這兩個項目的代碼,都是有價值的。沒有廢物,也幾乎沒有重復的代碼。
看看項目回報
在這兩個項目中,我的角色是首席架構師。除此之外,我還有權限訪問兩者的Git代碼庫。所以我可以知道在某段時間內,比如說三個月時間里,代碼庫中新添加(或者改動)了多少行代碼。
現在,讓我們來看看這些數字。
第一個項目一個優秀的開發人員每年可以拿到大約50,000歐元,也就是約5600美元每月或35美元每小時。第二個項目則只需要對于已完成的任務支付20-35美元每小時。
第一個項目,在三個月內,寫了59000行新的代碼,并在改變主分支時刪除了29000行,那么總計就是88000行代碼。此過程歷時約10000個工時(20程序員,三個月,每月170個小時)——相當于約35000美元。因此,每行代碼的價格為
3.98美元
第二個項目,在同樣三個月時間里,新代碼產生了45000行,刪除了9000行,也就是54000行。為了完成這項工作,根據XDSD原則,我們只花了7000美元(約用了350個工時完成了650個任務)。因此,該項目一行代碼的成本僅僅是:
13美分
$35000 VS$7000,3.98美元VS0.13美元,你有何感想呢?
結論
我將這些數據公諸于眾是為了告訴大家,分布式編程比傳統的同地協作團隊更為高效,也更節約資金。你看,0.13美元與3.98美元,相差30倍呢!
怎么做?
當然,你說你為了達到分布式合作的目的,決定讓你的程序員在家工作而不必來辦公室的話,那我就該笑你只會硬搬硬套了。可以實行XDSD這個嚴格的質量原則,整個團隊都應該遵守的原則。
如果這些原則都能應用到位的話——那么你所需要付出的資金將會減少30倍。
順便透露給大家以下這些項目的成本:
$12-103:crazyontap.com
$15-40:betterembsw.blogspot.nl
超過$5:joelonsoftware.com
如果大家有不同意見,歡迎指教。
譯文鏈接:http://www.codeceo.com/article/how-much-do-you-pay-per-line-of-code.html
英文原文:How much do you pay per line of code?
翻譯作者:碼農網 – 小峰