軟件開發(fā)基本原則(二)—— 典型錯誤
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
大多數(shù)典型錯誤其表面都具有誘惑性,給人們一種誘人的前景,但通常卻不能產(chǎn)生期望的結(jié)果。 “想挽救進度已經(jīng)落后的項目嗎?---- 給項目補充更多人員!” 下面分別按照人員、過程、產(chǎn)品和技術(shù)四個維度列出36個典型錯誤。 人 員
對人員不夠關(guān)心和重視;過度的進度壓力;缺乏激勵;過分夸張的激勵等。
人員能力欠佳,工作效率低,甚至做多錯多。
不對有問題的人員采取措施是項目組成員對領(lǐng)導(dǎo)最常見的抱怨。
強調(diào)個人英雄主義會導(dǎo)致發(fā)生額外的風(fēng)險,也會削弱在軟件開發(fā)過程中多個角色的合作。
盲目地在項目后期加入人手等于火上澆油。
擁有安靜、隱蔽辦公環(huán)境的人員比工作在嘈雜、擁擠環(huán)境中的人員往往會有更好的工作業(yè)績表現(xiàn)。
主要原因是缺乏溝通。這種摩擦耗費時間,它會轉(zhuǎn)移客戶和開發(fā)人員雙方對項目工作的注意力。
過高的期望值和主觀的不切實際的設(shè)想。是導(dǎo)致開發(fā)人員和客戶或項目經(jīng)理之間的摩擦常見原因之一。
軟件開發(fā)項目的許都方面都需要高層的支持,包括實際的計劃、變更控制以及新型開發(fā)方法的采用等。缺乏有效的高層支持事實上注定了項目的失敗。
軟件開發(fā)中所有主要人員必須齊心協(xié)力專注于項目,包括高層支持者、項目領(lǐng)導(dǎo)、項目成員、市場人員、最終用戶、客戶和任何項目介入者。
沒有用戶早期介入的項目充滿需求誤解的風(fēng)險,易受項目后期功能蔓延的威脅。
“政治家”型項目強調(diào)“管理至上”,主要精力集中在他們與經(jīng)理的關(guān)系上。將政治凌駕于結(jié)果之上對軟件項目會造成極大傷害。
閉上眼睛毫無理由地希望某事將像想象那樣運作。很多軟件開發(fā)問題都是由于充滿想象造成的。 想象示例:
過 程
定制過于樂觀的項目計劃相當(dāng)于自己為項目失敗畫出了底線,導(dǎo)致縮短分析、設(shè)計等關(guān)鍵性前期開發(fā)活動;同時也向開發(fā)人員施加了額外壓力,會長期對開發(fā)人員的自信心和生產(chǎn)率造成巨大傷害。
如果你不主動管理風(fēng)險,風(fēng)險隨時會來找你,打亂你的開發(fā)計劃。
如果不對承包商加以認(rèn)真管理,交付可能延期,并且質(zhì)量難以保證。
沒有計劃的項目就像飄蕩在海洋中的小船,沒人知道會飄到哪里。
很多項目組定制了計劃,但遇到了麻煩時就放棄計劃。項目失敗的原因不是在于放棄計劃本身,而是不能及時修訂計劃制定替代計劃,并一頭栽進編碼和問題處理中。
由于花在審批、預(yù)算等前期工作的時間過長,或需求無限循環(huán)等原因,導(dǎo)致壓縮開發(fā)計劃。項目前期節(jié)省幾周或幾個月時間比將開發(fā)計劃壓縮同樣時間來得更容易、更廉價,風(fēng)險也更少。
研究數(shù)據(jù): 前期被跳過的活動或工作通常在后期會以10倍到100倍的代價來完成。如果一項工作在項目初期需要5小時完成,那么在項目后期你至少需要50小時才能完成它。 (Fagan 1976,Boehm and Papaccio 1988)
前期活動不符合要求的一個特殊情況就是設(shè)計低劣。高壓環(huán)境導(dǎo)致設(shè)計缺乏周密思考往往導(dǎo)致設(shè)計低劣。
研究數(shù)據(jù): 項目前期砍掉1天的質(zhì)量保證活動,到項目后期就需要3到10天的處理代價。(Jones 1994)
缺少管理控制點就難以對項目的階段和狀態(tài)進行跟蹤,因此不能知道項目是否按正常軌道前進。
在構(gòu)建未完全鎖定時,進行過早的集成或額外的集成不利于產(chǎn)品,它僅僅是在浪費時間,延長進度。
訓(xùn)、公司和部門會議,技術(shù)評審會議等活動在項目估算時通常被遺漏。
當(dāng)進度落后時不重新檢查任務(wù)和調(diào)整計劃,而是簡單地決定把進度趕上來。 另一種情況是,當(dāng)產(chǎn)品出現(xiàn)變更卻沒有做相應(yīng)的計劃調(diào)整。
沒有足夠的需求基礎(chǔ)和清晰的架構(gòu)設(shè)計而進行“邊編碼邊修改”造成太多重復(fù)工作和返工,這樣的做法使項目大多以失敗告終。
產(chǎn) 品
項目的產(chǎn)品要求要求比實際需求多得多的產(chǎn)品特性或復(fù)雜功能,卻又不給進度計劃分配足夠的時間。
在整個開發(fā)過程中,項目平均會有25%的需求變更,對軟件計劃至少有25%的影響。如果任由客戶不斷提出新需求,項目就會一直都做不完。
開發(fā)人員著迷于新技術(shù),有時渴望在自己的產(chǎn)品中使用這些技術(shù),而不管那些技術(shù)是否適合或是否會對系統(tǒng)整體造成破壞。
管理者批準(zhǔn)進度落后的項目順延,但同時又給這個項目加入新任務(wù)。
軟件開發(fā)進度是完全有理由可以預(yù)測的,而軟件研究進度甚至理論上都是不可預(yù)知的,不能采用像軟件研究一樣的工作方式引導(dǎo)項目開發(fā)。
技 術(shù)
過于相信某些技術(shù)宣傳(某種開發(fā)過程、某種程序設(shè)計方法、某種開發(fā)語言),缺少在特定環(huán)境下使用這些工具的必要信息。當(dāng)團隊寄望利用他們來解決進度問題時,不可避免會失敗的。
無論采用多少新工具或方法,以及這些工具或方法有多好,他們很少能夠大幅度提高生產(chǎn)率。軟件開發(fā)由多個任務(wù)組成,特定的工具或方法只會可能提高特定任務(wù)的生產(chǎn)效率。同時,它們所帶來的效率常常被學(xué)習(xí)它們所花費的時間抵消了。
在項目中間更換工具時,伴隨使用新工具而帶來的人員學(xué)習(xí)和掌握的過程、重復(fù)的工作、不可避免的錯誤等會徹底抵消它所帶來的益處。
缺乏自動的源代碼控制容易造成版本沖突、歷時版本丟失、更新丟失等一系列問題,并浪費大量的時間處理這些問題。 該文章在 2012/4/9 10:31:56 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |