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