天天看點

你的每行代碼值多少錢?

我知道,“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

如果大家有不同意見,歡迎指教。