【リードミーくどうかいはつ】

README駆動開発 とは?

最終更新:
💡 使い方を書いてから、作るものを考える

実装に入る前にREADMEで目的や使い方の例を書き、利用者から見た振る舞いを検討する進め方。実装で分かったことを説明へ反映し、内容を更新していきます。

📌 このページのポイント
README駆動開発:使い方から考えるREADMEの案目的・使用例先に検討実装・テスト動作を作り確認する説明との照合分かったことを反映必要に応じて案を見直す最初の案を固定する義務ではない説明は人が見直す。自動更新ではない
説明の案、実装、照合を経て設計を見直します。利用者から見た使い方を考える進め方で、TDDや特定の公開手順を必須にはしません。
ひよこ ひよこ
実装前に何を書くの?
ペンギン先生 ペンギン先生
まず、何のためのソフトかと基本的な使い方の例を書こう。利用者が最初に読む説明から考えることで、作る機能やインターフェースを話し合う材料になるんだ。
ひよこ ひよこ
動かない使用例を書いて大丈夫?
ペンギン先生 ペンギン先生
最初は実装したい振る舞いを検討する案だよ。ただし公開する説明では、実装済みか予定かを区別しよう。使い方の例が動くかどうかを後から確かめることも必要だね。
ひよこ ひよこ
全部の仕様を先に決めるの?
ペンギン先生 ペンギン先生
一つのREADMEで要点を説明する考え方で、細部を全部確定する義務ではないよ。設計の案を利用者やチームと検討し、分かったことに合わせて変えていける。
ひよこ ひよこ
ペンギン先生 ペンギン先生
READMEで使い方を考えることと、テストを先に書いて実装するTDDは別の活動だよ。使用例からテストを考えることはできるけど、README駆動開発だけでテストが作られるわけではないんだ。
ひよこ ひよこ
実装を変えたらどうする?
ペンギン先生 ペンギン先生
READMEも見直し、例と実際の動作が一致するかを確認しよう。図の戻る矢印は、この見直しを表している。自動更新や、一度決めた仕様を変えないという意味ではないよ。
もっと詳しく知りたい人へ

小さなツールでも始められる?

例えば「誰の何を助けるか」「基本の使用例」「現在の制約」を短く書くところから始められます。これは実践用の例で、原記事が定めた必須テンプレートではありません。未実装の機能を実装済みのように説明しないことも大切です。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「README駆動開発」って出てきたら「利用者向けの説明を先に書き、実装と照合して育てる進め方」と思えばだいたいOK!
📖 おまけ:英語の意味
「README-Driven Development」 = README駆動開発
💬 Tom Preston-Wernerが2010年8月23日の同名記事で説明した考え方です。最初に使い方を考えることを重視し、詳細な文書を大量に書く方式とは区別しています。

参考資料

← 用語集にもどる