注:本文的項目外包主要指項目的發包方進行項目外包的一些注意事項。
去年第一次接觸項目外包,今年外包出去的這些項目都基本完成了,因此總結一下。本文對於有從事軟件外包項目管理經驗或者對外包很熟悉的人來說可能是蜻蜓點水、班門弄斧,本文也並不指對日、對歐美的軟件外包,主要是我所在的團隊的一次對外發包的一些總結,希望對有些朋友能夠有用。下面我分幾個方面談談我自己的一些看法,歡迎指正:
第一、外包過程中的一些主要活動
1. 為什么要外包。外包主要目的是轉移組織風險,使得自身組織專注於提高自己核心的競爭力。因此,在選擇是否外包時,應該以是否有利於組織本身作為主要的參考條件。當初我們外包出去的幾個項目,都與主營業務有關聯但不是特別重要,不過他們都有利於提升我們主營產品的特色,由於項目工期和項目的性質的原因,我們自身都沒有足夠的項目經驗進行實施,雖然這兩個項目都只是對現在的產品錦上添花而已,但是能做出來還是不錯的,不過換個角度來說,即使不成器,也不會對我們當前的主營方向造成很大影響,衡量之后的總體評估結果是利大於弊。
2. 確定外包供應商。這個對於第一次嘗試外包的企業來說,也是一個頭疼的問題。尤其對於小企業來說,大的外包公司我們出不起價,小的外包團隊或者個人有點信不過。以我們企業為例,最后還是確定盡量找有水平的個人或者小團隊。在選擇外包供應商上,我主要通過了如下幾個途徑尋找外包商:
1、確定選擇標准。我當時主要從如下幾個標准進行選擇,具體包括:技術、人品、地域、是否有獨立團隊、日常溝通、技術特點、項目開發經驗。根據上述標准,我當時做了如下工作:1)在一些發布任務的網站上發布任務,如國內的一些有名氣的任務網站;2)通過自己平時對技術圈子的熟悉與了解,搜索一些靠譜的人,並分類,然后確定一些潛在人選。3)通過在技術圈子發消息,看是否有推介的人選。最后,在上述三種方式的綜合下,我聯系上了一些靠譜的人和團隊,並最終確定了最終承包對象。
2、確定合作協議。找到了人,接下來就是確定項目范圍的問題,但在這之前,一般需要簽訂一個合作的協議,簽訂合作協議是對雙方的職責、權力等的一個約束性文檔,就像合同一樣。因此首先需要面對面溝通,並雙方確定一些硬性約束條件,這個過程一般是公平公正原則,但是大多數時候是強勢者占據有利條件。在簽訂協議時一般需要確定如下內容:1)項目范圍與要求;2)項目工期;3)項目試運行、驗收的時間與標准;4)項目團隊5)付款方式;6)質保約定;7)責任與義務;8)仲裁方式等。這里有一項值得單獨提出來,就是項目團隊,這個我在上面單獨用粗體提出來,那是因為很容易忽略這項。在這項最好能夠約定這個項目外包方應該投入的人力構成比例與人數,這樣可以前期就將這個作為外包合同的一部分進行風險管理。項目范圍這里僅僅是一個大概的、宏觀性的需求描述,在簽訂合作協議后,應該再確定詳細的需求說明書。
3. 確定項目管理內容。一旦確定合作協議后,一般而言應該馬上一起商量制定項目管理的一些約定,這個事情宜早不宜遲,對后期的項目執行大有裨益。這里一般需要確定的內容有:
項目組織:雙方的項目經理、項目團隊構成;
項目匯報:匯報內容(進度、質量、成本、人力、變更等)、匯報方式(對於項目中的各種建議、問題應該如何匯報)、匯報周期(較為正式的溝通頻率,一般在一些里程碑時啟用)。
4. 確定要外包的詳細需求。需求文檔描述了要外包的項目應該做的各種事項,包括項目的功能需求與各種非功能性需求。一般而言,這個工作是發包方提供,外包方參與,共同確定項目的內容。這個過程非常重要,有利於雙方就要完成的具體目標和內容達成一致,如果這個過程過於草率,后面出問題的幾率非常大。但是,由於發包方正是因為對需要外包的項目的不了解才外包的,因此很多時候這個地方很容易出問題,因此這里需要發包方與外包方派出比較有經驗的需求分析師獲取良好的需求。
5. 項目執行與控制。這個階段就需要按照之前的項目約定、管理方式、項目需求進行執行、確認、審核等。這個階段需要注意定時溝通、定期檢查里程碑等,在出現問題后,一起想辦法解決。
6. 項目試運行與驗收。與一般的軟件項目管理過程類似,不再細說。
第二、關於軟件外包活動的總結。針對上述的一些總結的主要活動,我認為他們的重要性定性總結如下:
項目外包我認為相對更重要的是確定外包供應商與確定項目的需求,其他活動作為一個工程項目活動而言,與普通的軟件項目管理一樣,都是很重要的,而且我認為對於管理而言,風險無處不在,項目發包方或者承包方的項目管理人員應該時刻保持警惕,處理各種潛在或者已經出現的風險與問題,並確保項目成功。