《告别失控:软件开发团队管理必读》一一第1章 程序员为何难以管理
第1章 程序員為何難以管理
告別失控:軟件開(kāi)發(fā)團(tuán)隊(duì)管理必讀
程序設(shè)計(jì)作為一種嚴(yán)肅的職業(yè)已經(jīng)存在60多年了。在美國(guó),從事程序設(shè)計(jì)工作的程序員數(shù)以百萬(wàn)計(jì),而全球這個(gè)數(shù)字更大。這些數(shù)字還不包括人數(shù)眾多的學(xué)生與編程愛(ài)好者,他們非常認(rèn)真地編寫(xiě)程序,但并不以此為謀生之業(yè)。
盡管歷史悠久,從業(yè)人數(shù)眾多,但“軟件工程師”卻因難于管理而聞名。出現(xiàn)這種現(xiàn)象有以下幾點(diǎn)原因。
第一,作為一種嚴(yán)肅的職業(yè),程序設(shè)計(jì)不同于電氣、土木工程等相關(guān)的工程職業(yè)。從 1968 年[1]開(kāi)始,人們將程序設(shè)計(jì)這門(mén)藝術(shù)稱(chēng)作軟件工程(software engineering)。但是,與新建土木、電子工程這樣的實(shí)踐相比,從零開(kāi)始編寫(xiě)新程序更像寫(xiě)小說(shuō)。新程序的起始往往類(lèi)似于一張白紙,而傳統(tǒng)工程項(xiàng)目則通常是對(duì)各種組件庫(kù),按照嚴(yán)格的合格性準(zhǔn)則進(jìn)行組裝。本書(shū)將使用程序設(shè)計(jì)(programming)一詞來(lái)稱(chēng)呼“軟件工程”,因?yàn)橄鄬?duì)于嚴(yán)格定義的工程實(shí)踐來(lái)說(shuō),程序設(shè)計(jì)更多的是一門(mén)技藝。
從零開(kāi)始編寫(xiě)新程序更像寫(xiě)小說(shuō)。
第二,任何人都可以成為程序員。不需要接受正式教育,也沒(méi)有必需的證書(shū)標(biāo)準(zhǔn)或考試[2]。只需要一份程序員的工作即可。[3]
第三,受前兩個(gè)原因的部分影響,盡管人們做過(guò)多種嘗試來(lái)規(guī)范軟件工程的流程(如CMMI [4] 1~5級(jí)),但這些嘗試的影響其實(shí)很小。多年來(lái),由大量程序員繼續(xù)開(kāi)發(fā)的許多軟件并不遵循這樣的規(guī)范框架。而且即便遵循時(shí),也只是對(duì)流程有所改進(jìn),卻無(wú)法將程序設(shè)計(jì)轉(zhuǎn)變?yōu)橐粋€(gè)純粹的工程實(shí)踐。此外,規(guī)范化的框架只解決了編寫(xiě)軟件的流程問(wèn)題,但沒(méi)有涉及程序員管理的問(wèn)題。遵循流程對(duì)管理程序員的問(wèn)題只能起到最低限度的幫助。程序設(shè)計(jì)經(jīng)理們?nèi)匀恢荒芤揽孔约旱姆椒üぞ邅?lái)對(duì)下屬程序員進(jìn)行管理。
盡管有很多書(shū)籍、文章和網(wǎng)站涉及軟件工程與軟件開(kāi)發(fā)流程管理,但關(guān)于如何有效管理程序員的例子卻十分稀少。任何一個(gè)棒球隊(duì)經(jīng)理都會(huì)告訴你,棒球隊(duì)技術(shù)細(xì)節(jié)的管理比球員個(gè)性的管理要容易得多,程序員的管理也是類(lèi)似的情況。
從計(jì)算機(jī)出現(xiàn)的早期開(kāi)始,程序員管理就是一個(gè)極具挑戰(zhàn)的難題,如下面這段由第二次世界大戰(zhàn)(WWII)期間成為世界上第一批程序員的Grace Hopper寫(xiě)于1961年的文字所述:
程序員是一個(gè)古怪的群體……他們崛起的速度很快,很快就形成了獨(dú)立的職業(yè),并且過(guò)早地感染了不愿做出改變的抗性。我曾經(jīng)聽(tīng)說(shuō)有些程序員因?yàn)榭蛻?hù)不愿意修改自己的商業(yè)系統(tǒng)而斥責(zé)客戶(hù),而有時(shí)走進(jìn)我的辦公室說(shuō)“但我一直是這么做的”的也正是這些人。出于這個(gè)原因,我在辦公室懸掛了一個(gè)逆時(shí)針走動(dòng)的時(shí)鐘[5]。
管理程序員的第一步是更好地了解他們。是什么吸引著數(shù)以百萬(wàn)計(jì)的人投身于“計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)”呢?答案有時(shí)非常簡(jiǎn)單:它是一份收入優(yōu)渥而且可以整天待在辦公室里上班的工作。然而很多程序員會(huì)告訴你,現(xiàn)實(shí)中的答案通常沒(méi)有這么簡(jiǎn)單。給出那種簡(jiǎn)單回答的人,通常最終沒(méi)有堅(jiān)持程序員這個(gè)職業(yè)。
事實(shí)上,只有特定類(lèi)型的人才能成為程序員,而只有非常特別的一類(lèi)人才能成為杰出的程序員。要想知道怎么才能成為杰出的程序員,首先需要了解程序員都做什么。
總結(jié)
以上是生活随笔為你收集整理的《告别失控:软件开发团队管理必读》一一第1章 程序员为何难以管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 浙江、江苏推动企业上云 瞄准人工智能的工
- 下一篇: 回归架构本真:从规划、思维到设计,构建坚