アドベントカレンダー9日目です。
パーソンリンクではKibelaを使って知見の共有をしているのですが、そこで社内共有した内容を書いていこうと思います。
はじめに
これから初めて技術選定をする人、技術選定で悩んでる人向けにまとめた乱文です。
私個人の観点なのでこれが正解というわけではないのですが、大きく分けて3つの観点で技術選定しています。
観点1:要件を満たしている
- ユースケースにマッチしているか
- サービス要件を満たしているか
- 金銭的・時間的なコストを考慮できているか
観点2:デファクトスタンダードである
- 技術的負債になるリスクを減らしたい
要素1:信頼できる
- 本番環境での利用事例が多いか
- 開発母体がどこか
- メンテナが個人より組織のほうが信頼しやすい
- 定期的にアップデートされているか
要素2:広く普及している
- 本番環境での利用事例が多いか
- リソースの確保が容易か
- 増員や穴埋めのときに「他に使える人がいない」状態だと困る
- 情報が多いか
観点3:ROI(投資収益率)が高い
- 金銭的・時間的コスト低かつリターン高がベスト
- リターンが何かは目的や状況によって異なる
- 「金銭的なコスト削減」かもしれないし、「エンジニアとしての市場価値向上」かもしれない
さいごに
上記の観点をすべて満たす必要はなく、状況に応じてどの観点の比重を高めるかが重要です。
例えば、個人開発であれば観点3の比重が高くなるかもしれませんし、ビジネスとしてのプロダクト開発であれば観点1、2の比重が大きくなるかもしれません。
技術選定で悩んでる人の参考になれば幸いです。