關於軟體外包專案管理的幾點體會(本文版權歸吳兵本人所有,謝絕轉載!謝謝!)

edward22發表於2010-12-29

        本文版權歸吳兵本人所有,謝絕轉載!謝謝!

        隨著我們公司在智慧交通領域的日益拓寬,我司將承接更多的資訊化專案,與此同時企業自身的資訊化建設也在如火如荼的建設中。由於我們公司立足於建立小而精幹的IT管理團隊,因此在IT專案中會經常存在軟體外包的情況。其實,軟體外包已成為現代軟體工程中較常見的做法,軟體外包可以使我們公司獲得專門的技術知識、降低人力資源成本、控制專案成本。目前我們公司進行得專案中就存在著軟體外包的情況,比如公司內部的資料庫系統、資訊查詢系統的軟硬體等等。在實際軟體外包專案管理中,我們對以下幾個問題得出了一些心得體會,現提議出來可供其他專案參考實踐,相信這些思路也適用於其他的外包管理。

     首先,軟體外包第一步要做的是,先要弄清楚外包軟體的詳細需求。使用者需求分析可以分為功能性需求和非功能性需求。功能性需求就是軟體的具體使用功能,而非功能性需求可分為軟體的擴張性、穩定性等效能需求。對於功能性需求,是指我們或者客戶使用這個軟體要達到什麼目的,要求這個軟體有什麼樣的功能,下面我們以電子產品為例,進行簡要說明。

     電子產品後面是幾十個供應商,前面是成千上萬的顧客。怎樣利用軟體管理錯綜複雜的供應商並且維護好電子產品系統使乘客滿意,如何做好精細到一個小小螺絲的進、銷、調、存的商品流通工作,這些都是我們需要詳細分析思考的。而且有時光是自己分析還不行,還必須與實際將要使用軟體的業務人員進行討論,這樣才能使開發出來的軟體能真正發揮作用。否則,我們可能在實際的外包中就會遇到種種教訓:

      例一:由於客戶的使用者需求非常籠統,因此外包方按一般的行業軟體進行開發,結果花上大價錢開發出來的軟體在使用時才發現根本不符合該客戶的特殊需求,最後只好束之高閣。

      例二:由於當初沒有把客戶需求完全細化,等到軟體開發出來才又要求增加功能,而臨時增加功能就意味著增加費用,實際費用可能是當初預算費用的幾倍,這樣的專案意味著失敗。

      這些都是外包專案中可能會實實在在遇到的深刻教訓,因此,強烈建議外包需求的專案組把軟體的需求分析完全分析透徹,並文件化,並作為合同的一個附件。這樣便於軟體承包方更好地分析專案,開發軟體,出現爭議也能夠更好地解決。我們在無障礙查詢機專案中採取了這種方法,取得了比較好的效果。

      其次,在軟體外包工程中,保證質量的進度是很難控制的。對於專案經理來說需要一整套複雜的能力,比如制定計劃、確定優先順序、干係人的溝通、評價等,每一種能力都與專案的最終結果有直接或者間接的關係。但是,如果我們專案經理沒有接受過正規訓練,缺乏專案管理方面的專業知識的技巧,如果只是憑藉已往的少量經驗盲目去做,容易出現各種問題。尤其是在管理外包專案時,缺乏足夠的經驗和技巧,往往造成進度不斷推遲,而質量無法保證的情況。但是,我們在實際的軟體外包專案管理中採用了計劃管理手段的里程碑管理方式,合理的控制了專案的進度,使專案按時交付給客戶。

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

里程碑一般是專案中完成階段性工作的標誌。不同型別的專案,里程碑也不同。比如,在開發專案中,可以將需求的最終確認、產品移交等關鍵任務作為專案的里程碑。不過,要注意的是,每到一個里程碑處,應及時對前段工作進行小結,並對後續工作進行計劃調整。對於一些管理效果明顯的領域,可以不必投入較多精力。而對於下一步管理過程中可能會出現問題的領域,應給予較多的關注。當然,在軟體專案裡,進度的變化是較常見的事情。因此,如何在保證專案預算內、滿足質量的前提下,按進度完成專案。根據我們的實踐,推薦一種較實用的方法——儘量利用歷史資料。我們應該盡力調查之前的專案情況,將會發現可以類比的情況,事先就可以知道需要管理質量和進度的關係。

最後,軟體外包還有一個後期維護的問題。軟體全部安裝測試通過並交付使用了,專案就全部結束了嗎?軟體發包方與軟體承包者就沒有任何關係了嗎?不是的。任何軟體都會存在維護期,而對於大型的軟體來說這個期限一般是一年。在這段時期內,如果發現軟體有BUG,也就是說使用中發現有問題,都可以要求軟體承包方重新改正。有時在使用後,覺得應該增加新的功能,也可以提出要求讓軟體承包方對程式進行升級。當然,增加新的功能一般是要付費的,所以應該儘量避免,因此,我們必須儘可能在最初分析使用者需求時就涉及到所有的功能要求,這一點在前面已經講到過,就不再重複了。還有一點要特別注意的是,在交付軟體時,一般要求軟體承包方提供全部的原始碼和技術文件,這樣的話如果以後對方由於各種原因不能維護軟體時,我們還可以委託其他軟體承包方對軟體進行維護或升級。現在我們的企業內部資料庫系統就準備採用這種方式。

以上談了我們在軟體外包中的一些經驗和教訓。在實際的專案外包時,可能因為行業的不同對軟體的要求千差萬別,但對於外包的要求都有著共通性。因此只要能認真做好以上這幾點,並在實踐中不斷思考和總結,相信一定能委託到合適的軟體承包方,開發出滿足我們各種專案中適合該專案特殊要求的軟體,來幫助我們的客戶做好日常的經營和管理工作,提升客戶的滿意度,進而提供我們企業的競爭力,使我們的企業進一步做大、做強,獲得長足的發展。

 

相關文章