Blog

February 16, 2011

オフショア開発の教訓2 – ブリッジSEの存在について(1)

オフショア開発の現実的な部分について、引き続き書きたいと思います。 ■ブリッジSEは大変な仕事 オフショア開発になくてはならないと考えられているのが「ブリッジSE」です。一般的には、日本の発注側企業に所属していて、開発プロジェクト全体を見渡す立場におり、仕様を含む発注側の意向をすべて把握した上で、オフショア開発チームとのインターフェースになります。原則的には、オフショア開発チームの使う言語、中国ならば北京語、インドならば英語を駆使して、現地のスタッフと意思疎通の齟齬がないようにします。 また、ブリッジSEには、プロジェクトマネジャー的な役割と、言語尾通訳の役割が求められるほか、オフショア開発チームが背景に持っている文化の違いについても理解して、文化の違いから来る行き違いがないように配慮することも求められます。一人二役ないし三役を果たすことになるため、一般的なSEよりは高い報酬が支払われるのが通例。ブリッジSEの報酬が高すぎると、オフショア開発で得られるコストメリットが薄まってしまうということもあり得ます。 一方、ブリッジSEに携わる者の視点から言えば、その日常は、日本側の意向とオフショア開発の現場が持つ現実的なもろもろの課題との間で板挟みとなることが多く、苦労が絶えないということもまた事実。特に、自分と同じ役割を持つ人間が日本のチームにも、オフショアのチームにもいないことから、「自分の苦労を誰もわかってくれない」という思いにとらわれることも、しばしばあります。 とはいえ、日本とオフショアの双方のチームを率いて、プロジェクトが完了した時の喜びはひとしおです。 ■ブリッジSEは大変な仕事 こうしたブリッジSEが、なぜ、必要とされるのでしょうか? 多くの場合、日本の発注者の側に、 「自分たちの要求には特殊なところがある」、 「自分たちの仕様にはきめ細かな対応をしてもらいたい」 → 「だから、オフショアチームに要求を伝えるには、その特殊な部分をよく理解する内輪の人間が必要だ」、 「だから、きめ細かな意思の疎通ができるインターフェース役が必要だ」 という思いがあるからだと思います。 これは、いわば、日本とオフショアのコミュニケーションについて、「日本は特殊なコミュニケーションを行う国だから、相応が必要だ」という、ある種の思い込みから来るのではないかと考えられます。 非常に大事な問題なので、次回もこの話題を続けます。
February 16, 2011

オフショア開発の教訓1 – 大切な「割り切り」

この投稿の筆者は、実は、ネットベンチャーの企業の経営に携わっていたことがあり、インドのオフショア開発の経験があります。様々なことを学びましたが、そのなかでも、教訓と呼べるものをいくつか記してみましょう。うまく行ったケースよりも、うまく行かなかったケースを記す方が、オフショア開発の実際をよくわかっていただけると思います。 ■日本で手間ヒマのかかる開発はオフショアでも手間ヒマがかかる 手間ヒマのかかる開発とは、途中でどんどん仕様が追加になるタイプの開発を指します。 理想的な開発は、「仕様作成→詳細設計→開発→テスト→完成」という流れで完結するわけですが、現実的な開発は往々にして、「仕様作成→詳細設計→開発→テスト→追加仕様→詳細設計→開発テスト→追加仕様→詳細設計→開発→テスト…」 という具合に、テストをした後で追加の仕様が加わることがあります。 これは、仕様を書く人と、そのアプリケーションを使うことになるユーザーの立場の違いを考えてみれば当然の話です。仕様書を書く人の頭の中には、完成したアプリケーションのイメージがありますが、それはこの世には実在していません。あくまでもアイディアの形で存在しているだけです。それを仕様書に落とし込みます。そしてそれが詳細設計に落とし込まれ、開発に回ります(実はここにおいて、注意深く詳細設計を吟味すれば、後々追加仕様が必要になることを避けられる可能性もあります)。 しかし、ユーザーは、そうした仕様を書いた人の頭の中のことなど、まったく考慮しません。単に目の前にあるできあがったアプリケーションを操作して、「ここが使いにくい」、「この機能はこうあるべきだ」という感想を漏らします。両者の間には、ある意味で、深い溝があると言えるでしょう。 ■いずれの場合も「割り切り」が肝要 このような、テストをして初めてわかる追加の仕様を、どんどん開発に回していくと、開発費は当然のことながら肥大化します。これは日本で開発していても、オフショアで開発していても同じです。開発のバックログはどんどんたまり、納期は迫ってきて、追加の開発要員投入も必要になる場合もあり…とやっていくと、開発費は当初見積の3割増し、4割増しということになっていくでしょう。 オフショア開発をしたけれども、さほどコスト削減の効果はなかったというケースでは、オフショア開発の人月単価が安いがために、こうした追加の開発の管理が甘くなり、結果としてコストがかさんだというケースもありそうです。 たとえオフショア開発をしない場合においても、開発費用をある一定の枠内に収めるためには、仕様を書く側、発注をする側における「仕様の割り切り」が必要になります。納期があり、予算が決まっているなかでは、途中で何らかの機能追加が必要だとわかったとしても、あえてそれには目をつぶる(それがクリティカルな問題に至るものでない限りは)。そのような割り切りが肝心です。 逆に、エンドユーザーから見た使い勝手、インターフェースのよさ、欲しい機能の実現など、そうした点を優先するのであれば、予算の増大や納期の延長などもOKという開発体制にしなければなりません。そちらを優先させるのであれば、こちらについては柔軟に対処するという、これもまた、割り切りが必要です。
February 8, 2011

オフショア開発の「マインドバリアー」を超える

自社の事業としてソフトウェアの開発を受託したり自社製品として販売している企業のなかにいらっしゃる方々。インターネットでサービスを提供したり物品を販売することが業務であるがために、ウェブサイトの機能を日常的に強化したり改修したりすることに携わっている方々。
February 7, 2011

EvaluateAppsでコマースソフトMagentoを試す

評価の高いコマースソフトMagento 様々なオープンソースソフト(OSS)の評価ができるEvaluateAppsで実際にソフトを試して見たいと思います。最近、非常に評判のよいコマースソフトMagentoを選んでみました。 ネット通販に関心を寄せる企業や個人の方はたくさんいらっしゃると思います。実際に始める場合、選択肢としては、楽天のようなショッピングモールに毎月の料金を支払って「入居」するか、自らサーバーを借りるなどして自前のネット店舗を立ち上げるか、2つの選択肢があります。楽天など大手のショッピングモールでは、毎月の負担が軽いコースも用意されていますが、それでも固定費として考えると負担が重いというケースもあるでしょう。一方、自らサーバーを借りてショップを立ち上げれば、毎月の固定費を低く抑えることも不可能ではありません。 また、ネットショップの形を作るコマースソフトが優れていれば、楽天などのショッピングモールでは利用できない様々な機能を使うこともできます。日本語版だけでなく、英語版や中国語版のサイトを並行して運用する。PayPalなどの外国人のお客様が使いやすい決済手段を用意する。お客様の購入履歴に合わせて多種多様なプロモーションを打つ。こういったことは、自前のネットショップがあり、優れたコマースソフトを使っていることで初めて可能になります。 そこでオープンソースソフトのMagentoの出番となります。Magentoは世界中で多くの大企業や中小企業に使われているコマースソフトです。また、ネットショップをこれから初めてみたいと考える個人の方にもよく使われています。本格的なコマース機能がオープンソースならではの無料のソフトとして使えるので、人気があるのです。 しかし、Magentoがいいなとわかったとしても、実際に利用を決める前には、試用をして機能やインターフェースを確かめて見ることが不可欠です。自分たちに使いこなせるのか。機能は揃っているのか。英語のメニューでまごつかないか、といったことを、試しにインストールした環境で評価する必要があります。EvaluateAppsでは、そうした試用がすぐにできます。 Magentoの管理インターフェースは英語 実際にEvaluateAppsで使用開始の手続きをして、Magentoの管理画面に入ってみました。メニューやインターフェースはもちろん、すべて英語です。Magentoには、日本語のショップを立ち上げるためのモジュールが用意されていますが、そうしたモジュールも、管理側として管理するインターフェースは英語になるのです。こうしたことも、実際にインストールした環境で試用してみないことにはわかりません。 Magentoをインストールした直後、お客様が見ることになるショップのトップページは、何の画像もない、まっさらなトップページです。ここに試験的に画像を入れて、日本語の文字を表示させてみることにしました。 Magentoでは、「CMS」というメニューがあります。 ここに、いま存在しているページのリストが表示されています。そのうちから、「Home Page」を選んで、編集画面を出してみました。 当然のことながら、スタイルシートとHTMLとは分けて編集するインターフェースになっています。HTML編集ページの方で、簡単に画像と日本語の文字を入れてみました。その結果を、お客様が見ることになるトップページで表示させた結果が以下です。 このようにしてショップのトップページを編集できることがわかりました。 こうしたごく簡単な試用程度であっても、自分でサーバーを立てて、あるいは低コストのサーバー環境を借りて、Magentoをインストールして環境を設定して…ということになると、1〜2日程度はかかってしまいます。EvaluateAppsを使えば、すぐにこれらの試用ができるので、時間節約になります。(D.I.)