• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    軟件外包項目中的進度管理實例

    發布: 2008-1-22 09:37 | 作者: 韓春生 | 來源: 不詳 | 查看: 43次 | 進入軟件測試論壇討論

    領測軟件測試網 案例

      A公司是一家美資軟件公司在華辦事機構,其主要的目標是開拓中國市場、服務中國客戶,做一些本地化和客戶化的工作。它的主要軟件產品是由總部在硅谷的軟件開發基地完成,然后由世界各地的分公司或辦事機構進行客戶化定制、二次開發和系統維護。這些工作除了日常銷售和系統核心維護之外,都是外包給本地的軟件公司來做。東方公司是A公司在中國的合作伙伴,主要負責軟件的本地化和測試工作。

      Bob先生是A公司中國地區的負責人,Henry則是剛剛加入A公司的負責此外包項目的項目經理。東方公司是由William負責開發和管理工作,William本身是技術人員,并沒有項目管理的經驗。

      當Henry接手這項工作后,發現東方公司的項目開發成本非常高,每人每天130美金,但客戶的滿意度較差,并且每次開發進度都要拖后,交付使用的版本也不盡如人意。而且,東方公司和A公司硅谷開發總部缺乏必要的溝通,只能把問題反饋給Henry,由Henry再反饋給總部。但由于Henry本身并不熟悉這個軟件的開發工作,也造成了很多不必要的麻煩。

      為此,Bob希望Henry和William用項目管理的方法對該項目進行管理和改進。隨后,Henry和William召開了一系列的會議,提出了新的做法。

      首先,他們制定了詳細的項目計劃和進度計劃;其次,成立了單獨的測試小組,將軟件的開發和測試分開;并且,在硅谷和東方公司之間建立了一個新的溝通渠道,一些軟件問題可以與總部直接溝通;同時,還采用了里程碑管理。

      六個月后,軟件交付使用。但是客戶對這個版本還是不滿意,認為還有很多問題。為什么運用了項目管理的方法,這個項目還是沒有得到改善?

      Henry和William又進行了反復探討,發現主要有三個方面問題:1、軟件本地化產生的問題并不多,但A公司提供的底層軟件本身存在一些問題;2、軟件的界面也存在一些問題,這是由于測試的項目不夠詳細引起的;3、開發的周期還是太短,沒有時間完成一些項目的調試,所以新版本還是有許多的問題。

      此時,Henry向Bob提出是否采用公開招標的方式,選擇新的、實力更強的合作伙伴。但Bob認為,與東方公司合作時間已經很長了,如果選擇新的伙伴又需要較長的適應期,而且成本可能會更高。于是,Henry向東方公司提出一些新的管理建議。首先,他們采用大量的歷史數據進行分析,制定出更詳細的進度計劃;其次,要求東方公司提供詳細的開發文檔和測試文檔(之前William的團隊做的工作沒有任何文檔,給其他工作帶來了很多困難);第三,重新審核開發周期,對里程碑進行細化。

      又過了六個月,新的版本完成了。這一次,客戶對它的評價比前兩個版本高得多,基本上達到項目運行的要求。但客戶還是對項目進度提出了疑問,認為實時推出換代產品不需要那么長的時間。

      軟件外包是現在軟件工程中較常見的做法。在軟件外包工程中,保證質量的進度是很難控制的。對于項目經理來說需要一整套復雜的能力,比如制定計劃、確定優先順序、干系人的溝通、評價等,每一種能力都與項目的最終結果有直接或者間接的關系。

      然而,國內的項目經理大多沒有接受過正規訓練,缺乏項目管理方面的專業知識的技巧,往往只是憑借以前的少量經驗盲目去做,容易出現各種問題。尤其是在管理外包項目時,缺乏足夠的經驗和技巧,往往造成進度不斷推遲,而質量無法保證的情況。

      前文是一個比較典型的軟件外包項目的案例。在這個案例中,我們可以看到現在IT業內許多外包項目的影子。

      在該案例中,東方公司沒有專門的項目經理,是由技術人員William兼做管理。這是國內軟件公司經常會出現的問題。最初,出現進度落后的問題時,A公司的Henry與東方公司的William討論后決定采用項目管理中計劃管理等手段,其中包括里程碑管理。這是控制進度的較常見做法。

      里程碑管理的引入

      一般來說,在項目開始時,項目組成員都會對項目制定一個詳細的計劃。通常情況下,在明確的工作說明書(SOW)和WBS的基礎上制定具體的進度計劃時,需要采用一些具體的技術。像這種軟件外包項目,最成熟的技術是里程碑管理。

      里程碑一般是項目中完成階段性工作的標志。不同類型的項目,里程碑也不同。比如,在開發項目中,可以將需求的最終確認、產品移交等關鍵任務作為項目的里程碑。本案例中,Henry在接手項目后采用里程碑進行管理是很恰當的。

      不過,要注意的是,每到一個里程碑處,應及時對前段工作進行小結,并對后續工作進行計劃調整。對于一些管理效果明顯的領域,可以不必投入較多精力。而對于下一步管理過程中可能會出現問題的領域,應給予較多的關注。當然,在軟件項目里,進度的變化是較常見的事情。

      在本案例中,采用里程碑管理后仍沒有達到客戶的要求,進度依然拖后。在這里,就需要考慮另一個因素—質量與進度的關系。   質量與進度關系

      通常,項目管理的前提是保證在預算內、滿足質量的前提下,按進度完成項目。因此,可以看到,保證質量是前提。那么,如何在滿足質量的前提下管理進度呢?單純從項目管理理論知識中并沒有一種有效的方式。筆者通過實踐,推薦一種較實用的方法。具體步驟為:

      首先,盡量利用歷史數據。在本案例中,Henry應該調查之前的項目情況,將會發現可以類比的情況,事先就可以知道需要管理質量和進度的關系。

      其次,由于此項目是軟件外包項目,Henry不能完全掌握項目的資源調度情況,因此缺乏對質量的控制。這也是大多數外包工程中最令人難以掌握的地方。在這里,可以采用對進度管理計劃添加質量參數的方法,也就是通過參數調整進度和質量的關系。

      這一做法的前提是要有一定的歷史數據。比如,從歷史數據中得知,完成子項目的時間是5天,測試后有15個問題;完成同樣子項目的時間是7天,測試后有10個問題;完成同樣子項目的時間是8天,測試后有5個問題,……以此類推。

      隨著數據的不斷增多的,采用兩維坐標圖,就會得到一些離散的點(不考慮資源的差異),并形成一條曲線,見圖1?紤]項目允許的質量范圍,對照圖中的數據,找出相應的參數。根據得到的參數,確定一個合適的進度計劃。

      

      進度與成本的關系

      在本案例中,Henry發現東方公司進度一直拖后,成本卻居高不下。這里就需要了解軟件外包項目中進度與成本的關系。很多時候,此類工程大多采用固定總價合同。但由于軟件項目的修改比較多,實際上此類合同很像是固定總價加獎勵費用,其中獎勵費用一般會采用單價合同,即若干元/人天的合同,也就是說,承包商的成本是建立在人力成本估算上的。這樣,一些承包商會傾向于拖延進度(或者減少實際投入,造成質量下降)。因此,項目經理需要了解整個合同的情況,最好參與合同的制定。在此案例中,Henry試圖通過引入競爭來提高整個項目的效率,滿足項目目標,也是出于同樣的原因。尤其值得注意的是,有時候,出于競爭的需要,承包商會提供低廉的價格,此時對于進度管理更應該謹慎和完善。

      還要指出的一點是,要對學習曲線有深刻地認識。在軟件開發工程中,學習曲線(learning curve)有很大的用途。通常情況,承包商在接到同樣類型的軟件項目后,第二次會比第一次節省15%-20%的時間。項目經理最好要了解一下以前類似項目的情況。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: 軟件外包


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>