無垢なシステムエンジニアの工数見積もりでデスマに巻き込まれないために


どうしてシステムエンジニアは無垢な人が多いんだろう。そう思いませんか。真面目と言うか、信じて人を疑わないというか。その方がいいことなんですが、それが拙い方に作用する場合があるんですよ。


例えば、自分の専門でない分野の工数を算出する必要があるとします。インフラエンジニアがインフラエンジニア用だけれど、アプリケーションをスクラッチで作ることになったとか、アプリエンジニアがサーバの構築をしなければならなくなったとか。


その工数を見積もるとき何をしますか。最終的にはアプリケーションなりサーバなりが「できました」と言えないといけない。そのゴールを目指すためには、作業を分解しますよね。プログラムを組むためには設計書が必要だし、作ったプログラムは作ろうと思ったプログラムが機能を持っているかを検証するテストをする必要があります。同じようにサーバの用途に応じたパラメータが必要になるので、ネットワークやアプリケーションの要件に応じたパラメータシートを作らないといけないです。そして、要件に応じて設定した機能がそのとおり動くかどうかを検証するテストをしないといけない。


どっちにしても当たり前の工程を踏まないといけないんですよ。要件→設計→開発構築→テスト、と。最終成果物と中間作成物の名前は似たようなものですが、その中身は作るモノによって変わります。そりゃそうですよね、違うものを作るのに同じプロセス上で作業をしているんですから。


作業を分解したら、工数を見積もる=想定するのですが、ここで過去に同じことをやった実績があって、その実績の数値が残されていたら、その数値を参考に「類推」見積もりをすればいいんです。あとはこの見積りで作業をするシステムエンジニアが持っているこの成果物を作成するための技術レベルでバイアスを掛けるだけです。


過去に同じような実績がない場合はどうすればいいんでしょうか。もう少し、探す範囲を広げて「似ている」実績がないか探してみましょう。べつのブランドの製品だけど同じジャンルだとか、他部署の実績だとか。


あとに残されたやりかたは、想像の世界です。それはとても根拠のない無謀なギャンブルであることを認識してやってほしいんですよ。あんなことが起こるかも、こんなことが起こるかも、と、思案して欲しい。だって、経験がないし、他の事例だけどそれっぽい自分の経験に変えるデータもないんですから。


それを、無垢なエンジニアは、すべてが自分が考える世界の中で何事も上手くいくケースで必要最小限の作業と工数で積み上げちゃうんです。


もう、やる前からデスマです。こういった見積もりをするシステムエンジニアには罪を犯しそうになっているという自覚がないんですよね。何回も書きますが、自分でそれじゃだめだ、と知らないんですから。


この現象をある先生は「質の悪い人が見積もりをする」と言っていましたが、「自覚のない悪意」と言ってもいいんじゃないかと思うんですよ。そのプロジェクトを後からキャリーする人にとっては。


じゃあ、「未踏の技術エリアはどう見積もるのよ」と思うかもしれないんですが、ちょっとでも何か作ってみる、他事例を無理やりでも当てはめて目いっぱいバイアスを掛けておく、出来なかったらできたところまでねと前提条件を付ける、ほかないんじゃないかと思うんですよ。現実的には。


どの手段で工数を見積もっても、どういう前提でその工数を積み上げたか、そのロジックをロジックをしっかり組立てておくことが最大のポイントです。これがあればどこを間違ったのか、どう対処すればいいのかわかりますから。