オフショア開発で作業を依頼するときの仕様書の記述レベル

オフショア開発で発注先に渡す仕様書の記述をどこまで細かくするかは結構悩ましい問題です。

粗いレベルにするとあいまいな部分が多くなり、何が出来上がってくるか分かりません。
逆に細かくすると日本側の仕様書作成の負担が大きくなり、何のためにオフショアを使っているのか分からなくなってしまいます。

私は、細かくすべきだという考えで、仕様書の記述レベルをどんどん細かくするよう様式を変更していきました。ただ細かくするだけだと日本側の設計担当者が大変になるので、外部仕様(システムの外から見た振る舞い)は細かくしていくのですが、内部仕様(システムの内部構造)の設計はオフショア側に任せるようにして日本側の設計担当者の負担を減らすようにしました。そのために従来は詳細設計で行っていた一部の外部仕様設計(チェック仕様等)を基本設計で行うように変更しました。

いくつかプロジェクトを重ねて試行錯誤するうちに、このやり方は結構うまくいくようになり、私も自分のやり方に自信を持つようになっていきました。

ちょうどその頃、自分の会社の幹部と出張先で偶然会い、会食する機会がありました。
その幹部は、私の事業部からオフショア推進部署の責任者に異動していました。それでオフショア開発の話になり、仕様書の粒度の話になりました。

当然私は、仕様書は細かくすべきだと主張したのですが、その幹部はまったく逆の考えでした。

幹部「仕様書なんてやりたいことだけ書いて渡せばいいんだ。」
私 「それだと行間を読んでもらうことが多くなりすぎませんか。」
幹部「中途半端に細かく書こうとするから行間ができるんだ。要求だけにすれば行間もできない。」
私 「それだとオフショア側が仕様を勝手に判断して日本側の意図と違うものが出来上がりませんか。」
幹部「オフショア側も技術者なんだから、そんなに的外れなものは作らない。当社のダメな技術者に設計させるよりよっぽどましだ。」

現実はそんなにうまくいかないと考えながらも幹部の言うことにも一理あると思いました。
細かい仕様を決めたいお客様とそうではないお客様がいます。私のプロジェクトは、大概事前に仕様書を作ってお客様に承認して頂いてから製造に入るので、距離が離れたオフショアで設計するのは無理があります。
しかし、細かい仕様はそちらで決めといてというお客様や自社製品の開発の場合は、幹部のやり方も良いかもしれないと思いました。
もちろん、信頼できる設計者がオフショアにいることが大前提となります。

その後、いろいろな人と仕様書の粒度の問題を話しましたが、いろいろな考えの人がいて面白かったです。オフショア開発を経験している人は、この問題を考えているようで、みんな一家言持っていました。

月並みな結論ですが、自部署の状況に合わせて判断するのが良いようです。