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

README駆動開発 とは?

💡 説明書を先に書けば、迷子にならない開発術
📌 このページのポイント
README駆動開発 ― ドキュメントファースト 1. README 目的・使い方 API例を記述 2. テスト READMEの例を テストに変換 3. 実装 テストが通る コードを書く 4. リリース READMEが そのまま文書に README.md # MyLib シンプルなデータ変換ライブラリ ## 使い方 import mylib; mylib.convert(data) メリット ✓ 何を作るか明確になる ✓ ユーザー視点のAPI設計 ✓ スコープの膨張を防げる ✓ ドキュメントが常に最新
README駆動開発の流れ(説明書を先に書いてから実装)
ひよこ ひよこ

README駆動開発って、先にドキュメントを書くの?めんどくさそう…

ペンギン先生 ペンギン先生

最初はそう思うよね。でも考えてみて。READMEは「このソフトは何で、どう使うのか」を書くものだから、先に書くと「自分が何を作ろうとしているのか」がクリアになるんだよ

ひよこ ひよこ

コードを書きながら考えちゃダメなの?

ペンギン先生 ペンギン先生

ダメじゃないけど、コードを書き始めると細部にのめり込んで全体像を見失いがちなんだ。READMEを先に書くと「このライブラリはこう使える」というゴールが定まるから、寄り道が減るんだよ

ひよこ ひよこ

どれくらい詳しく書くの?

ペンギン先生 ペンギン先生

プロジェクトの概要、インストール方法、基本的な使い方、APIの例くらいが目安だよ。コード例を含めると、実装前にインターフェースが固まるから、TDDのテストも書きやすくなるんだ

ひよこ ひよこ

実装してるうちにREADMEの内容が変わったらどうするの?

ペンギン先生 ペンギン先生

変わったら更新すればいいんだよ。大事なのは「最初に書くこと」で、「絶対に変えないこと」じゃない。ただ、大幅に変わるなら設計の見直しサインかもしれないね

ひよこ ひよこ

オープンソースだけの話じゃないの?

ペンギン先生 ペンギン先生

社内ツールやマイクロサービスでも効果的だよ。実はAmazonの「プレスリリース駆動開発」も似た発想で、リリース発表文を先に書いてから開発する。顧客視点で考える習慣が、良いプロダクトを生むんだよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「README駆動開発」って出てきたら「説明書を先に書いてから実装する開発手法」と思えればだいたいOK!
📖 おまけ:英語の意味
「README-Driven Development」 = README駆動開発
💬 Tom Preston-Werner(GitHub共同創業者)が2010年にブログで提唱した手法だよ。「READMEを書けないなら、そのソフトウェアは作るべきじゃない」という名言が有名だね
← 用語集にもどる