オフショア開発について

前書き

本日は私がベトナムでやろうと思っているオフショア開発という業務についてざっと触れる。
その前に日本のIT業界における仕事の進め方について簡単に解説してから進める形にしたので、営業的な話には触れていない業界人や、非業界人にも読めるよう配慮したつもりである。
ただし長いので注意。講習資料などを整備している時に思ったが、日付をまたいで記述すると記事としての事後参照性が低くなるので、あえてまとめて書かせてもらった。

現在の国内IT業界の仕事について

はじめに

本章では日本国内のIT業界で現状行われている仕事について解説する。
IT業界の仕事には、ざっと次のような契約分類が存在する。

  1. 期間契約
  2. 案件契約
  3. その他

この中でまた「常駐開発」だとか「受託請負」だとか「商品開発」だとか「派遣契約」だとかもあるのだが、契約単位の大分類としてはこんなところだろう。
3は研究開発だとか、サーバ管理業務だとか、社員契約と業務が一緒になっているケースなどもあるので解説は省略。

期間契約

期間契約とはその名の通り、例えば2006年3月〜2006年7月まで等期間を決めて、特定の業務に関する契約を会社間で締結する契約である。
この契約で行われる業務は実質的になんでもありである。
期間契約と言えば聞こえはいいが、要は人員レンタルなので、「特定の業務」項を書き換えれば実質的にはなんでも出来る。もちろん、「特定の業務」がC言語によるドライバの開発であるにも関わらず、なぜか日夜お茶汲みをさせられていれば、会社の営業同士による話し合いを行う必要があるだろう*1
この手の業務は、主に「○○委託」または「○○請負」という名で契約が締結される。「○○」は大体「業務」という言葉が入るだろう。


さて、本項では特にこの期間契約による開発業務について述べる。
期間契約による開発業務とは、一見奇異に感じるかもしれない。開発業務とは「○○を開発するために行う業務」であるから、本来期間と開発は密接に結び付けられる代物ではない。
例として、前述の2006年3月〜2006年7月までの期間契約で、かつ開発案件Aというものを開発する契約を結んだとしよう。
この際、Aの開発期間は3月〜7月までに設定されており、順当に行けばこの期間契約と開発はマッチするように感じられるかもしれない。
が、例えば次のようなケースを考えてみてほしい。

  1. Aの開発が6月で完了した
  2. Aの開発が8月までかかった

この場合、契約した期間と開発の期間はマッチしない事になる。
解決策を先に掲示してしまうと、1は「残り一ヶ月は別案件をこなす」または「残り一ヶ月はAとなんらかの関連を持つ業務をこなす」が現在の主流であり、2は「新しく2006年8月〜2006年12月まで契約を締結する」または「新しく2006年8月の契約を締結する」が現在の主流である。


期間契約においての肝は以下3点。

  1. 一応の目安として期間で契約を結んでいるが、開発期間とは本質的に関係がない契約である
  2. 開発が遅延しているにも関わらず、開発を行っていた人員が途中で抜けるのは業務上現実的ではないので、開発が遅延した場合は新たな期間契約が結ばれ開発終了まで契約は継続される
  3. 会社間の支払いは、あくまでも締結された期間での契約によって行われる。つまり、開発が遅延した場合でも、会社がその気になれば契約を結ばないことも出来る


この契約形態による業務は、中小企業で多く行われている。
期間での契約なので、開発の成否に関わらず一定の収入を得られ、ローリスク・ローリターンの安定経営が実現出来るため、体力のない企業でこなしやすいのが最大の理由だろう。
それ以外にも、信用のおけない企業に開発を依頼する場合でも、この期間契約では多くの場合客先に常駐して開発業務を実行するため、依頼した企業が人員をコントロールしやすい点も挙げられる。
突き詰めていくと日本で主流の見積もり方法である「人月」という単位と、この期間契約による人員確保がマッチしている等の業界全体としてみた理由もあるが、その辺りは割愛しておこう。
期間契約に密接に関係している「常駐開発」という業務形態の、法的・会社的問題というのもあるが、これはまた別の日に記すことにする。

案件契約

案件契約もその名の通りだが、「期間契約」の項で述べた案件Aがあれば、そのAの開発が完了するまで、あるいはAの開発そのものを単位として契約を結ぶという契約形態である。
上で挙げた二つの例は、どちらかというと前者の契約形態はほとんどと言っていいほどない*2。「Aの開発が完了するまで」というのは、期間契約で締結される例が圧倒的に多いためである。
後者はIT業界の例ではなく恐縮だが、「家を建てて」という発注や、「この料理を作って」という発注と同じである。「このソフト作って」や「このネットワーク作って」などの発注となる。
この手の業務は非常に種類が多いため、契約書の名称定義は一定でないと判断して省略する。


本項ではこの契約による開発業務について述べる。
案件契約は期間契約と異なり、開発作業そのものなので感覚的にわかりやすいと思うが、「家を建てて」や「この料理を作って」と同じと説明した通り、次のような注意すべき問題がある。

  1. 家が手抜き工事で作られていた
  2. 作ってもらった料理で食中毒になった

いや、こんな例だと損害賠償ものだが、「バグ」と呼ばれるものは、これと同じである。手抜き建築であり、食中毒である。場合によってはもちろん損害賠償もありうる。
期間契約ではあくまでも契約が期間で締結されるため、「製造物責任」というものは発生しない。しかし案件契約では開発そのものを発注しているため、製造物責任は発生する。実は法的にはPL法と呼ばれる法律によって「ハードウェアに組み込まれていないソフトウェアに製造物責任は発生しない」となっているのだが、法律と契約はまた別個の代物である点を理解する必要がある*3
よって、案件契約での開発では手抜き工事や食中毒の責任は取らなければならない。
多くの企業で「バグ対応」と呼ばれる作業は、この当然の責務を果たす作業になる。
つまり、案件契約は「開発が完了し、納品したら終了するわけではない」という点に注意が必要という事だ。
クーリングオフのシステムのように、大抵の案件契約においては「納品後一年以内に発生したバグについては無償で対応する」という、おまじないのような一言によって事実上バグ対応作業に期限を定めている。このバグ対応期間中であっても「これはバグだ」「いや、仕様だ」という綱引きが行われるのだが、これはまた別の話なのでこの辺にしておこう。


案件契約における肝をまとめておこう。

  1. 案件契約は開発に関する契約ではあるが、バグ対応などを考えると開発が完了したら終了する契約ではない。
  2. 場合によっては損害賠償を請求されることもある。

案件契約とは言っても開発に関するものばかりではないので、他にも色々とあるのだが、ひとまずこの辺りを理解しておけば問題ないだろう。


この契約形態における業務は、中〜大企業において多くなる。
期間契約とは異なり、開発の遅延に伴う開発費上昇のリスクを負うのはもちろん、バグ対応の方法によってはちゃんと体制*4も整備しなければならず、案件規模によっては小規模の企業ではそもそも対応出来ない事もある。
損害賠償によるリスクへの対応や、いざ納期に間に合わないとなった時に強引に間に合わせる事の出来る体力などを考慮すると、本質的に小企業向けの業務ではないことは確かだろう。
ただし一つはっきりしているのは、本来開発とはこの案件契約で行うべき業務である。
開発を行う企業が自分の製造物に責任を持つのは当然であるし、期間契約は人員レンタルでしかなく、期間契約による開発は実質的に派遣業に限りなく近い*5
詳細は企業の方向性や、労働者と企業の契約なども関係してくるためまた別の文書で記すとしよう。
とりあえず、人材派遣の企業ではないと名乗るなら、その程度のリスクを犯すのは当然、ということを理解した方がいいということだ。団子屋を経営したはいいが食中毒が怖いから、団子を作る人間を他所の店に派遣するようなものだ。他所の店で作った団子は他所の店の団子でしかない。それでいいという選択も当然ありだし否定もしないが、それは人材派遣業であって団子屋経営ではない。

オフショア開発

オフショア開発とは

オフショア開発とは、端的に言うと海外の企業と結託して開発を推し進める手法だ。
案件契約であるか、期間契約であるかの区分は厳密に明記することはできないのだが、海外に発注するという特性上現実的には案件契約が多くなる。
発注書と仕様書を作って依頼し、その仕様書通りの成果物を発注書に沿った納品書と共に納品する、という一般的な案件契約の流れが多いだろう。
海外なので、期間契約の項で軽く触れた「人員を手元に置くから安心出来る」というメリットが失われるため、期間契約を結んでいても思うように成果が上がらないケースが多い。よって「発注書」と「仕様書」で厳密な契約を結び、責任の所在を明確にすることで、お互いの作業効率を高める案件契約が一般的となる。

オフショア開発のメリット

さて、海外に発注するメリットとはなんだろうかというと、端的に言って「安い」。この一言に尽きる。
例えば中国に発注した場合、大体例の人月という単位を出すが、人月にして30万程度とされている。日本では60万程度が現在の相場であろうから、単純に人月計算にすると倍も違うことになる。
ただ、オフショア開発をするに辺り、厳密な仕様書を整備する必要がある、進捗を発注側でもより密に管理する必要があるなど、確実に日本企業に依頼した場合より手間がかかるケースも多いため、中国に発注した場合の総開発費は日本企業への発注と比較して、70%程度だといわれている。
それでも一ヶ月5人の開発費を計算した場合、単純に70%とすると下表ほどの開きが出てくる。

発注側 1ヶ月 3ヶ月 6ヶ月 12ヶ月
日本 300万 900万 1800万 3600万
中国 210万 630万 1260万 2520万
差額 90万 270万 540万 1080万

本当はこんな単純な話ではないのだが、一応の目安としては参考になるだろう。
どこぞの企業が日本企業から受注を取り付け、中国に発注すれば、進捗管理等の手間賃を引いても中間マージンだけで年間1000万以上利益をあげられるわけだ。
日本企業への発注費用を人月/100万程度見ている企業なら、費用対価はさらに跳ね上がる事になる。また、あくまでも開発費は50%程度なので、やり方を上手くすれば70%も開発費をかけずに進めることも出来るだろう。

オフショア開発のデメリット

ただ、いいところばかりではない。
海外に依頼するには超えなければならない大きな壁が存在する。そのうちの最たるものが文化の違いであろうが、その文化の違いから派生する形で仕事の進め方の違いというものも存在し、仕事の進め方に相違がある以上仕事そのものに問題も起こりやすい。

  1. 仕様書の理解に相違があり、仕様書通りのものが作成されなかった
  2. 納期を遵守するという習慣がなく、納期に成果物が上がって来なかった
  3. 保守に関して意識の違いがあり、当然対応してくれる予定だったバグに対応してくれなかった
  4. ドキュメントが一切上がってこなかった

などなど。
通常の70%も開発費をかけて、全然違うものを納品された上バグ対応もやってくれないんじゃ話にならない。
開発費が浮くのはわかりきっているが、オフショア開発が思ったほど推進出来ない理由はここにある。

デメリットの解決策

さて、オフショア開発を行っている企業でも、そのデメリットを解決するための努力は行っている。
多くの場合、このデメリット解決策として「ブリッジSE」というものが存在する。最近では「ブリッジPL」だとか「ブリッジPM」だとか「ブリッジ・エンジニア」だとか色々な用語が出ているようだが、目指すところは同じである。
ブリッジSEは日本企業と現地企業の温度差を生めるために存在し、やり方は色々あるが、最も理想的なのは日本側に一人、現地側に一人ずつブリッジSEを配置し、日本側が発注元企業との温度差を、現地側が現地との温度差を埋め、最後にブリッジSE同士で互いに調整しあって思惑通りの成果物を作るやり方だろう。このやり方をどっかのサイトが名前をつけていたが、すまん、忘れた。


ブリッジSEは納期の遵守を現地チームに徹底させ、バグ対応の意識を浸透させ、ドキュメントを場合によっては翻訳または作成し、仕様書の内容を理解し伝達し、進捗を管理し、日本側との調整を行う役割になる。
まあ、難しいことを言っているわけではなく、やっている事は日本の一般的なプロジェクトリーダーと同じと考えればいいのかもしれない。海外ならではの特色があるため、ブリッジSEなどというバズワード的な呼び名をつけられている、ということだ。


この解決策で危険なのは、現地との仲介がこのブリッジSEに依存する形になるため、ブリッジSEがへぼければプロジェクト全体が潰れかねない点だろう。
いや、へぼいところに発注すればこけるのは当然なので、PLクラスの人員に依存するのはオフショア開発に限った話ではない。ないが、海外ではいざという時に発注側企業がカバーするという解決策をとりにくいのも事実であり、この依存性には注意を払う必要があるだろう。
要は、信頼のおけるブリッジSEを擁するオフショア開発企業を見つけるまでが、発注する企業から見たオフショア開発の超えるべき壁、と言い換えられるのかもしれない。
超えさえすれば、開発費は70%に落とせる。私語や愚痴ばかりで仕事をしない社員にうんざりしている企業は、いっそオフショア開発のブリッジ企業に転進するのも悪くない選択肢、かもしれない。

ベトナムにおけるオフショア開発
  1. ベトナムの平均月収は7500円である。
  2. ベトナム人のエンジニアはベトナム平均からすれば高いが、それでも2万5千〜5万程度である(最近は北米系企業が10万程度出しているケースもある)。
  3. ベトナム親日である。
  4. ベトナム人は勤勉らしい。
  5. ベトナム人の技術力は優秀らしい。

最後の二つが疑問系なのは、私がまだ現地とコンタクト取りきれておらず、人づてに聞いただけの情報であるためだ。参考程度に。
中国と比較して最も大きいのは、もしかしたら3なのかも、と個人的には思う。イメージ的にはタイに近い国と思っておけばいいだろう。
また、価格的には中国よりもさらに安いため、ベトナムにおけるオフショア開発は、中国の70%からさらに50%程度までに落とせる。企業からみた最大のメリットは、やはりこの点になるだろう。先の表では12ヶ月で1080万の差額だったのだが、ベトナムでは1800万に跳ね上がるという事だ。

まとめ

契約の単位とオフショア開発の話を結びつけるまで漕ぎ着けられなかったが、Blogで書くには長すぎるのでこの辺にしておこう。
本日はオフショア開発のメリット・デメリットと、その解決策としてのブリッジSEの存在、中国とベトナムの価格対比だけ伝わればいい。
あとは下記2点を記述する。今は空だが、玉稿次第リンクを正規化する予定。

  1. 期間契約の問題
  2. 案件契約 < オフショア開発?

*1:ここで当事者同士の話し合いをさせる企業があるが、セクハラ関係の話同様とても愚かな解決策だろう

*2:全く無い訳ではない

*3:用語を変えた方がよかったかもしれないが、適当な用語が見つからないため製造物責任と記しておく

*4:小学校の連絡網みたいなものだ

*5:実際派遣契約で行っている企業もある