こんにちは。
現在フリーランスエンジニアとして2社と案件を掛け持ちして働いている中村と言います。
実務経験は2年3ヶ月です。
本日のお話は「エンジニアの自己満による技術選定は企業の業績に悪影響を与える可能性がある」です。
確実にオーバーエンジニアリングな技術選定をしてしまった
半年前の話です。
僕はメディア開発をしている企業で常駐してました。
そこで「広告配信用のCMSを作ろう!」という話が持ち上がりました。
こちらの企業は、PHPフルスクラッチ or Laravel + jQuery or WordPressのいずれかでメディアを開発してました。
僕は当時、Nuxt.jsにハマっておりました。
このため、以下のような提案をしました。
「フロントをNuxt.js、バックをLaravelで作りましょう。このタイミングでNuxt.jsを取り入れていけば、今後新規メディアを立ち上げる際にページ遷移の速度向上が計れる。フロントをNuxt.js、バック(CMS部分)をWordPressみたいな組み合わせも出来る。WordPressであればライターを採用しやすいし、Nuxt.jsであればモダンな技術を使いたいエンジニアも採用しやすいでしょう」と。
当時は、「いい提案が出来た!」と胸を張っておりました、、
しかし、広告って基本内部でページ遷移しないですよね。
初期表示が早い方が大事ですよね。
SPAにする必要も全くないです、、
WordPressだけでいいじゃん、、、
メンテナンスコストが膨らんだ
まあそんなこんなでリリースしたのですが、その後自分はその現場を離れました。
僕が現場を離れたあとは、Nuxt.jsで作られたサイトをPM兼リードエンジニアの方がメンテナンスすることになりました。
PMの方は、実装以外にもやるべき仕事がたくさんあります。
並行して動いてる別プロジェクトのマネジメントやら、採用やら、色々、、
それなのに、僕がNuxt.jsを使ったがために、Nuxt.jsの学習の時間も割く必要性が出て、メンテナンスコストがグッと膨らんだのです。
つまり、僕の自己満により、PMの方の重要な稼働時間を大幅に奪ってしまったのです、、
これは会社からすると明らかな損失です。
技術的な先行投資をしたいにしても、今回まさに作るものに適している技術を選定するべきでした。
本当に反省しております。
まとめ
「この技術興味あるから使ってみたい!」という好奇心は大切だと思います。
ですが、要件ありき、解決したい課題ありきでのテクノロジーです。
使いたい技術があるのなら、本当にメリットが生じるかしっかり考えて、イけると思ったらそれで進めましょう。
ここでいうメリットとは、エンジニア内でのみ理解出来るような話ではなく、CTOやその他役員等数字を意識して動いている人たちにも伝わるようなメリットでなければなりません。
エンジニアの自己満に陥らないようにしましょう。