考慮這個選擇時,不要重復一些中小型企業的錯誤,例如低估高層管理時間、旅行預算、當地律師費和其他費用等隱性支出。另外,發展中國家經濟的快速增長引起了人才短缺,這有可能給新到來的小型外國企業帶來更大的壓力。雖然本地企業更容易被本地人所接受,但是大公司的分支機構可通過知名品牌、更高的薪水和更完善的社會福利來彌補在這方面的不足。
不過對于只希望在海外聘用 15 個開發人員的小公司來說,幾乎不可能實行這樣的措施。成功的中小型企業往往使用專門的開發團隊、離岸開發中心 (ODC)、建造 - 經營 - 移交 (BOT) 模式、虛擬辦公室、虛擬團隊等模式來克服遠程辦公費用過高所帶來的困難。然而無論這些模式如何變化,它們都有一個共同點:海外供應商更強調向客戶提供硬件、法律、IT 和人力資源基礎結構,而不是直接參與開發過程。在這類交易中,客戶和供應商都對項目交付負有責任。
要從這類交易中充分獲利,必須向客戶指派工程師,而且雙方都必須擁有穩定的團隊。供應商和客戶之間的溝通必須完全透明,其中包括開發人員之間的溝通。所有人員都必須講一種語言,而不需要翻譯。
在成功的合作中,有時遠程辦公室中的人員盡管從供應商處領取工資,但是他們與客戶的聯系更為密切,而且他們共享供應商和客戶的價值觀和企業文化。
使用正確的實踐和工具
成功的軟件開發團隊所使用的實踐中,眾所周知的有:共同的編碼標準;源代碼控制服務器;一鍵建立和部署腳本;連續集成;單元測試;錯誤跟蹤;設計模式;以及應用程序塊。與本地團隊相比,分布式團隊必須以更嚴格的標準應用這些實踐。
以連續集成為例進行說明。如果操作人員與源代碼控制服務器之間的距離非常遠,那么使用源代碼控制服務器來獲得突破是非常困難的。對于在另一個辦公室工作的人員而言,這也許沒什么影響,但是對于追求工作效率和通信的分布式應用情況而言,這就有可能成為一個主要的問題。只要堅持在團隊中進行連續集成實踐并安裝相應服務器(例如 Microsoft Team Foundation Server、CruiseControl.NET 和 CruiseControl),就可以最小化這種風險。
在 Microsoft .NET 平臺上工作的團隊可以使用 Microsoft Visual Studio Team System 提供的各種新功能?色@取帶有說明的 Microsoft Solutions Framework for Agile Development 和支持工具。如果團隊需要更多關于在分布式環境中進行敏捷開發的指導,則該產品會非常有用。對于有經驗的團隊而言,這是一個可提供優秀 ROI 的集成解決方案。
另一個為分布式團隊帶來巨大價值的 Microsoft 產品是 Windows SharePoint Services (WSS)。Wiki 能夠有效地幫助分布式團隊進行敏捷開發,而且 WSS 的下一個版本計劃在其增強功能中提供 wiki。WSS 同樣緊密集成了 Visual Studio Team System,這使得它成為團隊的 Web 門戶的最佳選擇。
從 IT 基礎結構的角度來看,我建議使用虛擬專用網絡 (VPN),這樣團隊就可平等的共享資源。該 VPN 環境不像公共網絡那樣嚴格,可在其中使用 Windows Live Messenger 的應用程序共享、視頻和語音呼叫、遠程協助和白色書寫板。
通信、通信、通信
如果進行遠程工作,小的誤解也會迅速變成大問題。在分布式開發團隊中,經理必須密切注意通信實踐,他們有時會在本地開發中忽略通信實踐而不會產生不良后果。要注意的內容包括定期(每日/每周)報告和狀態更新會議,這樣可使團隊成員保持同步、討論成績和暴露問題。經理還應該通過介紹性會議、現場參觀、團隊建設活動和其它方式來在團隊中建立個人人際關系。
在離岸外包交易中,開發經理應該關注由語言、文化和時區所帶來的障礙,而且必須設法克服這些障礙。全球化在緩慢不斷地消除專業環境中的文化差別,但有時文化差異仍然會帶來混亂。這個主題中有很多特定于國家的問題,這里就不再詳細討論了。語言問題容易發現卻不易克服。如果公司面臨語言障礙,最常用也是最有效的方法是公司對員工進行語言培訓。在大多數國家,從事離岸開發的專業人員都愿意學習英語,因此這些地方的專業人員通常都接受語言培訓。
時區的變化會使開發過程更加困難。但是在外包產業比較發達的國家,軟件工程師們通常都會調整他們的工作時間表,以便更有效地與國外同行合作。有兩種策略可用來處理時區差異。第一種是按照不同的工作對團隊進行分組;例如,質保和產品經理在國內工作,而開發人員在國外工作。該安排可進行循環作業,這樣開發人員可在他們的同行休息時修正程序和實現新需求,反之亦然。當然,也應結合工作時間表(在工作日開始/結束之時)。第二種方法是把項目劃分為多個塊,將每個塊分配給一個地點,給每個地點分配盡可能多的功能。第二種方法要求更有效的通信,因此也能更好的進行敏捷開發,但是兩種方法都是可以的,有時沒有選擇的余地。
選擇正確的模式同樣很重要,但是這不能保證成功。在分布式環境中,強烈建議交易的雙方中至少有一方具有敏捷開發的經驗。如果缺乏面對面的溝通,那么由于時間、文化、語言的不同,需要付出更多的人力和財力才能獲得預期的結果。擁有一個優秀的海外伙伴可帶來很多益處,例如節約成本、按需補充人員以及進行與外包基礎結構相關的任務等(這些益處可概括為“付出更少、獲利更多”),這大大優于投資建立生產性關系。沒有通過功能強大的通信基礎結構(可在全球范圍內通用)所構建的現代工具,就不可能達到這種積極的平衡。
文章來源于領測軟件測試網 http://www.kjueaiud.com/