從一個(gè)笑話看軟件開(kāi)發(fā)管理
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
有一個(gè)笑話是這樣的:
1. 程序員寫(xiě)出自認(rèn)為沒(méi)有bug的代碼。 2. 軟件測(cè)試,發(fā)現(xiàn)了20個(gè)bug。 3. 程序員修改了10個(gè)bug,并告訴測(cè)試組另外10個(gè)不是bug。 4. 測(cè)試組發(fā)現(xiàn)其中5個(gè)改動(dòng)根本無(wú)法工作,同時(shí)又發(fā)現(xiàn)了15個(gè)新bug。 5. 重復(fù)3次步驟3和步驟4。 6. 鑒于市場(chǎng)方面的壓力,為了配合當(dāng)初制定的過(guò)分樂(lè)觀的發(fā)布時(shí)間表,產(chǎn)品終于上市了。 7. 用戶(hù)發(fā)現(xiàn)了137個(gè)新bug。 8. 已經(jīng)領(lǐng)了項(xiàng)目獎(jiǎng)金的程序員不知跑到哪里去了。 9. 新組建的項(xiàng)目組修正了差不多全部137個(gè)bug,但又發(fā)現(xiàn)了456個(gè)新bug。 10. 最初那個(gè)程序員從斐濟(jì)給飽受拖欠工資之苦的測(cè)試組寄來(lái)了一張明信片。整個(gè)測(cè)試組集體辭職。 11. 公司被競(jìng)爭(zhēng)對(duì)手惡意收購(gòu)。收購(gòu)時(shí),軟件的最終版本包含783個(gè)bug。 12. 新ceo走馬上任。公司雇了一名新程序員重寫(xiě)該軟件。 13. 程序員寫(xiě)出自認(rèn)為沒(méi)有bug的代碼。 要我說(shuō),如果真有這樣的公司,不倒閉對(duì)不起人民。 這個(gè)笑話從程序員開(kāi)始,到程序員結(jié)束,從頭到尾都在說(shuō)程序員的不是。但是我要說(shuō)的是,這完全是管理者的失敗,從整個(gè)過(guò)程中,看不到任何管理工作。這種管理者不但無(wú)知無(wú)能,還很無(wú)恥——將自己的失敗責(zé)任推給程序員。 1. 程序員憑什么證明他的代碼沒(méi)有bug?有test case嗎?有code review嗎?這個(gè)環(huán)節(jié)管理缺失。 2. 測(cè)試發(fā)現(xiàn)bug有進(jìn)行bug管理嗎?有跟蹤嗎?這個(gè)環(huán)節(jié)管理缺失。 3. 憑什么證明程序員已經(jīng)把那10個(gè)bug修改好了?另10個(gè)又為什么不是bgu?bug的評(píng)價(jià)標(biāo)準(zhǔn)難道是程序員說(shuō)了算?這個(gè)環(huán)節(jié)管理缺失。 4. 5個(gè)不能工作的bug修改問(wèn)題有沒(méi)有追究責(zé)任?增加新bug是修改過(guò)程中不可避免的事情,但是如果有有效的單元測(cè)試機(jī)制,可以大大減少這種情況。這個(gè)環(huán)節(jié)管理缺失。 5. 迭代是正常的,但是問(wèn)題處理于發(fā)散而不是收斂發(fā)展,可見(jiàn)沒(méi)有有效的管理調(diào)控。這個(gè)環(huán)節(jié)管理缺失。 6. 過(guò)于樂(lè)觀的時(shí)間表和不可能達(dá)到的最后期限,都表現(xiàn)出管理者的無(wú)知和無(wú)能。而在這樣的情況下強(qiáng)行推出產(chǎn)品,那就是無(wú)知者無(wú)畏了。 7. 這是對(duì)用戶(hù)的不負(fù)責(zé)任,管理者要負(fù)最大的責(zé)任。 8. 這樣的情況還能發(fā)項(xiàng)目獎(jiǎng)金,只能說(shuō)管理者不是一般的愚蠢。 9. 管理工作沒(méi)有任何的改進(jìn),問(wèn)題仍然處于發(fā)散迭代狀態(tài)。管理工作依然沒(méi)有到位。 10. 拖欠測(cè)試部門(mén)工資體現(xiàn)出管理者對(duì)質(zhì)量管理工作的忽視以及對(duì)人力資源管理方面一無(wú)所知。 11. 送被收購(gòu)者兩個(gè)字:活該。送收購(gòu)者兩個(gè)字:瞎眼。 12. 可見(jiàn)新管理者與原管理者半斤八兩,都沒(méi)有認(rèn)識(shí)到問(wèn)題的根本所在。不過(guò)也只有這樣的管理者才會(huì)作出收購(gòu)這種公司的決策。 13. 歷史的重演是必然的。 一個(gè)正常的企業(yè)或是項(xiàng)目,其運(yùn)作必須應(yīng)該是循環(huán)向上進(jìn)行的。而保障這種運(yùn)行的工作就是管理。而管理工作的主要內(nèi)容就是控制,包括控制循環(huán)的節(jié)奏——不能太快也不能太慢,控制發(fā)展的方向——只能向上不能向下,控制運(yùn)作的穩(wěn)定——不能大起大落或時(shí)聚時(shí)散等。 而這一切,在這個(gè)例子中都看不到。 在這個(gè)笑話的例子中,一切都是以開(kāi)發(fā)工作在驅(qū)動(dòng),這首先就是一個(gè)方向性錯(cuò)誤,產(chǎn)品是為用戶(hù)服務(wù)的,當(dāng)然應(yīng)該是以用戶(hù)和市場(chǎng)作為驅(qū)動(dòng),并且結(jié)合自身的能力最終 確定工作的重點(diǎn)。這一錯(cuò)誤折射出管理者對(duì)被管理的內(nèi)容很不了解,只好任由比較了解的程序員擺布——事實(shí)上他們除了技術(shù),并不會(huì)了解更多。 一個(gè)管理者如果對(duì)自己所管理的內(nèi)容不了解,他就不可能管理得好。 這是一件毫無(wú)疑問(wèn)的事,可是國(guó)內(nèi)的軟件業(yè)似乎總是不相信這一點(diǎn)。中國(guó)軟件業(yè)中流毒最深的謊言之一就是: 管理者只要懂管理就可以,不需要懂技術(shù)。 其實(shí)這不過(guò)是那些無(wú)知無(wú)能無(wú)恥的管理者為了騙錢(qián)而編出來(lái)的,相信這句話的人必將付出金錢(qián)的代價(jià)。 其次是質(zhì)量管理。基本的質(zhì)量管理常識(shí)告訴我們,每次循環(huán)結(jié)束前,最重的工作就是總結(jié)改進(jìn)。只有這樣才能保證循環(huán)運(yùn)作是向上發(fā)展,而不是失去控制地向下發(fā)展。也只有有效的質(zhì)量管理,才能保證迭代過(guò)程是收斂發(fā)展,并最終達(dá)到目標(biāo)。但在這個(gè)例子中,這個(gè)部分顯然是缺失的——其中雖然有測(cè)試部門(mén),但是他們的作用僅僅是質(zhì)量管理中的質(zhì)量檢測(cè)環(huán)節(jié),管理部分還是缺失的。 然后是人力資源管理。軟件開(kāi)發(fā)是一項(xiàng)勞動(dòng)密集型的工作,雖然這是腦力勞動(dòng),但同樣意味著人在因素在其中占有決定性的地位。而例子中未改完bug的程序員拿到項(xiàng)目獎(jiǎng)金,而同樣辛苦工作的測(cè)試人員卻被拖欠薪資,除了表現(xiàn)出管理者對(duì)他們的工作內(nèi)容的不了解,以及對(duì)質(zhì)量管理工作的不重視以外,還表現(xiàn)出管理者完全不會(huì)管人,這是一種謀殺團(tuán)隊(duì)的行為——謀殺一個(gè)團(tuán)隊(duì)遠(yuǎn)比建設(shè)要容易得多。 最后,這個(gè)失敗的管理者把他的經(jīng)歷編成這個(gè)笑話,讓大家看到他被程序員們害得多慘,把程序員妖魔化為一群騙子。但只要稍懂管理的人簡(jiǎn)單分析一下就可以看出來(lái),只不過(guò)是這個(gè)人的無(wú)知和無(wú)能造成了他現(xiàn)在的結(jié)果,而把責(zé)任推給別人的行為更是表現(xiàn)出他的無(wú)恥。 作為身居高位的管理者,如果連應(yīng)該承擔(dān)的責(zé)任都要推卸,他們還能勝任什么事情呢。 該文章在 2010/7/25 2:13:59 編輯過(guò) |
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)... |