「人生は選択の連続である」という言葉もありますが、ソフトウェア開発も選択の連続です。 日頃から、技術やアーキテクチャの選定において、様々な意思決定やトレードオフを行う必要があります。ここでは、自分が技術的な意思決定の際に用いている考え方をまとめてみようと思います。 技術選定の観点 技術選定の観点は、例えば以下のようなものがあるでしょう。 主流か イケてるか 枯れているか 将来性はあるか 捨てやすいか セキュアか 情報の多さ 開発元、コミュニティ 開発生産性 開発スピード 既存のシステムとの相性 GitHubのスター数 学習コスト チームの技術力 人材確保の難易度 技術広報 組織構造との相性 お金(人件費や運用費など) しかし、これらだけでは不十分です。 単に技術を選ぶだけではなく、どうしたら将来的な事業に良いインパクトを与えられるか?あるいは、事業を守ることができるか?を考える必要がありま