程序員最多能用多少時間來編程?
我走進晚會的時候,演講已經(jīng)開始了,Michael Arrington 正在大談特談關(guān)于創(chuàng)建企業(yè)的艱辛:很多時候甚至只能趴在桌上小憩一番。但是,我想補充幾句。我看到過很多論述,說這樣的工作方式反而會適得其反、與成功失之交臂,甚至還會對程序員的身體產(chǎn)生極大的危害。但是,很少有人會對此進行定量分析。鄙人不才,下面先行拋磚引玉。
我們一般每天工作8小時,那么一周就是40小時。在極端的條件下(當然也不現(xiàn)實),如果一個程序員整整一周不吃不喝也不睡覺,所有時間全部用來寫代碼,那么就有24×7小時,乘起來是168小時,是平時的4倍。
當然,人又不是機器,不可能24小時全部用來工作,程序員也是人,也有正常的生理需求:例如,睡覺。人的***睡眠時間是7至8小時。也許,熬上一兩天少睡一點,也能撐得住,但是之后往往需要補充睡眠,睡得更多。而且在此期間,工作效率往往很低。為了更好的工作,我們假設(shè)每天7.5小時的睡眠時間,7天就是52.5小時,那么168小時減去52.5小時的睡眠時間之后,剩下115.5小時!
還有吃飯。吃飯也是必不可少的,首先得有食物(點餐或者自己烹飪),然后才能吃到肚子里。一天3餐,假設(shè)我們每頓需要30分鐘,那么一天就是90分鐘。如果是點比薩之類的快餐,那每次要花的時間可以減少到15分鐘,一天下來,可以減少到45分鐘。就算一天需要60分鐘也就是1小時的吃飯時間。那么115.5-1*7=108.5小時。此外,刷牙洗臉刮胡子,有的時候還有洗澡,這些至少要30分鐘 =>108.5-0.5*7=105小時。還有上下班浪費在路上的時間,2007年全國平均上下班所用的時間為45分鐘一個來回,也就是5.25小時一周 =>105-5.25=99.75小時,就算100小時。當然,如果你想省這部分時間,完全可以趴在桌子上睡!
100小時,也只是比平均的40小時多1倍半了。而我們甚至還未曾談及生產(chǎn)力、家務(wù)勞動、疾病、朋友聚會、約會、追妹子等等活動。撇去這些不談,假設(shè)一周7天天天工作,那么每天也就10至14小時的工作時間,而這樣的工作強度也只能在短時間內(nèi)真正有效率(最多幾個月)。
所以,問題就來了,我們花了2.5倍的時間,是否能給創(chuàng)業(yè)公司帶來天文數(shù)字般(即10倍或100倍)的預期回報?我們多花的150%的價值在哪里?是不是一周干40小時企業(yè)回報率就泯然于眾,而100小時就會讓企業(yè)一躍成為類似Facebook這樣家喻戶曉的公司?如果增加員工的時間投入就能提升企業(yè)的價值,那為何不多聘用幾個程序員?坦然而言,如果投入更多的時間就意味著會有巨大的回報,那么肯定是增加員工更為劃算,這筆帳誰都會算,不是嗎?
如果上述結(jié)論不正確,那么為什么一些企業(yè)家還有拼命灌輸“瘋狂加班”的文化?大家為何對Arrington 和Jason Calacanis 提出的“工作、工作……直到死去”這一觀點極力追捧?其中一種可能是,大家不知道該如何衡量,只是單純地認為加班加點總會有有豐厚的利潤。不過我發(fā)現(xiàn)其中另有玄機。
事實是,無論我們用來考核工作的指標再怎么精密,也無法真正衡量出一個程序員的工作效率。此外,大多數(shù)公司中都有競爭機制。哪怕有的人并不想“爭權(quán)奪位”,也得花很多時間詳細地審核代碼、檢查bug。像Arrington這樣的人,是不會花時間也沒有這個專業(yè)能力來做考核員工業(yè)績這種繁瑣的事情的。所以,他們就采取用工作時間來衡量一個人的生產(chǎn)力。這樣,哪些程序員花了多少時間工作(還必須時時刻刻都得寫代碼?。┗蛘吣男┏绦騿T常常“不坐在電腦前寫代碼”,一眼望去,立刻清楚。打個比方,如果你能在凌晨1點Arrington打電話給你的時候,毫無怨言,立即開工,那么你等于是把時間都投入到了工作中,當然愚蠢自大的人是不會明白,其實接個電話修復問題只要10分鐘就可以搞定了。
因此,盡管Arrington 和 Calacanis一再強調(diào),他們所說的希望程序員能一直工作的真實含義是,希望他們能夠隨時待命。很大一部分原因是,如果沒有這些程序員,有很多問題光憑他們個人,根本無法解決,但是這于一個創(chuàng)業(yè)公司的能否成功是無關(guān)的。話說,有些已經(jīng)成立的公司里,甚至還會有這種愚蠢的老板,在他們莫名其妙的腦瓜里,竟然有這種觀念:比boss早走一秒鐘竟然是彌天大罪!
譯文鏈接:http://www.codeceo.com/article/how-many-hours-programming.html