見出し画像

そこそこ長らくバックエンドを中心に活動してきた私が考える技術選定について

TL;DR

- 技術選定の評価軸はたくさんあっても、その観点は2つに大別される
- その手段で、目的を達成できるか?その手段は妥当か?の2つの観点
- 妥当性の観点に分類される評価軸は、状況によってどこに重きをおくかが変わるため、網羅すればOKという単純な話ではない
- 技術選定はあくまで実現手段の1つなので、必ずしも作ること=正解ではない

おことわり

 あくまで、私個人の考えなので所属する組織等を代表する意見ではありません。また、これはあくまで1つの解釈を記したnoteです。唯一の正解を記した内容ではありませんゆえ、参考程度に読んでいただければ幸いです。

はじめに

 こんにちはmesh1nek0x0です。最近、私が中心となって技術選定を行う機会に恵まれました。その際、技術選定ってみんなやっていて、いろいろな記事はあるのですが、体系立てた考え方についてはあまり記事がないように見えた(※見つけられなかった)ので、今回の記事を書いてみようと思いました。

技術選定とは

 技術選定とは、目的を達成するための手段を検討することです。実現に必要な複数の手段について、いろいろな判断軸から事前に確認することで、大きな目的達成が頓挫してしまわないようにすることが狙いです。

photo by Kurtis Garbutt

 技術選定というと、システムを作るための言語やフレームワークの選定というイメージがありがちかもしれません。しかし、このイメージが強いと自分たちで作らないという手段が選択肢から抜けて落ちてしまうこともあるので、前提として気をつけたいところです。
 「作る=唯一の手段」ではなく、あくまで目的達成を第一として、ありものを利用するという手段も忘れないようにしたいということです。

技術選定が必要な理由

 技術選定をするのは、その手段の組み合わせで目的を達成できるかどうか?その手段は妥当かどうか?大きく分けてこの2つの観点から事前に検証するために行います。

事前に検証をしておかないと、以下のようなことが起き得ます。
いざ作ってみたものの...
- ランニングコストが高すぎて、利益が全然でない💸
- そもそも手段の用途が間違っていて目的達成の要件を満たせない🆖
- 採用事例が少なく、参考にできる知見が少ない 📝
- サービス拡大などで人的リソースを追加したいが、見合うエンンジアがなかなか見つからない🔎
- 採用技術に魅力がなくて、みんなが担当を避けがち🌀
...挙げてみると枚挙にいとまがないです。

技術選定の具体的な判断軸

 引き継げる人はいるか?開発スピードはどうか?など、こちらも挙げはじめるとキリがありません。いろいろな記事が公開されていますが、網羅という点では、以下の記事が広くポイントをおさえてまとめられているかなと感じています。

どの判断軸に比重をおくのか?

 判断軸は広く網羅することも大事ですが、目的達成の手段の妥当性は状況によって異なってくるため、どこに比重をおくのかも認識の上で選定していくのが大事だと感じています。

 たとえば、資金に余裕がない場合、どうしてもコストにかかわる評価軸は厳しく検討せざるをえません。あるいは、決済などお金にまつわるシステムのような場合は、信頼性に関わるため、データの整合性にかかわる部分について、より厳密な検討が求められる...といった具合です。

このあたりについては timakinさんのnoteが非常にわかりやすいです。

まとめ

 技術選定はむずかしいですが、意識すると良い点をおさえて向き合うことで、チームやプロダクトが悲しい結末を迎える可能性を低くすることは可能だと思います。
 考えているその手段の組み合わせで目的は達成できますか?それらの手段の妥当性について、今の状況ならどの評価軸について重きをおきますか?
 評価軸の網羅だけでなく、その比重についても意識してみると、むずかしい技術選定もすこしは道筋をたてやすくなるかもしれません。

次にあなたが技術選定をする機会があれば、ぜひ考えてみてください :)

余談

 技術選定の失敗は、なんらかの形になって現れるため、わかりやすい認識ですが、正解に関してはうまくいっている以上、基本終わりがなく、そのフィードバックは自分自身が振り返って確かめる必要があると感じています。どういう状況のときに、どの判断軸に比重をおきましたか?その結果は振り返ってみてどうでしたか?
ぜひ、あなたの知見もアウトプットして教えてください :)

カバー写真について

 技術選定といえば、目的を達成するために必要な手段を検討していくことなので、この手の組み合わせる系の写真がいいなと思って選びました。ブロックのパーツ以外を使うことも、目的達成の手段としては考えられるので、そういう点でもいい写真だなと思っています:)

この記事が気に入ったらサポートをしてみませんか?