「ベトナムオフショア開発成功の鍵は『採用』『教育』『信頼関係』~日本品質のオフショア開発を目指すセタ・インターナショナル~」では、ベトナムでのオフショア開発サービスを提供しているセタ・インターナショナル株式会社の廣瀬氏より、オフショア開発におけるサービスを提供する側の苦労や工夫についてうかがうことができた。
オフショア開発を軌道に乗せるまでの経緯とノウハウ、コスト削減にとどまらないオフショア開発のメリットがわかってもらえたことと思う。
今回は、オフショア開発にブリッジエンジニアとして6年以上携わっている株式会社テラス のシニアブリッジエンジニアの山北氏より、開発の現場で実際に起きた問題や対策・工夫について詳しい話をうかがうことができたので紹介しよう。
■現場から見たオフショア開発
「ベトナム人と日本人の価値観でお互い近い部分として、仕事に真面目に取り組む姿勢があります。開発体制の基盤さえ整えば、ベトナム側と日本側が協力することによって大規模プロジェクトを運用していくことができると思う」と山北氏は言う。
ただ、そうしたメリットの下ですぐにプロジェクトが円滑に進んできたのかというと、そうではなかったのだそうだ。やはり、いくつかの問題が発生したという。そこで実際に起こった具体的な問題とその対策について話を聞いた。
■オフショア開発の問題と対策
オフショア開発を始めてすぐ、日本側とベトナム側とでコミュニケーションギャップが生じたと山北氏。
「普段ベトナムとのコミュニケーションは音声チャットを利用しています。その場では上手く伝えたつもりでも、説明不足やお互いの認識の違いで、こちらが想定していたものとは異なる成果物があがることが多くありました。そのせいでスケジュール通りに作業が進まず、納期の遅れや品質の低下を招きました。」(山北氏)
それでは、そもそもの原因はどこにあるのか。
「これらは、日本のプロジェクトでは一般的なシステムの背景をベトナム側と情報共有していなかったことが原因ではないかと考えます。」(山北氏)
その一例を挙げてもらうと
『ベトナム側に依頼したWebアプリケーションの会員登録機能で、ユーザーが確認画面へ遷移後、「戻る」をクリックしてしまうと、フォーム上の入力情報が保持されていないというようなケースがありました。日本ではこのような場合、ユーザーが入力した情報は保持しておくことが一般的ですが、仕様書に書く程のことでもない(当然情報は保持しているだろうという想定で)と説明していませんでした。』と山北氏。
上記の様な些細な認識の違いが、いくつか積み重なることが原因で、スケジュールのずれが多発したという。それでは、これらの問題を解消するためどのような対策をとったのか?
「BSE、エンジニアとのコミュニケーションを多くとるようにしました。幸い、日本からベトナム(ハノイ)へは飛行機で5時間と、そう離れてはいないということもあり、プロジェクト開始時は現地へ往訪してキックオフミーティングを開催し、日本側で設計した要件定義・外部仕様書を元に認識のすり合わせをBSE、エンジニアと共に行ないました。」(山北氏)
このように開発メンバーと密なコミュニケーションをとることにより、現場から問題点や意見をヒアリングし、新しいプロジェクトへフィードバックすることができたという。
次に問題となったのは、システム開発の進捗管理についてだった山北氏はいう。
「オフショア開発ではシステム設計の上流工程を日本のエンジニアが行い、開発工程(プログラミング)をベトナムで進めるパターンがほとんどです。この時に問題となりやすいのが実開発の進捗管理のマネージメントです。これは日本のプロジェクトでも起こり得ることですが、オフショア開発では、母言語が異なることもあり、仕様の伝達ミスや、細かなニュアンスの違いで想定工数より実工数が増えやすい傾向があります。」(山北氏)
そこで山北氏は、その対応として以下のような手法を取り入れた。
1.仕様書をWikiベースに変更
「日本では仕様書をExcelで書くケースを多く見ますが、Excelは元来仕様作成ツールではないため、更新の差分が取りにくい問題があります。Webアプリケーション開発では仕様変更が発生しやすいため、翻訳を必要とするオフショア開発では仕様書の作成にExcelを使うことは非効率だと考えました。」(山北氏)
そのため、同氏は全ての仕様書をWikiベースに変更し、日本側のエンジニアが起こした仕様書を元に翻訳者がベトナム語の仕様ページを作成するようにした。そのことにより、開発者に迅速に新しい仕様を伝達することができるようになったという。これは仕様変更時の実装漏れ(伝達ミス、翻訳忘れによる)を減らす結果へも繋がった。
2.スクラム方式の導入
またプロジェクト形式によってはアジャイル開発で一般的なスクラム方式を導入し、スプリントを一週間として進捗の確認や調整、問題点のフィードバックを繰り返し行ったという。
「これによって認識のズレや開発現場で起きている問題をほぼリアルタイムに把握することができました。」(山北氏)
■オフショア開発を進める上での工夫
上記で述べた問題や対策以外にも、オフショア開発を円滑に進めるために、実施していることがあるという。
1.開発工数を算出する際にバッファ期間を設ける
「プロジェクトによってはシステムに複雑なロジックを組み込むケースがあります。このような場合、必ず開発者レベルに内容を把握してもらった上でバッファ期間を設けた工数を算出しています。日本のSEが想定する工数と、ベトナムの開発者が想定する工数(実装方法)で剥離がないことを確認するのが目的です。」(山北氏)
バッファを設ける理由はそれだけではない。
「ソースコードレビューやリファクタリングの時間を設けるためでもあります。ソースコードを一定の品質で維持することと、技術者の教育をすることが目的です。」(山北氏)
2.エンジニアの教育
上に述べたようにオフショア開発を進める上では、プロジェクトを進行すると共にエンジニアの教育も行うことが重要であると山北氏は語る。
「要件定義や納期から脱線しないレベルで、可能な限り新しい技術をシステムに取り入れています。Web業界は技術の進展が早いため、エンジニアには様々な技術と向き合って、根底となる技術力を向上させて欲しいと考えているからです。」(山北氏)
教育を目的としたハッカソンを実施し、アプリケーションのロジックを提示して、より効率の良いクエリーの書き方やアルゴリズムをチームメンバー同士で競わせることもあるという。
また同社では独自のフレームワークを採用している。
「PHPを利用した一部のプロジェクトは、私が開発しているフレームワークを利用してアプリケーションを構築しています。一般的にPHPのフレームワークと言えばYiiやCakeが有名ですが、アジア発のフルスタック型フレームワークとして名前を売り出したいと考えています。」(山北氏)
この独自フレームワークの利用はエンジニアの技術力を挙げる面でも一役買っているそうだ。
「フレームワークの設計には開発メンバーも参加し、アーキテクチャの問題や生産性を向上させるための仕組みを定期的に話し合っています。このようなディスカッションは、オブジェクト指向設計やデザインパターンの経験有無に関わらず討論できる場でもあるため、盛り上がることが多いです。」(山北氏)
■オフショア開発の今後
「今後はより品質の高いシステムの開発と開発者の教育を目指している」と山北氏。
以上、オフショア開発に携わるエンジニアの意見をうかがうことができた。開発会社側の具体的な工夫が垣間見えたのではないだろうか。
なお、テラスのグループ会社であるセタ・インターナショナル株式会社は10月9日(水)から11日(金)まで東京ビッグサイトで開催される「ITpro EXPO 2013」に出展し、ベトナムパビリオンの一角を担い、ベトナムオフショア開発のサービスを紹介するという。
オフショア開発について直接相談できる良い機会となるはずだ。(小間番号:東5ホール ブースNo.11-4 ベトナムパビリオン内)
次回は、ベトナムから見た日本のオフショア開発について話を聞く事にしよう。
■株式会社テラス
■オフショア開発に関連した記事を読む
・ベトナムオフショア開発成功の鍵は「採用」「教育」「信頼関係」~日本品質のオフショア開発を目指すセタ・インターナショナル~
・現場のエンジニアにも大きなメリット!GDO 村松氏が語るオフショア開発の現状~ 要求を確実に伝える能力がエンジニアに問われる時代に ~
・大幅なコスト削減を実現!オフショア成功企業が語る活用の秘密~GDOはなぜベトナムを選んだか?~
・コスト削減でも日本と変わらぬ品質!いま注目されているオフショア開発とは?
「ベトナム人と日本人の価値観でお互い近い部分として、仕事に真面目に取り組む姿勢があります。開発体制の基盤さえ整えば、ベトナム側と日本側が協力することによって大規模プロジェクトを運用していくことができると思う」と山北氏は言う。
ただ、そうしたメリットの下ですぐにプロジェクトが円滑に進んできたのかというと、そうではなかったのだそうだ。やはり、いくつかの問題が発生したという。そこで実際に起こった具体的な問題とその対策について話を聞いた。
■オフショア開発の問題と対策
オフショア開発を始めてすぐ、日本側とベトナム側とでコミュニケーションギャップが生じたと山北氏。
「普段ベトナムとのコミュニケーションは音声チャットを利用しています。その場では上手く伝えたつもりでも、説明不足やお互いの認識の違いで、こちらが想定していたものとは異なる成果物があがることが多くありました。そのせいでスケジュール通りに作業が進まず、納期の遅れや品質の低下を招きました。」(山北氏)
それでは、そもそもの原因はどこにあるのか。
「これらは、日本のプロジェクトでは一般的なシステムの背景をベトナム側と情報共有していなかったことが原因ではないかと考えます。」(山北氏)
その一例を挙げてもらうと
『ベトナム側に依頼したWebアプリケーションの会員登録機能で、ユーザーが確認画面へ遷移後、「戻る」をクリックしてしまうと、フォーム上の入力情報が保持されていないというようなケースがありました。日本ではこのような場合、ユーザーが入力した情報は保持しておくことが一般的ですが、仕様書に書く程のことでもない(当然情報は保持しているだろうという想定で)と説明していませんでした。』と山北氏。
上記の様な些細な認識の違いが、いくつか積み重なることが原因で、スケジュールのずれが多発したという。それでは、これらの問題を解消するためどのような対策をとったのか?
「BSE、エンジニアとのコミュニケーションを多くとるようにしました。幸い、日本からベトナム(ハノイ)へは飛行機で5時間と、そう離れてはいないということもあり、プロジェクト開始時は現地へ往訪してキックオフミーティングを開催し、日本側で設計した要件定義・外部仕様書を元に認識のすり合わせをBSE、エンジニアと共に行ないました。」(山北氏)
このように開発メンバーと密なコミュニケーションをとることにより、現場から問題点や意見をヒアリングし、新しいプロジェクトへフィードバックすることができたという。
次に問題となったのは、システム開発の進捗管理についてだった山北氏はいう。
「オフショア開発ではシステム設計の上流工程を日本のエンジニアが行い、開発工程(プログラミング)をベトナムで進めるパターンがほとんどです。この時に問題となりやすいのが実開発の進捗管理のマネージメントです。これは日本のプロジェクトでも起こり得ることですが、オフショア開発では、母言語が異なることもあり、仕様の伝達ミスや、細かなニュアンスの違いで想定工数より実工数が増えやすい傾向があります。」(山北氏)
そこで山北氏は、その対応として以下のような手法を取り入れた。
1.仕様書をWikiベースに変更
「日本では仕様書をExcelで書くケースを多く見ますが、Excelは元来仕様作成ツールではないため、更新の差分が取りにくい問題があります。Webアプリケーション開発では仕様変更が発生しやすいため、翻訳を必要とするオフショア開発では仕様書の作成にExcelを使うことは非効率だと考えました。」(山北氏)
そのため、同氏は全ての仕様書をWikiベースに変更し、日本側のエンジニアが起こした仕様書を元に翻訳者がベトナム語の仕様ページを作成するようにした。そのことにより、開発者に迅速に新しい仕様を伝達することができるようになったという。これは仕様変更時の実装漏れ(伝達ミス、翻訳忘れによる)を減らす結果へも繋がった。
2.スクラム方式の導入
またプロジェクト形式によってはアジャイル開発で一般的なスクラム方式を導入し、スプリントを一週間として進捗の確認や調整、問題点のフィードバックを繰り返し行ったという。
「これによって認識のズレや開発現場で起きている問題をほぼリアルタイムに把握することができました。」(山北氏)
■オフショア開発を進める上での工夫
上記で述べた問題や対策以外にも、オフショア開発を円滑に進めるために、実施していることがあるという。
1.開発工数を算出する際にバッファ期間を設ける
「プロジェクトによってはシステムに複雑なロジックを組み込むケースがあります。このような場合、必ず開発者レベルに内容を把握してもらった上でバッファ期間を設けた工数を算出しています。日本のSEが想定する工数と、ベトナムの開発者が想定する工数(実装方法)で剥離がないことを確認するのが目的です。」(山北氏)
バッファを設ける理由はそれだけではない。
「ソースコードレビューやリファクタリングの時間を設けるためでもあります。ソースコードを一定の品質で維持することと、技術者の教育をすることが目的です。」(山北氏)
2.エンジニアの教育
上に述べたようにオフショア開発を進める上では、プロジェクトを進行すると共にエンジニアの教育も行うことが重要であると山北氏は語る。
「要件定義や納期から脱線しないレベルで、可能な限り新しい技術をシステムに取り入れています。Web業界は技術の進展が早いため、エンジニアには様々な技術と向き合って、根底となる技術力を向上させて欲しいと考えているからです。」(山北氏)
教育を目的としたハッカソンを実施し、アプリケーションのロジックを提示して、より効率の良いクエリーの書き方やアルゴリズムをチームメンバー同士で競わせることもあるという。
また同社では独自のフレームワークを採用している。
「PHPを利用した一部のプロジェクトは、私が開発しているフレームワークを利用してアプリケーションを構築しています。一般的にPHPのフレームワークと言えばYiiやCakeが有名ですが、アジア発のフルスタック型フレームワークとして名前を売り出したいと考えています。」(山北氏)
この独自フレームワークの利用はエンジニアの技術力を挙げる面でも一役買っているそうだ。
「フレームワークの設計には開発メンバーも参加し、アーキテクチャの問題や生産性を向上させるための仕組みを定期的に話し合っています。このようなディスカッションは、オブジェクト指向設計やデザインパターンの経験有無に関わらず討論できる場でもあるため、盛り上がることが多いです。」(山北氏)
株式会社テラス シニアブリッジエンジニア 山北 尚道 氏 |
■オフショア開発の今後
「今後はより品質の高いシステムの開発と開発者の教育を目指している」と山北氏。
株式会社テラス シニアブリッジエンジニア 山北 尚道 氏 |
以上、オフショア開発に携わるエンジニアの意見をうかがうことができた。開発会社側の具体的な工夫が垣間見えたのではないだろうか。
なお、テラスのグループ会社であるセタ・インターナショナル株式会社は10月9日(水)から11日(金)まで東京ビッグサイトで開催される「ITpro EXPO 2013」に出展し、ベトナムパビリオンの一角を担い、ベトナムオフショア開発のサービスを紹介するという。
オフショア開発について直接相談できる良い機会となるはずだ。(小間番号:東5ホール ブースNo.11-4 ベトナムパビリオン内)
次回は、ベトナムから見た日本のオフショア開発について話を聞く事にしよう。
■株式会社テラス
■オフショア開発に関連した記事を読む
・ベトナムオフショア開発成功の鍵は「採用」「教育」「信頼関係」~日本品質のオフショア開発を目指すセタ・インターナショナル~
・現場のエンジニアにも大きなメリット!GDO 村松氏が語るオフショア開発の現状~ 要求を確実に伝える能力がエンジニアに問われる時代に ~
・大幅なコスト削減を実現!オフショア成功企業が語る活用の秘密~GDOはなぜベトナムを選んだか?~
・コスト削減でも日本と変わらぬ品質!いま注目されているオフショア開発とは?