外包軟件開發時要避免的五個陷阱(外包軟件開發時要避免的五個陷阱是)
2018 年,IT 外包行業獲得了 620 億美元的收入,并已成為一個真正的全球性業務;你很可能把工作外包給烏克蘭或加拿大,就像把工作外包給印度或巴西一樣。這不僅對初創公司和非科技公司有幫助。斯萊克、GitHub、阿里巴巴和WhatsApp等大公司在最初幾天就成功地利用了外包開發的優勢,達到了目前的成功高度。
外包有可能提高您的業務效率,減少申請上市的時間,并顯著節省成本,但前提是這樣做是正確的。外包開發也存在重大風險。這些可能會對您的業務底線產生負面影響,并導致項目在您有機會啟動之前崩潰。
制定有效的外包戰略
雖然外包開發有其一系列好處,但如果不能有條不紊地建立和管理,它很快就會對業務目標造成損害。讓我們實事求是,找到一家值得信賴的開發公司與您合作進行開發工作可能是一項棘手的任務。如果公司外包開發不是一家科技公司,任務就變得更加復雜。
過去曾與外包公司廣泛合作,后來共同創立了一家定制軟件開發公司,以下是我關于外包軟件開發的成因
指南。
外包開發中的常見陷阱以及如何避免這些陷阱
1. 溝通障礙
外包開發的最大好處,獲得全球人才庫,也造成了一個主要的陷阱——溝通問題。您需要克服不同的時區、語言和文化慣例。與外包團隊建立定期溝通渠道對于確保項目成功至關重要。
Vivek Kumar 是 Qlicket 的創始人兼首席執行官,當他外包員工反饋信息亭的發展時,他親身體驗了溝通渠道不佳的弊
端。在最近的一項調查中,他提到開發人員有一天突然停止響應,并且未能完成任務。他告訴離合器:"無論是搬遷創始人、頻繁辦理登機手續,還是采用其他方法,透明度和頻繁的溝通都是小企業外包的必要手段。公司他現在堅信經常與遠程承包商溝通和接觸的重要性。
有效的溝通是一種技能,而英語只是一種
語言。在與外包開發人員溝通時,理解項目要求和明確可交付信息是最重要的因素。
使用協作工具(如 Jira 和 Asana)、通過視頻或音頻通信定期與遠程團隊接觸以及定期舉行站立會議,是與外包開發團隊建立溝通渠道的最佳
實踐。
2. 未能了解項目范圍
在將開發外包給遠程團隊之前,明確您期望的要求和交付、預期交付的時間表以及項目的整體范圍對于成功外包至關重要。未能傳達這些詳細信息可能導致范圍蠕變和產品愿景的錯位。
如果不解決這些問題,軟件工程師將繼續在孤島工作,您的期望值和實際交付產品之間的差距將越來越大。
基礎工作必須由您建立,您希望在應用程序中注冊的功能需要清楚地記錄
下來。軟件需求規范(SRS)文檔可以是一個很好的起點,使開發團隊能夠清楚地了解這些要求。
對于非科技公司來說,起草這類文件似乎令人望而生
畏。我建議使用SRS 模板,這有助于文檔過程。
SRS 文檔可幫助您組織您希望外包開發團隊在啟動時了解的基本項目
要求。然后,開發團隊將自行完成工作,并進一步詳細說明。這種合作使雙方能夠制定一個共同的計劃,一個在任何實際生產工作開始之前建立的共同藍圖。
例如,如果要開發的應用程序需要注冊頁面,則初始 SRS 文檔只會列出需要注冊的注冊
選項。通過與軟件供應商的合作,最好添加其他詳細信息:例如,指定注冊頁面上每個元素的功能規格、需要到位的驗證檢查以及需要涵蓋的可能方案列表。
文檔的清晰度是確保您的期望和外包公司提供的交付信息相互同步的第一
步。
3. 代碼質量挑戰
確定外包開發團隊在編碼應用程序時是否遵守質量標準是一個挑戰,當您為一家沒有重要編碼專業知識的非科技公司工作或運營時,這一挑戰就會被放大。代碼質量是一個模棱兩可的術語,因為可以說沒有對高質量和低質量代碼的嚴格定義。
代碼質量是需要與外包開發團隊溝通的屬性
集合。根據我的經驗,良好的代碼需要具備兩個關鍵品質:清晰性和可維護性。
記錄良好、經過充分測試的代碼遵循應用程序編寫的編程語言的格式化最佳實踐和編碼約定,對于長期成功和無 bug 執行至關重要(或接近于任何人合理預期的無 bug)。
你不能把他們全部壓扁。
將開發外包給離岸團隊時,要保持代碼質量,需要傳達期望,提前制定質量基準,并定期與團隊進行簡報,以保持開發工作
的首要任務。
您外包給的團隊應進行檢查,以確保代碼質量的一致
性。在您登錄公司之前,詢問他們是否采取代碼審查(點對點和管理)、單位測試以及功能測試等措施。這些預防措施將有助于確保他們在向您發布之前已開發出強大的應用程序。
一個經過徹底應用測試的既定質量保證流程(包括每當對代碼進行任何更改時進行回歸測試,以及使用項目管理工具記錄問題和管理積壓工作)是我在選擇將工作外包給何處時所尋找的一些基本
知識。
4. 利益攸關方的模棱兩可
項目所有權的缺乏是外包的最大缺點之一。如果您選擇的外包合作伙伴在合同基礎上雇傭程序員,而不是全職程序員,則實際項目所有權將變得冒險。項目資源的反復出現會導致可交付產品不一致,因為沒有項目領導者或一致的團隊負責整個工作并在整個過程中呈現。
在外包軟件項目開發時,請確保您了解誰將致力于此項目,并努力確保至少幾個項目經理在整個過程中保持一
致。這些人是你可以追究責任的人,他們應該出現在電子郵件線程,視頻通話,和其他定期辦理登機手續。
我發現讓業務分析師或項目經理作為團隊中的關鍵利益相關者是非常有幫助
的。此人可以充當您和開發人員之間的調解人,記錄功能規范并分解對開發人員的要求。
開發人員不僅編寫代碼,還投資為客戶提供出色的用戶體驗,這是您在選擇外包合作伙伴時應該尋找的另一項
資產。找到一家能夠成為您項目潛在利益相關者的公司,并致力于找到正確的解決方案,而不是實施快速修復,是成功外包的關鍵。
5. 簽合同時的漏洞
在創業初期,發放巨額法律費用似乎不是一個可行的選擇。但是,一份框架松散的合同,或傾向于承包商的合同,可能會造成漏洞,外包公司可以利用這些漏洞,并導致嚴重的貨幣損失。
《衛報》的創始人之一約夫·阿基亞姆知道一份寫得不好的外包合同
的價格。在一篇關于簽訂外包合同技巧的文章中,他談到了自己與外包公司簽訂合同時出現的所有錯誤。他寫道:"合同不包括時間承諾、指定人力的布局、如果最后期限未到的處罰,也沒有包括如果發展速度超過預期的積極加強。毫不奇怪,事情很快就從那里走下坡路了。古老的諺語"以書面形式獲得"在軟件開發中也至關重要。
起草得當的合同是外包承包商遵循的路線圖,并保障您在發生錯誤轉機時免受損失的沖擊。
簽訂外包合同時的最佳做法
起草一份沒有法律漏洞的嚴格合同有助于確保您在應用程序開發過程中不會錯過任何關鍵問題。以下是您在與外包代理公司起草合同時應牢記的事項。
概述可交付材料以及時間框架:合同需要以功能列表或用戶故事的形式清楚地說明預期的交付情況,以及承包商能夠完成工作的估計時間表。一家遵循敏捷開發方法并將要求分解為沖刺的外包機構可以幫助準確了解開發進度。
基于時間的接觸:而不是概述基于時間的開發和部署的合同,而是基于功能的合同,該合同將編寫良好且經過全面測試的應用程序置于開發人員只需遵守時間表的應用之上。將可交付信息劃分為任務級別沖刺有助于確保您外包給的公司中的所有權和責任。
基于里程碑的付款:將項目分解為不同的里程碑,并根據這些里程碑的實現確定付款時間表,簡化了支付結構。計劃定期跟進,以實現里程碑,并安排與團隊的站立會議。基于里程碑的付款時間表為合同帶來了很多清晰性,并簡化了支付中任何沖突的解決。
灌輸代碼保證:沒有代碼保證的應用程序接受是一個很大的不。您簽署的合同應指定您收到的代碼沒有任何惡意軟件,并指定接受測試期。5-10 天的期限是合理的時限,在該時限內,在應用程序中發現的任何錯誤都需要由承包商承擔費用。合同還應具體說明如何管理網絡托管或應用商店提交
維護支持合同:任何值得他們鹽的外包公司不會讓你懸在空中沒有任何支持合同。維護支持合同應明確說明團隊為其構建和交付的軟件提供支持的期限。指定項目支持也增強了開發人員的所有權感。他們知道草率的代碼將意味著更多的工作,他們在路上。
知識產權:作為客戶,您擁有項目的完全權利,但請務必通過在合同中加入知識產權條款來書面擁有此權利。這將節省你從一些大頭痛,如果任何權利侵權問題在未來彈出。它還會阻止承包商將來為可能的競爭對手工作時重復使用為您的應用程序編寫的代碼。
保密協議:保密協議是一項保密條款,確保您與承包商共享的專有信息保密。它確保您的應用想法無法復制或與他人共享。保密和保密協議不僅應與外包機構簽署,還應與個別開發商簽署。這為離開外包公司并自己處理業務理念的編碼員提供了一些保護。
賠償條款:賠償條款是合同中涉及您與外包代理機構之間風險責任分配的法律條款。它規定誰將承擔法律費用,并支付在正在開發的應用程序中出現的任何訴訟。
終止條款:雖然你希望事情應該順利進行,但最好為最壞的情況做好準備。確保在合同中加入終止條款,其中明確說明當事情向南發展且項目無法完成時將采取的行動方針。
解決問題的管轄權:外包使軟件開發成為一個真正的全球流程。決定發生任何爭議的管轄權,并在合同中提及,對于確定合同涵蓋的法律是必要的。
————————————————
版權聲明:本文為CSDN博主「林深見鹿ing」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_40478901/article/details/116699794