為什麼軟體外包開發不再可行
Yegor Bugayenko是一名軟體開發人員,同時也是軟體外包公司Teame.io的創始人和CTO。從自己將近10年的軟體外包公司工作經驗中,他得出結論:現如今,軟體外包開發已經行不通了,軟體外包的結果只有災難。
他查閱多篇文章,尋找軟體外包失敗的原因。他認為,下面所有的原因都不得要領:
- 最便宜的提供商:有人認為,軟體外包是為了降低成本,所以最終會選擇最便宜的提供商。但Yegor認為,增加開支並不能解決該問題。而且,這個原因也不限於軟體外包。在任何商業交易中,“你輸我贏”只會通向失敗。
- 文化不匹配:有人認為,外包公司同客戶之間的文化差異是導致成本超支、計劃延期和程式碼質量低下的原因。但teamed.io的團隊來自超過15個國家,他們在工作中從沒有因為文化問題而糾纏不清。
- 缺少面對面交流:有人認為,外包公司同客戶身處異地,缺少面對面交流,容易產生誤解。但Yegor認為,不見面也可以清晰的表達和交流觀點。
- 沒有成功指標:沒有清晰定義成功指標,這是外包公司同客戶關係破裂的原因。Yegor認同這一說法,對於外包公司和客戶,成功有不同的意義。
- 糟糕的規範:有人認為,大部分專案都無法定義良好的規範,而這是導致外包專案失敗的原因。Yegor認同這一說法。不過,他認為這與外包公司無關。無法明確定義技術需求是架構師本身的缺陷,可以通過學習、培訓和閱讀來解決。
- 人才流失:離岸開發人員缺少對專案的忠誠度,他們中最優秀的可能隨時退出。而Yegor認為,這與開發人員的所在地沒有關係,應該採用更有效的激勵手段。
對於上述原因,Yegor認為,它們僅僅能夠說明外包專案的結果,但並沒有觸及真正的問題。在他看來,真正的原因是外包公司的CEO只關心一個問題,就是下個月的僱員工資,因為公司90%的支出都是程式設計師的工資。所以,對他們而言,付錢的客戶就是好客戶,他們並不關心客戶專案是否成功、成本是否優化等。而從前,軟體外包之所以可行,是因為外包公司的人力成本非常低,他們通過向異國客戶出售程式設計師的時間可以獲得巨大的利潤。但現在,由於程式設計師對工資及福利的要求增加,利潤空間遭到了嚴重壓縮,保持源源不斷的現金流成了外包公司的唯一動機,他們不怕專案時間長,不怕程式碼質量低(可以賺取運維費用)、也不怕電話、開會和其它浪費時間的活動,所以軟體外包已經不再可行。
對於這一話題,Hacker News網友的討論異常激烈。網友makecheck認為,軟體外包從來就不可行,因為軟體外包存在下面兩個方面的問題:
一個是軟體外包中有一個想法,就是程式設計師在某種程度上非常容易替換,認為只需要找到一個開發人員就可以,而幾乎沒有考慮,如果選擇的團隊壓根不瞭解他們要做的工作,那會有什麼影響……另一個問題是文化上根本性的誤解。
網友chris_wot持類似的觀點,他認為:
大多數非技術出身的專案經理都不明白:IT人員並非即插即用的模組元件……總是要有一個提前期——根據專案的複雜度不同,有時需要數月——在真正富有成效的工作之前,新僱員需要熟悉和理解系統及業務需求。
網友JoeAltmaier也認為軟體外包不可行,他指出:
20年來,我從來沒有從軟體外包專案中看到回報……(軟體外包專案)的管理成本高於收益:語言障礙、時區、文化、網路接入……
網友MortenK也認為軟體外包專案的管理成本更高,其在專案管理上的時間投入是本地專案的2-3倍。不過,對於文化差異的問題,他認為可選擇文化相容度高的外包地。
網友timtas贊同Yegor探討這一問題的方式,但認為他並沒有提供一種可用的方法:
如果嚴格按照他的觀點行事,那你永遠都不要用金錢換取服務了。
同時,他認為,名聲很重要:
名聲好的外包公司不會純粹將客戶視為搖錢樹。雖然他們在利用率問題上面臨著同等或更大的壓力,但他們仍然會高質量地完成工作。
網友d4nt經營著一家軟體外包公司,他認同Yegor及其他網友提到的許多問題。但他認為:
你永遠不應該為了省錢而外包……外包的主要原因應該是購買專業知識。許多公司真不知道如何編寫軟體需求文件,或者什麼是非功能性需求,或者如何設計使用者介面……
網友cookiecaper認為外包也是有好處的:
其中一個主要的好處就是,外部承包商通常不會受到公司內部政治的影響。也就是說,他們更可能給出直接誠實的反饋,而不必過多顧及其他人的情緒。在大多陣列織中,這都是非常有價值的。
此處僅列出了網友的部分觀點,感興趣的讀者可以進一步閱讀。
相關文章
- 為什麼軟體外包不再“起作用”了
- 為什麼軟體測試外包更好?
- 為什麼我不再做.NET開發
- c++為什麼適合桌面軟體開發?C++
- 軟體產品開發,為什麼失敗 (轉)
- 為什麼那麼多公司在用快速開發平臺開發軟體?
- 軟體工程--為什麼軟體開發方法論讓你覺得糟糕軟體工程
- 軟體開發有什麼作用
- 軟體開發的是什麼
- 為什麼軟體會被稱為“軟體”
- 力軟敏捷開發框架幫您開發什麼軟體敏捷框架
- 為什麼軟體開發方法論讓你覺得糟糕
- 客戶管理為什麼要用CRM軟體?北京銳智互動軟體開發
- 為什麼軟體測試外包公司更受軟體企業歡迎?軟體測試報告需要多少錢?測試報告
- 用了這麼多年分頁PageHelper,為什麼有人說Java開發不再吃香Java
- 為什麼軟體開發,人多,事少,還會工作量大?
- 為什麼客戶不喜歡我們開發的軟體
- 學python用什麼軟體開發Python
- 軟體開發是什麼、如何做
- 李開復談軟體外包及軟體安全(一)
- 淺析--為什麼軟體開發方法論讓你覺得糟糕?
- 為什麼SAST在軟體開發生命週期(SDLC)中很重要?AST
- 解析!JNPF快速開發平臺是什麼,可以開發什麼軟體系統
- 為什麼越來越多的企業開始使用軟體快速開發框架?框架
- 重塑軟體產業 華為雲軟體開發雲能做些什麼?產業
- 我為什麼不再推薦RxJavaRxJava
- 【React】為什麼我不再使用setState?React
- 為什麼我不再用 .NET 框架框架
- 為什麼我不再使用MVC框架?MVC框架
- 你為什麼使用 Linux 和開源軟體?Linux
- 什麼是前端開發?為什麼要學前端開發?前端
- 為什麼要做一款ERP軟體——開源軟體誕生7
- 開發外包
- 軟體開發中的最佳實踐是什麼?
- 為什麼bootstrap不再那麼受歡迎了?boot
- 為什麼糟糕的軟體成功了
- 絕不再接外包專案
- 開源軟體成為“兵家必爭之地”到底是為什麼?