技術選定の心得
要件に適合しているか
学習コストが過大ではないか
- 学習コストの負担が大きすぎるとチームが疲弊する
- 特定の人間にしか理解できないシステムになる
保守性
- 学習コストと同じく特定の人間しか保守できないのでは意味がない
将来性
- 新しい技術やフレームワークに飛び付いたはいいが、すぐに廃れてしまうと無意味
廃棄可能性
- 導入した技術やフレームワーク、ベンダーなどを切り離すことができるか
- ベンダーロックインされて逃げられないといった事態は避けるべきである
流行や憧れだけで意思決定しない
- 技術者たる者、技術で遊びたくなるのは理解できるが、自分の興味関心の為だけに新しい技術を導入してはならない
- 公私を弁えるということ
トレードオフは妥当か
- 何かの為に何かを諦める事はありうる
- そのトレードオフは適切か、メリットとデメリットは釣り合うか
実績やコミュニティの活発さ
- 類似の規模やドメインでの採用実績があるか、問題が発生した際に情報を得られるか
- 利用者のコミュニティが活発でナレッジが簡単に蓄積されているか
運用コストと監視可能性
パフォーマンス特性の理解
- 想定される負荷に対して十分なスケーラビリティがあるか、レイテンシ要件を満たせるか、ボトルネックになりうる箇所は把握できているか?
セキュリティとコンプライアンス
- 既知の脆弱性への対応状況、セキュリティアップデートの頻度、業界標準やコンプライアンス要件への適合性
ライセンス上のリスク
- 商用利用の制限、派生物の扱い、将来的なライセンス変更のリスクはあるか
段階的な導入が可能か
- いきなり全面採用するのではなく、小さく試して検証し、必要に応じて撤退できる構造か