orangeitems’s diary

40代ITエンジニアが毎日何か書くブログ

時代遅れの工数見積に技術者は付き合ってはいけない

f:id:orangeitems:20190517142127j:plain

 

時代遅れの工数見積

デジタル技術を使ってあるアイデアがあるとして、これを実装したいとします。過去は、これを実装するためにいわゆる「工数見積」という見積もり方法を用いていました。

・システムエンジニア 1人月
・プログラミング 2人月
・テスト 1人月

1人月とは、一日8時間 x 20労働日 = 160時間くらいのことを言います。

これに時給と稼働時間をかけると、大体の金額が出るんですね。

・システムエンジニア 時給3,500円 x 160時間 x 1人月 = 560,000円
・プログラミング 時給2,500円 x 160時間 x 2人月 = 800,000円
・テスト 時給2,000円 x 160時間 x 1人月 = 320,000円

合計1,680,000円、のような価格になりますね。

もちろん、実際は見積項目をもっと細かい工程に分けますがコンセプトは同じです。

IT業界が長い人は過去よく見かけた見積だと思いますし、今もこういう見積の仕方をやっている現場も多いでしょう。

 

この工数見積、完全に時代遅れなのです。業界はいい加減にやめるべきだと思います。

なぜ時代遅れか。

デジタル技術で実装した価値が跳ね上がっています。実装した結果が数千万、数億の価値があることだって普通です。実装した結果に対して、時給計算が合わないのです。

かつ、実装する技術もどんどん高度化しています。その上、高いスキルがあれば高度な技術も時間をかけずに使えるようになりました。昔は1日かければ1日相当のものが、5日かければ5日相当のものが作れたのですが、もはやそんな時間と仕事の関係はすでに崩壊しています。短時間でものすごい実装ができてしまいます。もちろん高いスキルがなければそんな結果は手に入りません。

平たく言えば、稼働時間と生み出される価値は、比例しないのです。できない人は何時間かけてもできませんし、できる人はすぐできてしまいます。しかも品質も良い。

この状況で、時間がかかればかかるほど見積が高くなるという考え方自体がナンセンス極まりないのです。しかし、まだ日本のユーザー企業には、この工数見積信仰がはびこっているのが現状です。

私も工数無しの見積を提出した時に、個々の作業の工数を出せと言うリクエストを何度も頂いたことがあります。都度お断りしていました。

 

具体的な例

具体的な例を挙げてご説明します。特に下記記事の著者に他意があるわけではなく、例としてわかりやすいので引用します。

 

biz-journal.jp

似たようなプログラムをつくった経験のある人なら4~8時間でできるはずと見積もったので、値段は試しに100ドルで出してみました。日本ではありえない値段ですが、過去の受注案件をチェックするとこの金額レベルの実績は無数にありました。4時間働いて時給2500円、8時間かかったとしても時給1250円になりますから、悪くない仕事だと考える人もいるはずだという想定です。

 募集開始ボタンを押した後、ひと休みしようとコーヒーを淹れてデスクに戻ると、早くもインドのエンジニアが1人手を挙げてくれました。彼の問い合わせに返事を書き、送信ボタンを押すと、その間に追加でパキスタン人やフィリピン人など4人が手を挙げていました。

(中略)

実は私はこのプログラムを開発するためにその1カ月前から動いていました。最初は知り合いに声をかけてみましたが、できないと言われるか、ものすごく高額の見積もりをもらうかのどちらかでした。そこで私は日本のクラウドソーシング会社で募集をかけてみました。10万円の料金設定で1週間募集しましたが応募はゼロ、問い合わせすらなかったのです。

 

つまり、

・クラウドソーシングであれば、100ドル(11,000円)程度でできる。
・日本の技術者には、できないか、100,000円の見積が手元に届いた。

ということです。

 

この記事を読んで、そもそも仕事の見積方法が旧来の工数見積であることがわかります。実装にかかる時間を見積根拠に置いているのは明らかです。したがって、10万円の見積は英語を読むのに時間がかかるからだ、だから日本の技術者は無駄な時間を浪費し海外の技術者の10倍もお金を使うのだという主張なのだと思います。

 

とんでもない。

 

日本の技術者は英語を読めますし、そもそもGoogle翻訳のようなツールを使いこなしています。外国語の壁はほとんどないと思います。

日本の技術者たちはその実装されたものがどれくらいのビジネス価値があるのかをシビアに測っています。AIやIoT、クラウドと言った新しい分野は今非常に価値があるのを知っています。たくさんの企業が、これらを早く取り入れないと国内の競合企業や外国の新規参入企業に負けてしまうと知っています。ですから、工数ではなく仕事の内容をみて見積金額をシビアに判断して算出しています。これらのジャンルの仕事が高騰しているのもわかっています。

4~8時間でできるかどうかは関係なく、それが何をもたらすかのほうがよっぽど重要なのです。そして、莫大な価値を生み出してしまうから、GAFA社員のような高給の技術者が生まれているわけです。時給換算することそのものが、時代錯誤だと思います。

 

技術者の本来価値は、以下の掛け算になるでしょう。

(1)要素技術の高度さ
(2)実装されるものの責任とビジネス重要性
(3)実装スピードと正確さ

 

これまで、どうもプログラミングは力仕事と思われていた節があり、コードステップ数で見積もったり、人月で見積もる文化がありました。(3)ばかりが注目されているのです。

デジタル技術の特性上、もっと本来価値に沿うべきだと思います。

技術者はその価値がもっと報酬に反映されるべきだし、その分技術者は日々研鑽する義務を負います。

上記の記事で日本国内に10万円でも手を上げる技術者がいなかったのは、仕事自体の本来価値を日本の技術者がもっと高く見積もったか、あるいは発注者の工数見積を嫌がったかのどちらかと思います。

海外に、本来価値がわからない技術者がいてダンピングして受注するとしても、長くは持ちこたえられないと思います。本来価値がわからないスペシャリストはビジネスパートナーとしてリスクです。ユーザーと供給者(ベンダー)が本来価値を共有できない仕事はうまくいかないと考えます。海外が安いから流行したオフショアも、結局は中国やインドの技術者も値段が変わらなくなっているのが現状です。どう考えても、価格はビジネスの本来価値に近づいていくのが本筋ですし、グローバルビジネスになっている以上国ごとの差はどんどんなくなっていきますし、実際そうなっています。

 

まとめ

デジタル関連だけには限りませんが、技術者の仕事の価値を時給換算するユーザーはまだまだいらっしゃいます。

これらにお付き合いして自分の価値を無駄に下げないようにするのが、今後、終身雇用制度が崩壊した日本での技術者・スペシャリストの生きる道だと思います。その価値観を共有できる発注者が市場でも勝利していくでしょうから、Win-Winの関係を発注者とユーザーが結べる世界にしていきたいものです。

 

追記(2019/5/18)

少しだけ追記しておきます。

原価計算するときに工数の見積を行うのは当然だしやるべきだし私もやっています。ただ、それを価格としてユーザーに提示するのは誤っているとの論です。

価格については全く別物で、

・どの程度のビジネス価値があるか
・他社ができない高度なものか
・価格に対して、見積もった原価が収まっていて、失敗して数倍の工数がかかるリスクも含めているか

多面的に判断して算出するべきだと思います。

例えば、他社は100時間かかるところを自社の研究開発にて1時間で実装できる場合、原価は小さくなり利益率がかなり高くなるはずです。交渉時の値引き余地にもなります。

単に1時間で実装できるから1時間分の工数に少しマージンを乗せて売る、なんていうビジネスにしてはいけないということです。

ご参考まで。