所有的程序員都會(huì)熬夜。
正常的軟件項(xiàng)目中,項(xiàng)目的資源需求會(huì)隨著項(xiàng)目的進(jìn)行逐漸升高,然后在后期迅速的回落,對(duì)于程序員和測(cè)試來(lái)說(shuō),主要的工作內(nèi)容在項(xiàng)目的執(zhí)行階段,也就是中期到中后期。
我們?cè)谟?jì)劃項(xiàng)目的時(shí)候,自然是不會(huì)計(jì)劃到加班這樣的事情的,一般都會(huì)按照正常的8小時(shí)/天的任務(wù)來(lái)進(jìn)行排期。但是,項(xiàng)目總是有他的特殊性,例如:客戶要求某個(gè)時(shí)間節(jié)點(diǎn)必須交付,那么工期縮短了,對(duì)于項(xiàng)目負(fù)責(zé)人來(lái)說(shuō)只有三個(gè)選擇:要么降低質(zhì)量標(biāo)準(zhǔn),要么減少需求,要么加班。
但是,質(zhì)量是底線,雖然可以降低,但是總有一根紅線不能觸碰,需求是客戶或者產(chǎn)品經(jīng)理說(shuō)了算,并不是說(shuō)砍掉就能砍掉的。所以,大部分時(shí)候,經(jīng)過(guò)各種拉鋸戰(zhàn)后,還是只有加班。
對(duì)于前端和后端程序員來(lái)說(shuō),研發(fā)的中后期是加班比較多的時(shí)候。因?yàn)樵谇捌跁r(shí),產(chǎn)品經(jīng)理自以為用戶的需求已經(jīng)挖掘得比較透徹了,研發(fā)基本就是按部就班的照著既定的計(jì)劃研發(fā),即使出現(xiàn)需求的變化,由于研發(fā)才剛剛開始,所以需求變化的代價(jià)很少,所以加班時(shí)候不多。到了中期和中后期,需求變化的代價(jià)越來(lái)越大,研發(fā)過(guò)程中可能發(fā)現(xiàn)需求中的一些不合理之處,從而產(chǎn)生了大量的溝通成本和調(diào)整成本,這時(shí)加班就開始越來(lái)越多,這個(gè)過(guò)程會(huì)一直延續(xù)到測(cè)試階段。
而對(duì)于測(cè)試來(lái)說(shuō),只要研發(fā)開始大量加班了,就說(shuō)明產(chǎn)品的質(zhì)量可能有風(fēng)險(xiǎn),那么測(cè)試階段就沒(méi)有好過(guò)的。如果情況良好,在測(cè)試階段的中期,這個(gè)加班情況會(huì)有所緩解,但是很多時(shí)候,這種加班情況會(huì)一直持續(xù)到上線前。
所以,沒(méi)有熬過(guò)夜的程序員一定不是一個(gè)好測(cè)試。
當(dāng)然,加班對(duì)于程序員來(lái)說(shuō)其實(shí)也是一種歷練。曾經(jīng)我也是比較反對(duì)加班的那一類人,能早點(diǎn)溜就早點(diǎn)溜。也有很多人說(shuō),加班時(shí)候的質(zhì)量是得不到保證的,加班時(shí)候的效率很差等等,我承認(rèn),加班做出來(lái)的項(xiàng)目質(zhì)量一定不高,但是個(gè)人覺(jué)得不是因?yàn)榧影啾旧韺?dǎo)致的,而是項(xiàng)目緊張到必須趕工的時(shí)候,那么一定不可能像不加班時(shí)那么的周全,可能單元測(cè)試能省就省,設(shè)計(jì)文檔能省就省,自然就質(zhì)量差了,這并不是加班的人的原因。
我還記得曾經(jīng)我在做一個(gè)項(xiàng)目的時(shí)候,涉及到一個(gè)計(jì)費(fèi)的模塊,非常的復(fù)雜。有什么基礎(chǔ)套餐,組合套餐,增值服務(wù),還有優(yōu)惠券、退費(fèi)、取消套餐、換套餐等等,還需要計(jì)算銷售提成這些。財(cái)務(wù)的要求就是,一分錢都不能錯(cuò),而當(dāng)時(shí)套餐有非常復(fù)雜的計(jì)費(fèi)限制,就是一部分套餐在換套餐的時(shí)候可以把余額退出來(lái)抵扣新套餐的費(fèi)用,一部分不行。而退出來(lái)的這個(gè)費(fèi)用需要按天來(lái)計(jì)費(fèi),那么每個(gè)月的天數(shù)是不同的,如果這個(gè)用戶剛好是在1月31日定的套餐,2月27日退是一個(gè)價(jià)格,3月30日退又是另一個(gè)價(jià)格,算法十分復(fù)雜。(當(dāng)時(shí)的項(xiàng)目經(jīng)理甚至提出,穆斯林的客戶能否按照穆斯林的日歷來(lái)計(jì)費(fèi))
為了這個(gè)計(jì)費(fèi)模塊,我和兩個(gè)小伙伴連續(xù)熬了幾個(gè)夜晚去畫圖、分解,最終是把這個(gè)模塊給做出來(lái)了,并且分毫不差。而其中工作效率最高的時(shí)候就是我們凌晨2-3點(diǎn)的時(shí)候,全公司就我們幾個(gè)人,在那里肆無(wú)忌憚的爭(zhēng)吵、反駁、說(shuō)出自己的思路。當(dāng)然,我們得到的也是很多的,至少未來(lái)我們?cè)俅蚊鎸?duì)計(jì)費(fèi)的類似模塊時(shí),我們并其他人更有經(jīng)驗(yàn),我們能夠避免很多坑,這些都是我們的財(cái)富。
所以,對(duì)于那些不愿意熬夜的,想著按時(shí)下班,朝九晚六的程序員們,說(shuō)真的,這個(gè)行業(yè)不適合你。