外包工作總結
一、為什么要外包,以及外包的優勢是什么?
從公司業務不斷的發展壯大,軟件項目越來越多,而公司內部平台組軟件人員較少,實在無法完成這么大的項目量,這也將面臨一個較為困擾的問題,從而想到一個新的路徑,用軟件外包的方式來解決現有問題,並商討后使用此方案。軟件項目外包優勢主要體現於對公司軟件人員量需求、快速開發能立竿見影的效果、加快系統上線的周期、以及解決技術上的一些難題。
二、軟件項目外包過程中需要做哪些工作?
首先需要確定客戶的需求,進行整合歸納,完成設計圖、及功能說明文件等,然后交予外包公司查看定價、待商榷談妥后,走公司外包流程經領導審核確認、並簽訂外包合同后,開始項目開發流程。
在項目開發過程中需要及時溝通、探討方案,跟進和督察外包項目成果及進度,定期向客戶匯報我們的項目開展情況,有時需要根據客戶的需求進行臨時調整,對開發的設計及做以修改或改進;當外包公司遇到解決不了的問題或技術,及時探討查找資料突破難關;經過多次測試后發現開發的Bug或與設計思路不符合的加以調整,才能發布上線給客戶使用;開發完的代碼首先需要進行質量檢查,再合並到我們現有的整個系統中。
三、外包工作中出現了哪些問題?——情況細節闡述
生態視窗項目初期,該項目資金不多,我們根據客戶的需求對本系統定義范圍較小,由於后期逐漸增加很多比較強大、靈活性、特殊的需求調整和變化;類似於國家站平台開發一樣,很多需求客戶不能完全確定,大家都在探索怎么設計才更合適,所以開發的很多功能設計及業務都做過很多調整,而且並在原有系統上不斷的增加功能,導致系統架構、邏輯、結構改得面目全非。
常見問題例1.用戶操作使用時,程序出現Bug問題導致數據庫刪除掉不該刪除的數據或者修改了其它與本操作無關數據、新增了重復數據等問題,需要長時間去核對。
常見問題例2.外包的項目基本上都是快速開發,為了完成任務式開發,未多考慮過開發的東西是否是客戶想要的結果。
我們系統越來越龐大,針對新開發功能並與外包功能從設計上都需要進行整合,控制整體思路一致性;外包開發人員水平參差不齊,因此開發的功能方面會有很多問題,與實際需求思路不一致、系統整體關聯性差(對功能理解不深徹)、代碼質量較差、為了快速完成任務的方式開發、修改或新增功能會影響到其它功能Bug問題、系統功能響應速度慢、積累項目多問題響應效率慢,再加上我們的需求會根據客戶需求變化大和需要再擴展的功能也多、有的功能臨時加急修改等問題,導致外包項目質量更差,所以會導致我們需要更多時間去測試、督促和把控。
如我們平常用到的手機一個個版本的不斷更新一樣,融入更多的元素和內容,如軟件塞班系統平台、安卓系統平台及硬件更新變化,都在不斷的變化和升級;我們的客戶需求也是在不斷變化,要求更多更好,流程且多變,多種方式都要兼容,日常各種細節問題都要考慮,做入系統中,太多不確定,只是要靈活,交互體驗等改進大、功能修改補充多;現在系統越來越龐大,修改個Bug也許會影響到其它功能等,整個項目應需求一個實力強的架構師、業務分析師才能把系統建設得更好。
之前公司軟件外包的項目少,並外包項目管理比公司內部項目管理更難管理,開始不熟悉怎么管理以及標准管理流程,后面經過多次的外包合作,長期的積累,總結了一些經驗及流程。
四、軟件項目外包公司的通病
從這個角度看,外包公司不可能跑得很快,需要成本利潤控制,當前費用覺得不太滿意,你在一家很難規模增長的公司里,就很難享受到公司快速成長的紅利。
外包的風險在於: 1、在轉型期和以后的時期,為使外包順利進行,與外包有關的成本太高; 2、內部信息系統的專業能力流失; 3、失去對信息系統的控制,形成對開發商的依賴; 4、外包商可能倒閉和破產;
一個成熟的軟件公司,項目實施流程,包括:按照CMMI標准流程執行;要使用的產品需要經過仔細測試。
五、外包經驗匯總:
一些項目經理往往認為外包開發項目與企業內部開發項目的管理沒有多大分別,唯一不同是外包項目需要更多時間去溝通、協調、跟進和監控。總體來說,這種想法是對的,但事實上外包項目的管理比企業內部開發項目的管理更復雜,擔負更大的風險,需要更緊密的進度和質量監控。
保障溝通內部開發項目所需人力資源大致分為兩組:一是技術人員,另一組是配合技術人員的業務人員 ( 他們是所建信息系統的潛在用戶 ) 。外包項目除了需要部分技術人員和用戶群體參與外,更增加了一組外包商的資源。有些外包商更會指派一名聯絡人員負責聯系與協調,而他們的技術人員只在后方負責項目的開發。這種運作模式要盡量避免,因為外包商指派負責聯系的人員往往是業務人員的背景,對技術的細節不能全面把握,把有關信息傳達到技術人員的時候便會有所差異。所以我們的首要任務是讓外包商明白負責項目聯系的人員必須是開發小組的主管。這名開發小組主管是直接參與開發項目的主要人員,如此才能夠有效地進行溝通和監控。
做好計划項目經理首先需要做出一個詳細的、完整的項目計划,並在計划中詳細地列清楚每一件工作需要哪方面的哪些人力來共同執行。在計划中的每一個進度都需要進行確認才能繼續。例如外包商在完成系統分析后,需要把分析的結果讓客戶理解,好讓企業能夠確認外包商對整個系統的理解和分析與企業本身對項目的需求和分析達成一致,這樣才能讓外包商進行其后的模塊設計。不然設計出來的模塊組合便有可能與企業的需求不太一樣,存在質量和最后上的差異。這些差異也將會引發企業將來在系統維護、更新、增加功能模塊、升級、集成等各方面的嚴重問題。避免延誤要避免項目發生延誤,計划中要預留足夠的時間來進行上述確認工作。由於雙方工作地點的緣故,原本只需一天的確認會議便可能耗費兩天或三天的時間來完成。議程中所達到的共識也可能需要時間來讓外包商做出適當的修改才能讓企業正式確認。也只能在正式確認后才能夠進一步繼續接下來的工作。
經驗主要有以下五個方面:
結果導向要事第一,明確核心需求,制訂里程碑計划,加強溝通,保證需求與實際開發結果一致與項目成員保持良好關系隨機應變,風險前置
一、結果導向
對於外包項目來說,所要的結果只有一個就是按時上線,但這里需要給自己加個要求,要保證質量按時上線。大部分人對於外包項目聽起來都會有一種不屑的感覺,認為做外包的只注重錢從不在乎質量。其實不然,很多做外包項目都知道,如果你做出一個垃圾產品出來,你們整個團隊可能就涼涼一陣了。
產品經理目標可大致有兩個,前期,找到用戶的實際的核心需求。后期,保證項目質量按時上線;項目經理則是以項目上線為最終目的。
作為你的老板想要的結果也大致有兩個:
第一,成本,項目投入的人力是多少,周期多長;
第二,項目最終是否按時保質保量完成上線。
老板要根據第一點確認這個項目到底是賺錢還是賠錢,要用第二點來保障能與客戶保持良好的合作關系。對於做外包項目的公司這兩點尤其重要,所以產品也要注意好着兩點。
二、明確核心需求,制訂里程碑計划。
首先,找准核心需求,逐步完善細節。確認需求階段,從核心需求出發。保證產品沒有偏離客戶的真實需求,這一點我認為是一個產品的根本。核心需求一旦確認,細節方面便可以逐漸完善,甚至在開發階段進行完善都可以。
其次,制定階段計划。在與開發確認完工作量之后,根據功能清單和接口清單,制定開發計划。按照功能模塊,制定相應的階段計划,無論是前端還是服務端必須保持同步。
這里說的同步是:在階段計划的完成截止時間,必須保證前端和服務端這一階段工作已經全部完成。
可能服務端快的話已經進行下一階段開發了,那么測試和驗收人員這時候可以進行這部分工作驗收。發現了問題一定要指出來提bug,讓開發在下一階段工作進行的同時完成這些bug修改,讓開發對自己做出的東西負責。
三、加強溝通,保證需求與實際開發結果一致
加強溝通主要有三個方面:
首先,要與客戶進行充分的交流。需求確認階段,確定核心需求,逐步完善細節,一定要不厭其煩。不然到了開發階段,客戶突然說,這個非常重要的需求你怎么沒有加上。如果這個功能比較復雜,那么這時調整一定會對整個開發過程產生巨大影響。
第二,與設計開發和測試做好溝通,首先是產品和設計的溝通,所有的需求變更要先和設計進行確認,保證設計稿的正確,然后,產品設計內部確認之后,通知開發和測試人員,可以是在QQ群通知。
第三,與領導加強溝通,學會借助外力。有時候,客戶會突然加一些需求,但你沒有足夠的人手。這時候你不能直接答應,而是需要找領導說明情況,爭取資源,是調配人手還是拒絕有你老板決定。
四、與項目成員保持良好關系
這一點十分重要:在產品方案確認的過程中甚至是開發過程中,可能會出現爭執,甚至爭吵,但一定不要惡意人身攻擊。其實一個項目中的成員就像一家人,大家有着共同的目標,並為之努力付出。
五、隨機應變,風險前置
隨機應變,沒有一層不變的開發計划,這應該是互聯網產品行業的共識。面對需求的變更,如何做好調整保證項目正常上線,是產品和項目經理必須要考慮的問題。
如何降低需求變更所帶來的影響總的主要有三點:
制訂開發計划的時候預留出一定的時間;需求變更按優先級與客戶確認,需要延長開發時間的與客戶提前說明,是延長項目開發時間還是暫時不做與客戶商量明確。對於人手不夠完成變更需求的時候,與領導溝通,說明情況,協調資源。風險前置,我親眼見證過這樣的情況,在進行一個項目的時候,前期就是一直的開發,開發,開發。測試期就拼命地改bug和開發,開發拼命的加班填坑,眼見要上線,回頭一看還有300多bug,只能和客戶商量延期,結果可想而知。
造成這種情況的主要原因是測試與開發過程的完全分離。把測試放到最后進行,雖然留給測試和修改bug時間超過兩周,但往往是做了兩周發現各種坑沒填,開發並沒有真正完成全部工作,結果就是測試時間變成了開發時間。
對此,我想說,要保證項目按時上線,測試驗收必須要盡早加入進來。把修改bug的事情放在整個開發過程中進行,保持整個項目開發過程的緊張度,對於周期比較長的項目,開發人員很容易出現懈怠的情緒,作為產品和項目要給開發一定的緊張感。
最后,說了這么多,可能自己見解也是十分片面,關於項目管理和產品我確實還有很多路要走,望同事們共勉,一同努力,在產品的道路上越走越遠。
1、把今年所有外包項目的情況介紹一下。包括:項目名稱、最終客戶名稱、項目金額、項目開發周期、項目狀態(開發中、帶驗收、驗收完畢、最終客戶驗收完畢等)等等。
2、總結每個項目的殘留問題以及對應措施。
3、總結項目外包給帶來的好處。
4、總結項目外包的不足以及改進方案。(從公司內部和外包單位2方面進行分析)。
經典文章:
從軟件工程的角度解讀任正非的新年公開信