軟件外包技術的開展為非互聯網企業開發軟件提供了極大的便當,不只是大型企業其中還有許多中小公司,初創企業,想要開發制作一款app應用的時候,都愿意找專業的app制作定制外包公司合作,或是把整個項目外包出去,或是自己做UI外包出去,這都表現了人們對于軟件外包這種方法的認可。成本降低30%到50%不是為數不多因素軟件外包近幾年呈幾何級數增長。據技術服務研究企業Gartnerg公司估計,2018年底全球軟件外包項目價值達到5000億美元。選擇外包的公司可以降低大約30%到50%的成本。但是節約成本不是選擇外包的為數不多原因,而且近年來這個因素變得越來越不重要了。
IT研究企業Diamond Cluster近的一項研究指出:軟件外包的一個好處就是可以節約公司內部的資源。通過軟件外包服務,發包公司可以安排內部人員從事核心的業務;第二個重要因素就是可以使用本公司內部不擅長的技術。相比之下,運營成本已經是企業外包所考慮的第三個因素。選擇外包可能基于以上所有益處,但是如果外包關系出現問題,那么所有收益都不會得到。而如果風險因素沒有認清的話,問題是很有可能發生的。
基本上,在外包項目開發中的風險和下面3個因素有關:人、流程、政策。通過鑒別哪里容易發生風險,可以在早期采取措施減輕風險。外包時常見的風險根據近對數十個企業的調查發現,他們對軟件外包主要擔心在以下幾個方面:溝通困難、提供的開發產品的質量、無法近距離接觸開發團隊、知識產權的保護。很多時候,我們實際得到的東西和我們期望的差距很大。一開始你就要讓外包公司知道你的要求,從終產品到開發工具。這也是為什么我們一直認為項目需求的溝通是所有風險中重要的。
制作公司有哪些錯誤的理解需求在進行外包時,終收到的卻是糟糕的代碼或者是我們無法讀懂的文檔。但在大多數情況下,沒有達到預期效果的原因不是因為app外包公司的自身能力問題,而是他們誤解了需求。app外包的一大風險就是不能有效的定義項目需求。公司的項目經理可能要求開發團隊迅速完成,特別是項目交貨時間比較緊張的時候,對需求分析不夠重視。但是如果忽略初期的項目需求文檔,那么后期就可能產生問題,數量居多且解決起來花費巨大。如果能很好的描述需求,那么開發團隊就能做出滿意的產品。一個龐大,過分詳細,可能要花費數月時間的項目說明和只有一頁紙大小,一點也不充分的項目概念之間是有明確界限的。但是通常,項目在開始的時候對項目說明的定義越清晰,項目經理就越能夠理解你想得到什么,你怎么樣得到,并且完成它。這一步驟有多重要呢?根據卡耐基梅隆大學的軟件工程研究所(SEI)的一項研究發現糟糕的需求定義或者不清晰的項目需求是軟件項目失敗或者延遲的主要原因。應對措施:不要逼迫app外包公司去猜你要做的東西是什么?有許多不同的方法來完成一個產品,但是并不是所有的你都可以接受。為了避免失望,你應該定義明確的需求。要想減少由于誤解項目需求而產生的風險,一個重要的方法就是在開發正式開始之前就要把需求分析作為一個重要的階段來做。這需要一系列的討論。當然這些時間花費是值得的。項目經理在以下3個階段收集信息提出項目需求:1)收集初的用戶需求:在創建系統用例之前,項目經理要會見用戶,詢問他們對系統期待的特性以及功能。他們需要了解完整系統的商業需求,從客戶公司搜集高層系統需求和系統包括的用戶界面。2)分析系統需求:包括預期系統的可接受性、可實施性、可測試性。3)檢查需求:包括預期系統需求的綜合考慮,目的是為了明確需求中發現的由于模棱兩可或者是不一致而導致的問題或者錯誤。這份文檔還包括問題追蹤以及在問題產生后如何處理的計劃。
2:質量保證即使是較好的開發團隊也不能保證寫出的代碼沒有錯誤,這就是為什么質量保證外包企業是非常重要的。當把項目外包給一個不知名的廠商時,一個大的風險就是這個廠商是否有充分的質量保證和測試流程。與其等到產品問世后去找各種錯誤,不如花時間檢查一下供應商做的質量保證流程,以減少風險。質量保證沒有完成或者完成的不充分主要有以下3個原因:
1)外包企業自己沒有質量保證及測試團隊
2)項目的完成日期非常緊,質量保證測試完成的非常快以保障開發進度
3)廠商沒有完全理解需求,質量保證測試沒有覆蓋整個系統應對措施:首先你要做的是在選擇app外包公司的時候要確定他們是否有恰當的質保流程,要檢查以下幾個問題:
1)是否有系統實現對問題/錯誤或者系統改變的跟蹤
2)是否有修改錯誤的流程
3)是否有合適的監控標準和質量遵守規則
4)app外包公司是否對每個模塊都進行標準單元測試和回歸測試
5)軟件是否經過安裝,性能及完整性測試,實際運行情況如何測試實例對任何開發項目而言都非常重要。實例可以看出開發出來的項目是經過測試的穩定版還是錯誤百出的測試版。一旦開發完成,質量保證團隊就馬上跟進。他們根據搜集的系統需求制定初的檢查計劃,依據該計劃來檢測功能性,可擴展性,安全性等問題。要測試兩個方面,一方面是系統回歸,裝載和容量測試,另外一方面是用戶接受測試,每個方面都要有詳細的測試標準。改進已完成系統的質量的另一個方式就是檢查工作成果。檢查是對軟件設計或者實現的詳細回顧。
花在質量保證活動上的每一個小時可以節約項目后期的時間是3到10小時。也可以讓承包商在開發的每一個階段都采用成果檢查方法。通過這種方式,廠商可以快速的檢測并糾正錯誤。通過定期進行回顧式的檢查,在產品開發初期階段就可以迅速地發現并糾正缺陷。這樣在開發過程中這可以更好的控制成本并且避免延期。比如,若是到產品構建或者維護階段才發現缺陷,所花費的成本將是初期的50到200倍。
風險3:知識產權保護產品的知識產權是公司的重要的資產,進行外包時采取措施保護是非常必要的。有些不道德的公司偷竊你的技術或者數據在市場上出售。但大多數情況下,這些問題通過仔細的廠商評估和采取應對措施可以避免。首先提供給廠商完成項目所需的盡可能少的核心技術與數據,評估選擇的承包商以確保承包商有適當的政策可以保護數據安全。應對措施:要制定政策,同時也要簽署一份保密協議,一份同業禁止協議以避免app外包公司未經授權盜版你的技術。
比如,app外包公司可能會利用他們的私有技術或者是開源技術開發新產品,而這種新產品是以后的應用中可能會用到的。在這種情況下,提前定義好哪些源代碼屬于公司,哪些屬于app外包公司,哪些屬于客戶并闡明授權問題,這是非常重要的。在開發工程中,一定要使項目開發工程中產生的代碼文檔化,這樣代碼才能變成公司的財產,并受到法律保護。比較好的app外包公司,比如有些APP外包公司,會主動告知項目的進展情況,并且每個客戶都可以審查該公司。需要檢查的項目包括:公司的設備安全性如何、開發團隊的所有人是否都和你們公司簽署了保密協議。發現上述問題并予以解決,那么你就在保護知識產權上邁進了一大步。