昨天周日,逛了園子裡幾個園友的部落格,看到有些園友對軟體外包的抱怨(估計是項目失敗了),在這裡想對軟體外包及其專案管理寫點什麼,如果對大家有協助那就最好了。
軟體外包是一種商業行為,不管是公司或者個人或者其它機構。有些人是因為朋友讓幫忙做的項目,這個也屬於軟體外包,雖然它可能不存在相關的文檔手續等契約,但是它是會產生相關費用的。對於軟體外包來說存在兩個對象,一個是軟體外包的發起者,另一個是軟體外包的實現者。發起者對項目的需求,期限,費用等進行組織,實現者對項目的人力,實現,進度,維護等進行控制。雙方通過合約,協議等契約,確定項目的目標和範圍限制。
下面我說說軟體外包相關的一些問題。
一、外包項目與一般項目的區別。
外包項目與一般項目的共同點在雩都需要一系列的手續、契約和專案管理等。外包項目的需求相對更加固定,且在項目上線後,其維護期限比較短,二次開發的可能性比一般項目小。這就是說,實現者在把項目移交給發起者之後,更多的是由發起者進行後續維護及二次開發。相對來說,外包項目的需求相對比較固定,即需求在項目初期的功能需求說明書中就已經確定了,這個與一般的項目有一定的區別。
二、下面說說軟體外包的起點,即為什麼要進行軟體外包,外包的優點在哪裡。
1、 外包發起者人力資源不足的情況下,對發起者現有項目資源的有效利用。
2、 在第1項的基礎上直接或間接的實現項目費用的壓縮和減少。
3、 外包發起者技術能力不足的情況下,藉助實現者的技術資源來實現項目。
4、 外包發起者需要組織項目文檔、新技術等資源的情況下,從實現者處擷取相關的資源。
5、 外包發起者如做為項目中介結構,則建立外包原始發起者和實現者之間的項目關係,從而擷取中介費用。(類似人力獵頭,這裡是項目獵頭)
6、 外包發起者需要與特定實現者間建立互利共贏的關係,可以通過外包的方式來間接實現。
7、 其它優點。(請大家補充)
8、 其劣勢就不描述了。。。
三、軟體外包失敗的要點。
這個貌似沒什麼特別的,應該是缺乏有效溝通。這裡必須強調有效溝通的重要性。其實無論哪種項目,都需要有效溝通,不過外包的項目在一定範圍能具有特殊性。對項目來說,需求往往是比較頭痛的事情,這個在於需求的不確定性。需求貫穿項目的始終,實現者在給發起者進行項目示範的時候,需要對該需求進行確認,以保證項目的品質和進度的控制,這裡就是有效溝通的好處了。
四、軟體外包項目的管理和控制
1、 項目發起者。
1.1 需求的確認和驗證。在項目生命期中必鬚根據進度對需求進行確認。項目的成果是給你用的,做出來的東西不符合或達不到要求那有什麼意義。
1.2 項目費用的統計。這個需要與實現者進行溝通協商,確定最終費用,如有變化的地方,比如裝置價格等,這個要提前確認。
1.3 項目完成後的維護和二次開發。後期可以在交接後由雙方共同維護一段時間,待發起者能夠自我維護為止。如果自行二次開發,這個是必須的前提。
2、 項目實現者。
2.1對項目的契約文檔化。主要是合約、協議的問題,這個少以口頭契約的方式進行,也可以通過第3方託管進行協調,但盡量避免。
2.2 對項目進度進行有效溝通和控制。項目進度,必須定時與發起者進行溝通,對項目實現過程中遇到的需求,技術,實現方面的問題,傳達給發起者,共同進行討論確定。
2.3 項目後期維護。這個在文檔中需進行描述確認。
總的來說,就是通過文檔化和有效溝通的方式來進行控制。
軟體外包這個模式非常普遍,這裡麵包含著人文交流和技術交流等內容。如何通過外包的方式來縮減成本,提交技術能力,促進雙方的互利共贏,是我們需要深入考慮的問題。這裡我就不廢話了,祝願大家的外包項目都順利。