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