トップ 3 のヒント。自動化、自動化、自動化。
継続的インテグレーションを読んでください。「ビルド」を作成することは、かつてはやや大きな儀式でした。「男」と「マシン」と「ファイル」を見つけ、すべてをパッケージ化する方法を知っているのは彼だけです.CruiseControlとそのいとこを使用すると、単体テストが実行され、開発ビルドが作成され、インストーラーが自動的にパッケージ化されます. どのツールも魔法のようなものではありませんが、各コンポーネントのセットアップとメンテナンスに時間を費やすことは、チームに大きな利益をもたらします。自動化されたビルドは日常生活の一部になります。
関連する一連のプロジェクトに取り組んでいる場合は、開発者がお互いのコードを読んで共有できるように、強力なコーディング規則とポリシーを作成することをお勧めします。ポリシーの一部は、コードの変更可能性を低下させる可能性があることを防止することです。リファクタリング、単体テスト、およびDRYを促進します。
Fowler が書いた内容を繰り返すつもりはありませんが、展開を自動化することは、時間と労力を費やす価値があります (もちろん、展開するものがあれば)。SQL スクリプトからサービス ユーザーの作成まで、すべてを自動化する必要があり、できればテスターがオンデマンドでデプロイできるシンプルな Web サイトにラップする必要があります。繰り返しますが、自動化により、QA ビルドをテストにデプロイすることが現実の問題になります。