我的外包經驗:印度、中國和菲律賓

我的外包經驗:印度、中國和菲律賓

原文網址:troyhunt.com

1、

我的外包經驗:印度、中國和菲律賓

我有很多與亞洲外包供應商合作的經歷。這篇文章我想來談談,多年來將軟件項目外包到印度,中國和菲律賓的經驗。

我以前的工作是輝瑞公司的軟件架構師,一共幹了14年,曾經負責過亞太地區的軟件架構。

2、

我的外包經驗:印度、中國和菲律賓

輝瑞公司的軟件開發策略很簡單,就是將所有事情外包。

這是行業的標準做法,我因此跟亞太地區數十個軟件供應商合作過,參與了各種各樣的項目,範圍很廣,從簡單的產品宣傳網站到大型臨床研究系統,從移動應用 App 到 POS 機的終端程序。

我對印度、中國和菲律賓的軟件外包行業,接觸得比較多,感觸尤其深,我想討論對它們的觀察。

3、

我的外包經驗:印度、中國和菲律賓

輝瑞公司為什麼要外包?

原因很簡單,因為程序員很貴。你必須花很多錢,僱傭很多人來構建軟件產品,無論他們是否在工作,你都需要支付薪水。而且你僱來的程序員不一定懂每個項目所需的特定技能,這意味著你還要僱傭更多的人。

外包就相當於"雲程序員",你可以只在需要的時候去用它,只為所消費的東西付費,因此減輕了自己公司的負擔。

4、

我的外包經驗:印度、中國和菲律賓

外包一般都選擇亞洲,因為其他地方的工資太高。澳大利亞很貴,美國很貴,英國很貴,上圖是世界銀行的人均收入數據,這三個地區與印度、中國、菲律賓。

以我的經驗,前三個國家的外包公司小時工資,比後三個國家貴4到5倍。

5、

我的外包經驗:印度、中國和菲律賓

先來看印度。這個國家已經成為離岸外包的代名詞,在許多 IT 經理的心中,外包就等於印度。原因有很多。

  • 印度當過英國的殖民地,印度人的英語水平很好。
  • 印度擁有超過13億人口,這意味著它有源源不斷的工程師。
  • 印度的外包行業很成熟,外包巨頭 Tech Mahindra、Infosys、Wipro 有規範的外包流程,在這個領域進行了大量投資。

6、

我的外包經驗:印度、中國和菲律賓

印度許多程序員都是通過單項技術的強化培訓而大量生產的,往往只懂培訓教的非常特定的技術棧。我常常發現,他們只懂軟件組件的一個獨立部分,而這就是他們要做的全部事情。

這對項目帶來的後果就是,最終會導致很多人參與其中。我查看工作量估算,向外包負責人提問:"為什麼需要這麼多人?"。裡面會有初級程序員、高級程序員,專門從事 API 開發的人員,負責網站的人員,負責數據庫的人員等等。有些項目由於龐大的規模,需要這樣做,但即使是很小的項目,也是這個樣子。

7、

我的外包經驗:印度、中國和菲律賓

印度的另一個問題是流失率,程序員總是在離開。傳統的公司忠誠度在印度並不盛行,大多數人在一家外包公司不會超過一兩年。程序員總是去其他地方尋求更好的機會,這無可厚非,但是這種流失率意味著項目會產生更多的摩擦。這些並不會出現在你的外包合同中。

我還發現,印度程序員對需求文檔要求很高,他們始終要求真正詳細的文檔。其他地方的程序員也要求需求文檔,但在印度這個要求更強烈,細節對印度人來說很重要。很多時候,我們假設軟件應該包括的功能,事後發現這些功能被認為是"超出範圍"。這可能在全世界任何地方的任何項目中發生,但在印度極為盛行。

最合適外包到印度的項目,我認為最好是一個獨立的工作單元,範圍有著明確的界定,文檔齊全,並且完全遵循印度公司現有的模式。你要知道,那裡的程序員接受的是非常具體的事情的訓練,並以工廠流水線的心態在開發,你按照他們的模式,那就會走上"快樂之路"。

8、

我的外包經驗:印度、中國和菲律賓

接著來談談中國。

中國正在快速城市化,越來越多的人口接受高等教育。他們是一個非常精通技術的國家,在這方面不斷壯大,從新興的硬件提供商變成現在占主導地位的廠商,比如華為和聯想,也有像阿里巴巴這樣的非常強的服務類公司。這些公司如今已經進入了世界舞臺。如果您熱衷於技術而不關心中國的動態,那麼可能會錯過未來幾十年世界上最重要的技術創新和增長來源。

9、

我的外包經驗:印度、中國和菲律賓

對於外國人來說,中國人並不容易合作,主要原因是外語水平。中國的內部市場很大,幾乎所有項目都有自己的中文服務,因此中國人接觸英語的機會很有限,如果要跟他們清晰的溝通可能是一件很棘手的事情。

這意味著,你幾乎總是與實際從事開發的程序員,至少隔了一層。通常會有一個具有一定英語技能的客戶經理,你與他聯繫,他再把你的意思翻譯給技術人員。這樣的後果就是,當你真正需要進行詳細討論時,沒法跟程序員直接溝通。中國程序員會在內部自己商量,你不知道他們在想些什麼,並且很多東西在翻譯過程中丟失了。

這對代碼質量有深刻影響。從功能上講,代碼本身可能還不錯,但這是很少或幾乎沒有英語技能的人編寫的代碼。高質量軟件的要求之一,就是代碼本身就是自我記錄的文檔,這一點很難實現。他們的代碼可能無法清晰地描述軟件的功能,不僅對作者也對將來維護的人,都很難閱讀。

要是你願意一直跟同一個軟件供應商合作,那可能不會成為問題,但如果你收回代碼或交給其他人維護,就會遇到嚴重問題。我的切身體會是,很難評審中國程序員編寫的代碼。另外,語言障礙對用戶界面也有影響,那些編寫代碼的人由於不太瞭解英語,編寫的​​標籤和標題可能會使英語用戶不適應,這意味著要進行許多意想不到的(且預算未定)的修訂。

10、

我的外包經驗:印度、中國和菲律賓

我有一個習慣,一直要求供應商提供工作分解表。如果我要外包一個具有20個功能的應用程序,那麼我想知道每個功能要花多少錢。然後,我可以評估,討論一下每個功能的重要性,是否要通過放棄價值較低的功能來降低成本。

但是在中國,供應商無法提供這種表格,因為他們不是以這種方式核算成本。他們給我的細分,只是有多少個大三和​​大四的學生、項目經理、測試人員參與,他們每個人的花費是多少。在我看來,這根本沒用,但我也沒辦法。

中國的另一個現象,就是工時非常高,他們會投入大量的時間。我很清楚地記得一個案例,中國供應商的報價與澳大利亞的本地供應商相同,而工時卻大了一個數量級。

11、

我的外包經驗:印度、中國和菲律賓

中國現在變得越來越昂貴,根據我得到的消息,北京程序員的薪水是兩位數的漲幅,有報告稱,他們的年薪約為25,000美元,而孟買的年薪約為7,000美元。這是一個非常重要的差異。

中國的優勢之一(尤其跟印度相比)就是對需求文檔的要求不高。中國有一種真正的"可以做"的態度,不管你提什麼要求,他們都願意拿起任何東西去嘗試。不過,雖然他們對任何事情都會說"是",但是實際上的意思很可能是"否"或別的,這裡會存在風險。但是總的來說,我發現他們的適應性非常強,這是一大優勢。

我更傾向於外包給中國,因為那裡更加靈活,限制也更少。不過由於語言障礙,與新的供應商合作期間,涉及的摩擦也更大。

12、

我的外包經驗:印度、中國和菲律賓

再來談談菲律賓。

我在馬尼拉度過了很多時間,可以很自信地說,菲律賓人是你在任何地方所能遇到的最友好的一群人。由於菲律賓當過美國的殖民地,所以當地人的英語水平很出色,英語是菲律賓排名第二的官方語言。你在馬尼拉的任何地方,都能毫無問題地被理解,並與當地人進行交流。

近年來,我注意到的一件事是,呼叫中心轉移到菲律賓的趨勢很明顯。以前你打客服電話,是印度人接聽,現在每次我打給電信公司,都會與菲律賓人交談。我認為,這是他們強大的英語能力,友善的性格和新興的科技行業共同作用的結果。另外,菲律賓的薪水比中國低得多,更接近印度。

13、

我的外包經驗:印度、中國和菲律賓

菲律賓是一個貧困的國家,到處都可以看到這一點,特別是在前往機場的路上穿過搖搖欲墜的房屋時。

這對技術領域也產生了影響,我在外包中看到的最明顯的一點,就是菲律賓程序員對 PHP 的強烈親和力。這樣說並不是要貶低 PHP,而是 LAMP 技術棧的低成本造成的。輝瑞公司所使用的 Microsoft 技術棧在菲律賓很難找到市場。你隨便去一家供應商,他們的默認態度總是"是的,我們將用 PHP 和 MySQL做到你們的需求。 "儘管我們後來確實找到了可以使用 Microsoft 技術棧的供應商,但我始終覺得它們並不受到重視,這讓我對他們的技術能力有些擔心。

14、

我的外包經驗:印度、中國和菲律賓

在成本上,菲律賓肯定比中國低,而且經常比印度低。根據現在的趨勢,這種情況大概會保持很長一段時間。

在許多方面,菲律賓是世界上最好的。除了成本,他們還有這個價格的國家中最好的英語技能,友善的性格,以及我在中國觀察到的相同的"可以做"的態度。

15、

我的外包經驗:印度、中國和菲律賓

最後,談談我的外包經驗。

首先,外包是一種不穩定的商品,因為程序員是不穩定的,尤其是在印度。我們當時與一家孟買的開發商合作,花了很多時間和金錢培訓一個叫做 Avni 的程序員,讓她掌握所需的特定技術。這個項目進展順利,但是有一天,Avni 離開了。我懷疑她要去生孩子了,根據我的經驗,這種情況通常會在發生幾個月後才通知你。開發商跟我們說不要擔心,會給你找另一個 Avni,跟上一個一樣!

開發人員不是可以替代的商品。你不能簡單地用一個人去替代另一個人,然後期望他們同樣地工作。我經常看到外包供應商信誓旦旦地斷言,他們能夠像更換廚房燈泡那樣簡單地更換程序員。這是一種危險的不稱職的信念,表明對軟件開發的實際情況有根本的誤解。

16、

我的外包經驗:印度、中國和菲律賓

第二點,外包軟件的質量,不一定能夠在項目交付時看出來。通常要花上數月甚至數年的時間,才能意識到你所承擔的"技術債務"的成本。供應商開發完軟件,將其移交給客戶之後,如果客戶以後要添加功能,發現代碼難以辨認,將花多少錢才能解決?在軟件產品生命週期中,長期的成本通常被忽略,因為人們爭先恐後地希望立即節省短期成本。

我從未見過,外包供應商為項目編寫任何單元測試!他們沒有自動化測試流程,總是用人工測試確保一切正常。開發人員甚至從未聽說過自動化測試這種概念,因為編寫額外的代碼將花費更多的金錢,一切在他們看來理所當然。所以,外包項目的長期可維護性和成本是可怕的。

17、

我的外包經驗:印度、中國和菲律賓

第三點,如果想讓外包成功,最好採用混合模式。不是"將所有事情外包",而是"讓我們的人與他們的人一起工作,各自做自己最擅長的事情"。

我花了大量時間,到世界各地的外包公司,培訓他們的開發人員,跟他們的團隊待在一起,交談要開發的項目。我遇到了各種壞的故事,但也有一些非常積極的經歷。

避免依賴外包組織中的個人,比如上文的 Avni,外包行業的人員流動性比一般情況大得多。相反地,應將重點放在讓更多人一起參與,如果其中一個離開,你就不會損失太多的項目知識。

還可以多應用一些開發工具,比如代碼質量檢查工具、構建服務、版本管理等等,讓工作過程變得更加可預測。

18、

我的外包經驗:印度、中國和菲律賓

第四點,也是最重要的一點,不要把小時費率視為外包成功的指標,不要根據報價的高低選擇供應商。

外包給哪個供應商,通常是由公司內部對軟件開發瞭解最少的人決定的。低報價吸引了他們,只考慮了短期成本和交付條件,沒有將長期成本(諸如可維護性,可用性以及安全性之類的因素)考慮在內。因為公司的預算和業務目標總是聚焦在短期,難怪那些掌握資金卻不瞭解技術的人做出了不明智的外包決策。

廉價的離岸外包是軟件行業的麥當勞。因為需求量很大,外包公司就把軟件開發做成了批量生產的產品。但如果你一直吃麥當勞,就不是很好。你最好將外包視為均衡飲食的一部分,做出明智的決定,不要因標價低而盲目選擇,不考慮要支付的實際成本。

(完)


分享到:


相關文章: