こんにちは~ Webエンジニアのマッシュルーム🍄です!
エンジニアをやっていると、新しい技術を採用する話はよく出てきますよね♪
- Reactを導入しよう
- Next.jsに移行しよう
- DynamoDBを使おう
- AIを開発に取り入れよう
新しい技術を採用する話は、どちらかと言うと盛り上がります^^
ですが実際の現場で難しいのは、採用することよりも捨てることだと感じています。
📋 目次
1.新しい技術を入れる理由は説明しやすい
新しい技術には魅力がありますよね。
例えば、
- 開発効率が上がる
- パフォーマンスが改善する
- 保守しやすくなる
- 将来性がある
など、導入する理由を挙げるのは比較的簡単です。
技術記事もたくさんありますし、成功事例も見つかります。
つまり、
「なぜ導入するのか」
は説明しやすいんです。
2.捨てる理由は説明が難しい
一方で、
「なぜ捨てるのか」
は意外と難しいのです。
例えば、
- 長年動いているシステム
- 特に障害は発生していない
- 利用者もいる
こんな状態だと、
「そのままで良くない?」
という話になります。
確かにその通りです。でもエンジニア側から見ると、
- 誰も詳しくない
- ドキュメントがない
- バージョンが古い
- 保守コストが高い
といった問題を抱えていることもあります。
しかし、これらは数字で表しにくい。
だから捨てる判断は難しいのです。
3.「動いている」は安心材料ではない
個人的に怖いのは、
動いているから大丈夫
という状態です。
動いていることと、安全であることは別です。
例えば古いライブラリ。
5年間ノートラブルかもしれません。
でも、
- 開発終了
- セキュリティ更新停止
- サポート終了
となっていたらどうでしょう。
今は問題なくても、
問題が起きた時に誰も助けてくれません。
むしろ、
問題が起きる前に捨てる
という判断の方が重要だったりします。
4.捨てるのは技術だけではない
これは技術そのものにも言えますが、コードにも当てはまります。
例えば、
「将来使うかもしれない」
と思って追加した機能。
実際には1年間使われなかった。
そんな経験はないでしょうか。
機能を追加することには価値があります。
しかし、使われない機能を残し続けることにもコストが発生します。
- コード量が増える
- 理解コストが増える
- テスト範囲が増える
つまり、残すことにも責任が発生するのです。
5.採用よりも、捨てる判断に経験が出る
以前の僕は、新しい技術を知っている人がすごいエンジニアだと思っていました。
もちろんそれも大切です。
でも最近は少し考えが変わりました。
本当に難しいのは、
何を採用するか
ではなく、
何を捨てるか
だと思っています。
残すものを選ぶ。
捨てるものを選ぶ。
その判断には、システムへの理解や運用経験が必要になります。
6.最後に
いかがでしょうか!
少し湿っぽい内容になってしまいましたね。僕らしくない...😶🌫️笑
さてさて
技術は増やすことができます。
でも、増やした技術はいつか整理しなければなりません。
新しい技術を導入する時、僕は最近こんなことを考えるようになりました。
「これを採用する理由は何だろう?」
そして同時に、
「将来、これを捨てる時はどうなるだろう?」
採用の話は盛り上がります。
でも本当に難しいのは、案外その先なのかもしれません。
難しいのは「手に入れること」ではなく、「手放すこと」であると僕は感じています。
それでは、また次回の記事でお会いしましょう~🍄

