エクストリーム・プログラミング プラクティス
ソフトウェアの配信は、具体的な価値を生み出す、生きた機能の頻繁なリリースを介して行われる。
小さなリリースは、顧客がプロジェクトの進捗状況に自信を持つのに役立てられる。
顧客は事実に基づいてプロジェクトに提案を行うことができるため、チーム全体のコンセプトの維持を助ける。
プログラマーは、ソフトウェア設計に「シンプル・イズ・ベスト」のアプローチを取るべきである。 新しいコードが書かれるときはいつでも、作者は「同じ機能を導入するためのより簡単な方法はないか」と自問自答する必要がある。答えが「イエス」であれば、シンプルな方を選択すべきである。 リファクタリングは、複雑なコードをよりシンプルにするのにも使われるべきです。
システムメタファーとは、顧客、プログラマー、マネージャーなど、誰もがシステムがどのように機能するかを語ることができるストーリーのことである。 これは、チームメンバーが特定のクラス/メソッドの機能をその名前だけから容易に推測できるようにするクラスとメソッドの命名についての概念である。 たとえば、図書館システムは、借り手(クラス)の貸出_記録(クラス)を作成し、項目が期限切れになった際に目録(クラス)に対して「延滞_発生」操作を実行する。 それぞれのクラスや操作の機能は、チーム全体から見ても明らかである。
開発チームは常に最新バージョンのソフトウェアで作業する必要がある。
さまざまな変更や改良を加えたバージョンをローカルに保存しているチームメンバーがいるかもしれないので、数時間ごと、または大きな休憩が発生した際は、現在のバージョンをコードリポジトリにアップロードさせる必要がある。
継続的インテグレーションを行うことで、統合の問題によって引き起こされる、プロジェクトサイクル後半での遅延を避けることができる。