続:設計はUMLだけで済む

http://d.hatena.ne.jp/manhole/20041011#1097457833 の返信です。元ネタはhttp://d.hatena.ne.jp/hoso-kawa/20040930#1096528917にひもづくPJ-U(中国オフショアUMLだらけの開発)の話です。

オフショア開発指定で来る仕事(コスト削減に着眼した発注)が多いので、初めからオフショア開発前提です。規模が小さいプロジェクトはオーバーヘッドがかかって、かえってコスト高になるので国内でやりましょうと提案しますが、大抵でっかいです。でっかいので、いくらオフショア開発とはいえ(むしろ!)、うまくプロジェクトを遂行しないとデスマの危険がありますが、大成功を収めればそれだけコストを抑えた開発が可能となります。

id:manholeがおっしゃっているように「詳細な仕様書を自分たちで書いて、プログラム製造は他へ出す 」がオフショア開発の場合、「詳細な仕様書を書かず、その時間を使って自分たちでプログラムを組む 」が国内で開発を行う場合のプロジェクトの進め方です。もちろん国内でやる場合でも規模がある場合は詳細な仕様書を書きます。ただし、オフショア開発の場合でもいつまでも国内で詳細な仕様書を書いて、国外へ発注するわけじゃありません。私の野望としては、国外へ発注するプロジェクトのフェーズを徐々に上流へと持っていこうと考えています。

例えば詳細な仕様書を国内で書いて、国外へ持っていった場合、次に発注する時は概要が書いた仕様書を国外へ持っていき、詳細な設計書を起こす所から発注します。もちろん同じ所へ発注しなければこれは使えません。最初に詳細な設計書を持っていってるんだから、落とし所は分かったよね。んじゃ次は概要を渡すから詳細な仕様書を書いてみてよ。っとこれがどんどん上流へさかのぼっていきます。上流と言っても限界はあると思います。例えば要件定義まで海外に持っていけるかというと、無理でしょう。お客さんに国外へ行ってもらうか、国外から人を呼ぶか。交通費かかってしょうがないですから!(笑)海外へ持っていける工程には限界がありますが、ノウハウの委譲を繰り返す事により、仕様書書きもオフショア開発で行う事が可能でしょう。

それから、ここで書かれてるレベルの詳細な仕様書ってどうやって書いたのでしょう!?

お答えします。id:manholeさんの言うとおり「正しく分割・詳細化していけば」です。分析〜設計というフェーズがあって、システムが非常に細かい粒度まで落とし込まれています。実際に設計している人の中には、中国人もいてとても優秀です。UMLをさくさく書いて設計しているのは見ていて爽快でもありますよ(笑)順序良く細分化していったのは、手順どおりという感じですが、そのアウトプットが非常に正確なのは設計者が優秀と言わざるを得ない感じです。

そんな仕様書書く時間があるなら、プログラム書いて、リバースした方が効率が良い気がしちゃうくらいです。

については、結果が成功だから今回の場合は適切で正しかったと言えるでしょう。工程がどうあれ結果が全てですから。今回この疑問に答えるならば、仕様書を書く時間はとてもかかったが、オフショア開発でコミュニケーション(Q&A)のオーバーヘッドの削減、不明確な仕様の削減、品質の向上、プログラム開発期間の短縮ができた事により、結果適切であったと言えるかもしれません。

どっかにも書きましたが中国側の主張はこうです。「日本の仕事は技術的に難しい事はありません。仕様書が難しいです」と。海外だからと言って、技術者のレベルが日本より低いという偏見はありませんか?日本だってピンキリだと思いますが、海外だって同じです。優秀な人は、私なんかよりずーっとずっと優秀です。

今回、オフショア開発のコミュニケーションについてはいろいろ考えさせられましたし、仕様書やら開発やら課題も見えてきました。今後も続けてオフショア開発に取り組む事でもっと効率の良い開発ができるようになると思います。がんばるぞー!