您的位置:軟件測試 > 軟件項目管理 > 進(jìn)度管理 >
成功的軟件管理方式:指導(dǎo)與平衡
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/5/22 13:37:00 ] 推薦標(biāo)簽:

本文介紹了管理一個軟件產(chǎn)品與管理一部電影作品的若干對比,然后討論了從成功項目中獲得的四種軟件管理方法。

使用傳統(tǒng)的工程管理原則管理軟件項目是很難取得成功的。把軟件管理的挑戰(zhàn)與制作一部動作大片進(jìn)行比較,我們會發(fā)現(xiàn)很多有趣的觀點。兩者的管理問題都集中在在受經(jīng)濟(jì)因素制約的環(huán)境下進(jìn)行復(fù)雜的集成知識產(chǎn)權(quán)的開發(fā)。本文介紹了管理一個軟件產(chǎn)品與管理一部電影作品的一些對比,然后詳細(xì)介紹了從成功項目中獲得的軟件管理的四種方法。主要的推薦做法是使用指導(dǎo)性的領(lǐng)導(dǎo)方式,而不是傳統(tǒng)理念上的事無巨細(xì)的計劃-軌跡領(lǐng)導(dǎo)方式。

在我的職業(yè)生涯中,我有機會觀察并評估了上百個軟件項目,它們廣泛覆蓋了各種工業(yè)和應(yīng)用。一個顯著的成敗決定因素是在項目從初始到被用戶接受的過程中所采用的項目管理方式。

根據(jù)我的經(jīng)驗,如果軟件項目管理者使用更像是管理一部電影作品的方式,而不是管理一個工程產(chǎn)品的方式,那么他們似乎更容易成功。“胡說!”有人可能反對。“軟件項目需要更多嚴(yán)格的工程管理,而不是更少!”在你發(fā)表你的言論,向權(quán)威發(fā)出挑戰(zhàn)以前,請考慮以下觀察資料:

大多數(shù)軟件權(quán)威不需要物理定律或者物質(zhì)屬性來制約他們的問題及其解決方案。他們只是受到人類想象力、經(jīng)濟(jì)因素的制約,以及當(dāng)他們獲得一些可執(zhí)行程序時,他們受到運行平臺性能的制約。一些嵌入式軟件的開發(fā)者顯然是例外者。
在一個軟件項目中,你幾乎可以在任何時間改變?nèi)魏螙|西:計劃、人、預(yù)算里程碑、需求、設(shè)計、測試等等。需求——可能是我們的工業(yè)中被嚴(yán)重誤用的詞——很少能描述出真正需要的任何事情。一切幾乎都是可以協(xié)商的。
軟件產(chǎn)品的評估和衡量沒有原子單元。經(jīng)濟(jì)性能(在服務(wù)行業(yè)中更為典型,評價為性價比)被證明是好的成功的度量手段。質(zhì)量的大多數(shù)方面都是很主觀的,比如可維護(hù)性、可靠性以及可用性。

這些觀察結(jié)果對電影制片人同樣適用,他們是有規(guī)律地創(chuàng)作獨特的、復(fù)雜的、只受視角和人類創(chuàng)造性制約的知識產(chǎn)權(quán)作品。我假設(shè)電影作品的經(jīng)濟(jì)性能與軟件項目的經(jīng)濟(jì)性能是相似的:從2000年起,只有三分之一作品的發(fā)行帶有時間或經(jīng)濟(jì)上的可預(yù)言性。1我知道這些觀察在使用工程理念來制造飛機、橋梁、心臟移植管、核反應(yīng)堆、摩天大樓以及衛(wèi)星的項目管理者看來是不入流的(除非這些工程項目包括重要的軟件內(nèi)容或是空前的,的系統(tǒng))。

好的,有人可能會說,軟件只是一個未成熟的工程分支,在我的職業(yè)生涯中,大約每五年軟件項目的底層技術(shù)要翻新一次。這些翻新包括語言、結(jié)構(gòu)模式、應(yīng)用、用戶界面、計算平臺、網(wǎng)絡(luò)、環(huán)境、過程以及工具。這種快速持續(xù)的進(jìn)化將要放慢了嗎?目前還看不出這種跡象。人類想象力和市場作用仍是非常強大的。

像電影工業(yè),我們需要有資格的建筑師(導(dǎo)演)、分析家(編劇、設(shè)計師)、軟件工程師(產(chǎn)品工作人員、編輯、特技制造者、演員替身)以及項目管理者(制片人)。還是和電影工業(yè)一樣,我們必須使軟件成為可執(zhí)行形式(弄到膠片上)來切實進(jìn)行進(jìn)度和質(zhì)量的評估。在我們發(fā)現(xiàn)什么可用什么不可用的過程中會產(chǎn)生大量的碎片和重復(fù)工作,然后我們把很多人的貢獻(xiàn)集成為一個緊密集成的知識產(chǎn)權(quán)作品。

我所認(rèn)識到的是,軟件管理應(yīng)被更精確地描述為軟件經(jīng)濟(jì)的一個分支,而不是軟件工程。軟件管理者每天的決定(正如電影制作人每天的決定),主要是由價值判斷、成本權(quán)衡、人為因素、宏觀經(jīng)濟(jì)趨勢、技術(shù)趨勢、市場強度以及時機控制的。軟件項目很少注重于精確的數(shù)學(xué)、物質(zhì)屬性、物理定律或是其他已經(jīng)建立的成熟的工程原則。

我希望這一對軟件-電影的對比刺激了你的神經(jīng),使你想繼續(xù)讀下去。如果想了解更詳細(xì)的對比請參考 Paul Graham 的論文。2下文著重介紹的是一些從軟件項目中獲得的斷言,這些項目包括了我在25年多的時間里在軟件項目管理領(lǐng)域跟從、領(lǐng)導(dǎo)、實踐、指導(dǎo)的少數(shù)成功軟件項目和大量不成功軟件項目。

迭代的方法

造成軟件集中型項目的低成功率的原因之一是傳統(tǒng)的項目管理方法不鼓勵進(jìn)行指導(dǎo)和調(diào)整以緩解以下問題的不確定性:

問題域(用戶究竟想要或者需要什么)
解決域(何種結(jié)構(gòu)和技術(shù)的組合是適用的)
計劃域(成本和時間制約、團(tuán)隊組成和生產(chǎn)力、涉眾交流、遞增結(jié)果序列等等)

我們需要一種更為動態(tài)和具有適應(yīng)性的方法來思考軟件進(jìn)程和質(zhì)量管理的問題,這種方法應(yīng)當(dāng)適應(yīng)成功項目的模式。當(dāng)今的現(xiàn)代軟件管理方法3-5 通常被稱為迭代 開發(fā)方法。在現(xiàn)今充滿不確定性的軟件應(yīng)用程序、產(chǎn)品和服務(wù)開發(fā)的雷區(qū)中,迭代方法指導(dǎo)了軟件項目,而不是遵循一個精確的、長期的計劃。按時間和預(yù)算計劃成功發(fā)布軟件產(chǎn)品需要一種發(fā)現(xiàn)、生產(chǎn)、評估和指導(dǎo)性領(lǐng)導(dǎo)方式的進(jìn)步的混合。“指導(dǎo)”一詞意味著積極的管理參與,經(jīng)常的過程矯正以產(chǎn)生更好的結(jié)果。所有涉眾應(yīng)該通力合作,集中實現(xiàn)不斷前進(jìn)的目標(biāo)。

作為一個被廣泛接受的現(xiàn)代迭代開發(fā)過程,IBM Rational Unified Process,6 為一個更為平衡的發(fā)展提供了一個框架,這一發(fā)展是鼓勵對不確定性和風(fēng)險進(jìn)行管理的。它的生命周期包括四個階段,每個階段都有可演示的結(jié)果:

1.起始:遠(yuǎn)景和商業(yè)案例的定義和原型設(shè)計
2.細(xì)化:對架構(gòu)基線進(jìn)行集成、論證和評估
3.構(gòu)建:對有用的增量進(jìn)行開發(fā)、論證和評估
4.產(chǎn)品化:可用性評估、終產(chǎn)品以及發(fā)行

階段的名稱表現(xiàn)了項目的狀態(tài),而不是從需求到設(shè)計到編碼到測試到發(fā)行的基于順序性活動的項目進(jìn)展。

我們把這一迭代管理方式稱為基于結(jié)果的,而不是基于活動的。在軟件世界中,真正的結(jié)果是可執(zhí)行程序。其他的任何東西(需求文檔、用例模型、設(shè)計模型、測試用例、計劃、過程、文檔、檢查)都是次要的,而且只是實現(xiàn)目標(biāo)——一個可執(zhí)行的軟件程序——的手段的一部分;叵肽阕龀绦騿T的日子:當(dāng)你在建立一個模型、畫流程圖草圖、推理一個狀態(tài)機的邏輯或是寫源代碼的時候,你知道你只是在思考和集成一個抽象方案。只有當(dāng)你編譯、鏈接和執(zhí)行時方案才變得切實可行。項目管理者應(yīng)該有同樣的感覺。當(dāng)你評估一個計劃、模型、文檔或一些其他不可執(zhí)行的表現(xiàn)物的美好和出色之處時,你只是在推測項目質(zhì)量和進(jìn)度。電影制作人對劇本、情節(jié)串連板、背景設(shè)置以及服裝設(shè)計的感覺也是如此。他們著力于影片的每一個鏡頭,使得電影成為可以判斷總體集成效果的實體。

精確度與準(zhǔn)確度

在一個成功的軟件項目中,每一個開發(fā)階段都加深了對發(fā)展計劃、規(guī)格說明和完整解決方案的理解,因為每一個階段都延伸了可執(zhí)行序列和團(tuán)隊對競爭目標(biāo)的認(rèn)識。在生命周期中的任意一點,次要工件的精確性應(yīng)與這種理解相平衡,在詳細(xì)程度上保持一致,相互之間保持一定程度的可追蹤性。

精確度與準(zhǔn)確度之間的區(qū)別(在軟件管理的上下文中)并不是它們看起來那樣小。軟件管理充滿灰色的區(qū)域、情景依賴性以及不明確的折衷。對的軟件管理者來說,理解精確性與準(zhǔn)確性之間的區(qū)別是一種基本技能,因為他們必須準(zhǔn)確地對投資、風(fēng)險以及變化帶來的影響進(jìn)行預(yù)測。未被證實的精確度——在需求或是計劃內(nèi)的——實際上是造成阻礙成功的潛在而微妙的因素。大多數(shù)時候,早期的精確性是不誠實的,造成了有比實際上更多的進(jìn)展和更高的質(zhì)量的假象。不幸的是,很多項目發(fā)起者和涉眾要求這種早期精確性和詳細(xì)性,因為這給了他們對已經(jīng)取得的進(jìn)展的(虛假的)安慰。

我在軟件工業(yè)中所見的常見的失敗模式之一是開發(fā)有五位數(shù)精度的規(guī)格說明,而涉眾其實對問題、方案或者計劃只有一位數(shù)精度的理解。延長建立一個精確的需求理解或詳細(xì)的計劃的時間實際上耽誤了對架構(gòu)上更重要的問題的理解。你曾經(jīng)做過、修改過、痛苦地回顧過多少厚度嚇人的需求文檔或是詳細(xì)的管理計劃呢?而幾個月后當(dāng)項目取得了有實際意義的可演示的進(jìn)展,加快了涉眾對實際的權(quán)衡的理解時,你又要全部重新檢查這些文檔和計劃了。這種普遍現(xiàn)象在我們的行業(yè)里被稱為刨光廢物。

上一頁1234下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd