【リードミーくどうかいはつ】
README駆動開発 とは?
最終更新:
💡 使い方を書いてから、作るものを考える
実装に入る前にREADMEで目的や使い方の例を書き、利用者から見た振る舞いを検討する進め方。実装で分かったことを説明へ反映し、内容を更新していきます。
📌 このページのポイント
- コードを書く前に、目的と基本的な使い方をREADMEで検討する
- 利用者が何をできるか、使用例で具体的に考える
- 全仕様を先に固定することや、大量の設計文書を書くこととは異なる
- 実装で分かったことを反映し、説明と実際の動作を照合する
- TDDと組み合わせられるが、同じ手法でも必須の組み合わせでもない
実装前に何を書くの?
まず、何のためのソフトかと基本的な使い方の例を書こう。利用者が最初に読む説明から考えることで、作る機能やインターフェースを話し合う材料になるんだ。
動かない使用例を書いて大丈夫?
最初は実装したい振る舞いを検討する案だよ。ただし公開する説明では、実装済みか予定かを区別しよう。使い方の例が動くかどうかを後から確かめることも必要だね。
全部の仕様を先に決めるの?
一つのREADMEで要点を説明する考え方で、細部を全部確定する義務ではないよ。設計の案を利用者やチームと検討し、分かったことに合わせて変えていける。
テスト駆動開発と同じ?
READMEで使い方を考えることと、テストを先に書いて実装するTDDは別の活動だよ。使用例からテストを考えることはできるけど、README駆動開発だけでテストが作られるわけではないんだ。
実装を変えたらどうする?
READMEも見直し、例と実際の動作が一致するかを確認しよう。図の戻る矢印は、この見直しを表している。自動更新や、一度決めた仕様を変えないという意味ではないよ。
もっと詳しく知りたい人へ
小さなツールでも始められる?
例えば「誰の何を助けるか」「基本の使用例」「現在の制約」を短く書くところから始められます。これは実践用の例で、原記事が定めた必須テンプレートではありません。未実装の機能を実装済みのように説明しないことも大切です。
まとめ:ざっくりこれだけ覚えればOK!
「README駆動開発」って出てきたら「利用者向けの説明を先に書き、実装と照合して育てる進め方」と思えばだいたいOK!
📖 おまけ:英語の意味
「README-Driven Development」 = README駆動開発
💬 Tom Preston-Wernerが2010年8月23日の同名記事で説明した考え方です。最初に使い方を考えることを重視し、詳細な文書を大量に書く方式とは区別しています。