【Windows95の父こと中島聡さんに聞いてみた】ソフトウェア開発の見積り精度を上げたい

 こんにちは、中山です。今回はソフトウェア開発における見積もりについて、中島聡さんのメルマガで伺ったお話を書きたいと思います。

目次

1.中嶋聡さんのご紹介
2.ソフトウェア開発の見積り精度を上げるには
3.頂いた回答の取り扱いについて
4.あとがき(打ち出の小槌なんて存在しない)

1.中嶋聡さんのご紹介

 中嶋さんは言わずと知れたWindows95の父。以下、Wikipediaから引用させてもらいました。

 中島 聡(なかじま さとし、1960年 - )は、日本のコンピュータ技術者、プログラマ。早稲田大学高等学院、早稲田大学大学院理工学研究科修了。現在はUIEvolution(スクウェア・エニックスの子会社)のチーフソフトウェアアーキテクト。 マイクロソフトでWindows 95、Windows 98、Internet Explorer 3.0/4.0のチーフアーキテクトなどを務めた。

 また、本QAの舞台となった中島さんのメルマガについてもご紹介しておきます。今回ご紹介する内容は、すべてメルマガで掲載された本文そのままを引用しています。

週刊 Life is beautiful

画像1

2.ソフトウェア開発の見積り精度を上げるには

 ということで、早速いきましょう。質問と回答です。

質問

 日本のソフトウェア開発にて主にプロジェクトマネージャーを担当している者です。

 受託開発の見積り精度を上げたいのですが、どうしても上手く行きません。WBSを洗い出し、様々な見積り手法を試すのですが、往々にして見積り工数をオーバーします。

 もちろん、見積り結果に対してバッファを設ければ工数オーバーを防ぐことが可能なのですが、個人的な考えとして、根拠のないバッファを設けることがどうしても後ろめたい、というか納得できません。というのも、それはソフトウェア本来の価値(適正価格)では無いと考えるからです。

 お客様が納得すればそれで良し、と割り切ればそれまでですが、是非一度、日本、海外のソフトウェア開発に精通された中島さんのご意見を伺えればと思います。

回答

 ソフトウェア開発の見積もりは本当に難しいですよね。難しそうなものがアッサリと動いてしまうこともあれば、たった一つの問題が解決しないために、予定よりも何倍の時間がかかってしまうことがあります。特に大勢の開発者が関わっている場合、エンジニアごとの開発効率が大きく異なるため、工数を単純に頭数で割って納期を割り出すことは、ほぼ不可能です。

 結局のところは十分なバッファを設けて、見積もりを出すしかないと私は思います。約束した納期に遅れたり、納期に間に合わせるためにクオリティを落としたり、という仕事を続けていれば、顧客は離れて行きます。

 私自身が仕事をする場合には、正式な納期を決める前に「準備期間」をもらい、その準備期間に少数精鋭で、顧客が欲しがっているものを、ある程度ハリボテでも良いので作ってしまい、その期間中に「大まかな設計をする」「プロジェクトの難易度を肌感覚で知る」ことをした上で、より確実性のある開発コストを算定し、さらにそれに多少のバッファを設けて納期として提出します。

 ちなみに、このテクニックは、受注開発であっても、自社製品・サービス向けの開発でも使える手法なので、覚えておくと良いと思います。私が世の中に送り出したソフトウェアは、いずれもこの手法で開発しています。

 以上の通りです。とても丁寧に回答頂けて震えています 笑。

3.頂いた回答の取り扱いについて

 なお、今回のQAでは頂いた回答の取り扱いについも確認してみました。話が逸れますが念のために公開しておきます。

質問

 先日、質問をさせて頂いたものです。この度は回答有難うございました。

 頂いた回答は私の考える手法とも近しく、何やらそれだけで安心してしまいました。結局の所、信用を得る為には自分のやり方を地道にやるのが一番だな、そう考えさせられた次第です。

 ところで、頂いた回答についてですが、宜しければ私のnoteにて公開させて頂きたく。原文そのままの掲載について可能かどうか、お手数ですがお返事頂けないでしょうか?

回答

 私のメルマガの回答やコメントなどを、note やブログで公開することは、引用元(このメルマガ)を明確にしていただける限り歓迎です。唯一迷惑なのは、このメルマガの全文を単にコピペしただけのブログのようなものですが、「こんな質問に対してこんな回答があった」、「この記事に関して、こんなコメントがあった」などの引用であれば、自由にしていただいて結構です。

 それにしてもこの質問、個人的にはメルマガ掲載用ではなく運営サイドに向けたつもりだったんですよね。ところが、翌週のメルマガで掲載されるっていう、素敵の裏切られ方をしたQAでした。今思うと中島さんも周知する意味があったんでしょうね。

4.あとがき(打ち出の小槌なんて存在しない)

 今回のQAでは、見積りの精度を上げる方法として「バッファは積むしかないのか」という質問に対し、「バッファを積むのはやむ無し」と回答を頂いています。これには正直ホッとしたところで、考えることは皆同じなんだなぁ、としみじみ。

 また、「少数精鋭でハリボテを作る」という意見に対しても激しく同意しています。私自身、モックアップの作成には注力しており、必ず要件定義のタイミングで設けるようにするからです。作ったモックアップは、要件定義以降の工程でも顧客、開発者問わず会話をする際に使うようにしています。モックアップを使うことで認識の不一致を防ぎプロジェクトのゴールを常に明確にすることがが狙いなんです。

 こうやって頂いた回答を解釈していくと、結局のところは「見積りの世界に打ち出の小槌なんて存在しない」ということなんですよね。見積りの精度を上げるためには、一つ一つの取り組みを積み重ね、後は経験に応じてバッファを乗せるしかないんだなと感じました。

 もちろんプロジェクトは見積りだけに留まらず、見積りを形に変える作業が必要です。せっかく見積もった工数・金額が絵に描いた餅とならないよう、そこは実現性の高いエンジニアと手を組むなどの策が必要でしょう。個人的には七人の侍で取り組むのが理想ですが、大規模プロジェクトとなるとそういう訳にもいかず。。。メンバーが数十人、数百人でも精度高く運営していく、というのがプロジェクトマネージャーの腕の見せ所でしょうね。あー、難しいったらありゃしない!


 以上、「ソフトウェア開発の見積り精度を上げたい」でした。

◇◆◇◆◇

 いかがでしたでしょうか。今回の記事が皆さんにとっての気付きになれば幸いです。気に入って頂けた方は「スキ」「フォロー」のほどよろしくお願いします。またWBSに関するお仕事も募集していますので、興味のある方こちらの記事も合わせてご覧下さい。


この記事が気に入ったらサポートをしてみませんか?