初めまして、@tech___memoです。
ふと記事を書こうと思いました。
マスターメンテナンスに1人月!?
早速ですが、タイトルに触れていきます。
現在の職場で、私はざっくり言うと オンプレで動くパッケージ製品を、Web技術を使って新システムとして開発するというプロジェクトに0→1のフェーズからアサインされました。
そこで、今のパッケージ製品上に簡単なマスターメンテナンスを作ろうと思ったらどれくらいかかるか見積もってもらいました。
数値は若干ぼかしています。
- 単体テスト含めた製作だけでだいたい9人日
- 詳細設計がだいたい2人日
- 開発者以外の受入テストとして合計3人日
- 他の工程はわからんけど、ソフトウェア開発 データ白書 2018-2019から考えるに、他にも合計5人日くらいかけてそう
ーーいや遅すぎん?
前提が大きく違うので簡単に比較はできませんが、前職で私は入社して半年頃にはマスターメンテナンスの製作を1人日でできていたし、要領のいい後輩は0.5人日でできていました。もちろん工数に単体テストは含んでいます。
そこから考えると、ありえないくらい遅すぎる。これは生産性が低いと言われても仕方ありません。
前職で客先にも出ていたエンジニアでもある私はめちゃくちゃビックリしました。
客先で「新規のマスターメンテナンス開発するのに1か月くらいかかるんですよ~」なんて私ならとても言えない。
1つのマスターメンテナンスで提供できる価値が1人月相当なんて、私はそうは思えません。
単純に金額に換算したら100~200万は行くでしょうからね。うちの単価がどうなってるかは知らんけど。
一方で、エンジニアという立場としては「あの時とは提供する機能が違うし、さすがに1人日では製作できるわけないな」という感覚も持っていました。
ドメイン的に盛り込むべき機能や、この業界特有のユーザー体験の向上を求めた機能があったからです。
それでも、設計の工夫により製作の工数を半分くらいにはできるだろうと思っていました。本当は製作以外にも口出したいんですけど、怒られそうなのでその辺は触れません。
20年選手の簡易見積もり
話は変わり、自社にWeb開発の知見があまりないということもあり、社外の力を借りていました。
そして20年以上エンジニアをされているという方に製作周りの簡易見積もりもしてもらいました。
そしたら、(具体的な時間は載せませんが)何に時間を使ったらそんな時間になるんや という見積もりが出てきました。
あまりに私の感覚と違うのでいろんな理由を考えました。
- ムダに難しい技術を使おうとしているため(たしかにやりたいことに対してムダに難しすぎると感じる機能の要求がビジネス側からあった)
- 作ろうとしているものの不透明性が高く、リスクが大きすぎるため
- メンバー全体(マネージャー含む)の技術面・ドメインに対する知識面でのレベルが総合的に低く、リスクが大きすぎるため
- 単位が実は人日じゃなくて人時であるため(それならさすがに少ない)
- その他、前提の認識が大きく違うため
結局理由は聞いてないんですが、言うより見せた方が速いなと思って、「私ならもっと早くできますよ」と手を挙げました。そして、簡易的な共通部品化の設計も含めて、とある1機能をその見積もりの半分以下の工数で作り上げました。
まとめと次回予告
前職の最初の上司からの教えにより、技術のキャッチアップって必要なくて、成熟した技術を適切に選び使っていくことが大事だと思ってたんですが、考えが変わりました。過去のやり方から抜け出せないと、競争力がどんどん落ちていく。
また、20年選手の見積もりのギャップの理由は「問題に対する解像度が低かった」ことにあると考えています。解像度の高め方とか、解像度を高めた後のシステムのモデリングで大事にしていることとかを、次回の記事にしようかなと思っています。※変わるかもしれません