開(kāi)發(fā)者生產(chǎn)力/代碼質(zhì)量與經(jīng)驗(yàn)無(wú)關(guān)?!
引用
| 你知道嗎,我們從來(lái)沒(méi)有發(fā)現(xiàn)一個(gè)開(kāi)發(fā)人員多年的經(jīng)驗(yàn)與他的代碼質(zhì)量或生產(chǎn)力之間有直接關(guān)系。 |
關(guān)于開(kāi)發(fā)人員經(jīng)驗(yàn)與生產(chǎn)力關(guān)系的研究
最初對(duì)于個(gè)人編程生產(chǎn)力的研究是在1968年進(jìn)行的,在這之后的30年間,其他研究人員至少做過(guò)8次同樣的研究,結(jié)果并沒(méi)有什么不同。他們?cè)谘芯苛艘恍┢骄?年開(kāi)發(fā)經(jīng)驗(yàn)的專業(yè)開(kāi)發(fā)人員后統(tǒng)計(jì)出:
- 開(kāi)始編碼時(shí)間比率約20 : 1
- 調(diào)試時(shí)間比率約25 : 1
- 程序執(zhí)行速度比率約10 : 1
- 程序大小比率為5:1
他們發(fā)現(xiàn)沒(méi)有一個(gè)開(kāi)發(fā)人員的多年經(jīng)驗(yàn)和代碼質(zhì)量或生產(chǎn)力之間存在直接聯(lián)系。這說(shuō)明經(jīng)驗(yàn)和生產(chǎn)力(即生成代碼的能力)之間不存在相關(guān)性,也說(shuō)明經(jīng)驗(yàn)和軟件質(zhì)量(即***限度地減少缺陷)之間沒(méi)有相關(guān)性。

上圖展示了兩個(gè)開(kāi)發(fā)人員群體——差的(生產(chǎn)效率、產(chǎn)品質(zhì)量均低)和優(yōu)秀的。研究發(fā)現(xiàn),每個(gè)群體中都存在開(kāi)發(fā)經(jīng)驗(yàn)豐富和貧乏的開(kāi)發(fā)人員。該研究只是說(shuō)明多年的經(jīng)驗(yàn)并不重要,并沒(méi)有說(shuō)明培訓(xùn)指導(dǎo)是否能幫助開(kāi)發(fā)人員提升。
在不考慮合法性的前提下,這意味公司可以辭退掉擁有多年經(jīng)驗(yàn)、工資高但產(chǎn)出低的開(kāi)發(fā)者,并雇用一些沒(méi)幾年經(jīng)驗(yàn)但高效高質(zhì)的開(kāi)發(fā)者。
盡管研究存在缺陷,但是仍顯示出好的開(kāi)發(fā)人員和差的開(kāi)發(fā)人員之間存在數(shù)量級(jí)的差別,而這種差別與經(jīng)驗(yàn)無(wú)關(guān)。關(guān)于“開(kāi)發(fā)人員之間存在數(shù)量級(jí)的差異”已經(jīng)被其他研究所證實(shí)。(見(jiàn)英文原文***的參考文獻(xiàn))
技術(shù)越來(lái)越先進(jìn),而開(kāi)發(fā)者不是
你可能會(huì)認(rèn)為與過(guò)去相比,現(xiàn)在我們對(duì)軟件開(kāi)發(fā)了解得更多,畢竟現(xiàn)在:
- 我們有更好的計(jì)算機(jī)語(yǔ)言
- 我們有更先進(jìn)的技術(shù)
- 我們有對(duì)高效開(kāi)發(fā)模式有更好的研究
- 我們?cè)诖髮W(xué)中有正規(guī)的軟件專業(yè)
上面這些都是事實(shí),但現(xiàn)在開(kāi)發(fā)人員之間仍然存在較大的差異。這意味著有一些X因素驅(qū)動(dòng)著產(chǎn)品開(kāi)發(fā),X因素可能是開(kāi)發(fā)人員規(guī)劃并作出正確決定的能力。
| 壞消息是,如果你不是一個(gè)高效、高質(zhì)量的開(kāi)發(fā)者,那么僅僅是多年的經(jīng)驗(yàn)可能不會(huì)令你變得更好。 |
學(xué)會(huì)決策
開(kāi)發(fā)人員每一天都面臨著“如何構(gòu)建自己的代碼”的決策。比如如何:
- 規(guī)劃代碼路徑
- 將函數(shù)封裝成類(lèi)
- 將類(lèi)封裝成包/模塊
開(kāi)發(fā)人員面臨的編碼決策,其中有許多是復(fù)雜的,好的開(kāi)發(fā)人員會(huì)安排他們的工作,并做出正確的決定。差的開(kāi)發(fā)人員只是“跳過(guò)”,他們認(rèn)為,他們總是可以重寫(xiě)代碼或在做出決定后再?gòu)浹a(bǔ)錯(cuò)誤。差的開(kāi)發(fā)人員甚至沒(méi)有意識(shí)到他們的決策過(guò)程是糟糕的,他們完全可以通過(guò)規(guī)劃工作來(lái)變得更好。
解決方案:可能是PSP和TSP
Watts Humphrey試圖通過(guò)針對(duì)個(gè)人的PSP(Personal Software Process,個(gè)體軟件過(guò)程)和針對(duì)團(tuán)隊(duì)的TSP(Team Software Process,團(tuán)隊(duì)軟件過(guò)程)來(lái)讓開(kāi)發(fā)人員了解評(píng)估、規(guī)劃開(kāi)發(fā)和決策的價(jià)值。但只有很少的組織接受他。Capers Jones已經(jīng)分析了超過(guò)18,000個(gè)項(xiàng)目,發(fā)現(xiàn):
- PSP可以提高生產(chǎn)力21.2%,提高質(zhì)量31.2%
- TSP可以提高工作效率20.9%,提高質(zhì)量30.9%
這些研究,對(duì)創(chuàng)建開(kāi)發(fā)團(tuán)隊(duì)有一定的幫助。比起擁有平庸開(kāi)發(fā)人員的大型團(tuán)隊(duì)來(lái)說(shuō),擁有高效開(kāi)發(fā)人員的小型團(tuán)隊(duì)更為合理,因?yàn)樗麄冎廊绾我?guī)劃并作出正確的決定。
| PSP和TSP建議:改造一個(gè)差的開(kāi)發(fā)人員的***的方式是教他們?nèi)绾巫鞒龈玫臎Q策。 |
要知道,隨著時(shí)間的推移,知識(shí)技能、編寫(xiě)高效高質(zhì)代碼的能力是會(huì)提升的。
結(jié)論
本質(zhì)上,我們都知道這一點(diǎn),但只是很難做到。如果公司中的高級(jí)管理人員知道這些研究,那么高效高質(zhì)的開(kāi)發(fā)者會(huì)得到更多的報(bào)酬,差的開(kāi)發(fā)者可能就需要另謀高就了。這樣做不僅降低了構(gòu)建軟件的成本,同時(shí)也提高了軟件質(zhì)量。
不幸的是,我們一直都在為各種編程方法、語(yǔ)言和技術(shù)辯論、斗爭(zhēng)不已。大多數(shù)組織中的開(kāi)發(fā)人員的編碼方式,正在逐步使“巫毒科學(xué)(VoodooScience)”看起來(lái)像“科學(xué)”。(譯者注:指一些不正統(tǒng)的編碼方式逐漸成為主流)。























