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