原則

判断に迷ったときに戻ってくる場所。個々の技術より先に効く。

いい人を集める

いい人は何人いてもいい
どんどん任せて自由にやらせればいい

悪い人が入るとどんどん改悪されていく
悪い人が入ると膨大な説明・ミスによる膨大な手順が増え、マネジメントコストが大幅に増える

シンプルが一番

理解しやすく、使いやすいものほどよい

スケールするか

大きくなったり、人数が増えても問題が発生しにくい

推測ではなく実際にどうなるか

想定ではなく実際に動かす
デバッグする
エラー時にはログを見る

推測だけで物事を考えると、実際に実行したときに推測と違うことが多々起こる
簡単に実行できるものは実行してみて、どうなるか挙動を確認する

全体を俯瞰してみる

どこからどのように使われているか調べる

変化への対応をしやすくする

バージョンアップがしやすいか
別のものに変えやすいか
どこへでも移行しやすいか

なんのためか目的を考える

書くことが目的になっていないか

開発がシンプルで楽か

開発手順がシンプルか
普段の開発が楽か
開発手順の中で時間がかかるもの(ビルド等)がないか

費用対効果

たいして効果がないものに大きな費用を投下していないか
費用を投下した結果本当にそれをはるかに上回る効果があるかどうか

誰でも問題なく、動く仕組み構築のコストとよしなにやって改善してくれるいい人をメンバーに入れるコスト

管理が必要な多くの人と管理コストを払うか、特に管理はしなく任せても、よしなにしてくれる人か