SlideShare a Scribd company logo
Readme Driven Development 
@koudaiii
Profile 
id: koudaiii 
fullname: Kodai Sakabe
Attention 
• ウォーターフォール型とは区別 
• SIerが作るExcel設計書とは別物 
• しかし、ドキュメント駆動開発の一部
Agenda 
• README 
• 課題 
• Readme driven development 
• 落穂拾い
README
Gox 
https://github.com/mitchellh/gox 
README.md
$ man hub 
$ man hub 
! 
HUB(1) 
! 
NAME 
hub - git + hub = github 
! 
SYNOPSIS 
hub [--noop] COMMAND OPTIONS 
hub alias [-s] [SHELL] 
! 
Expanded git commands: 
git init -g OPTIONS 
git clone [-p] OPTIONS [USER/]REPOSITORY DIRECTORY 
git remote add [-p] OPTIONS USER[/REPOSITORY]
個人で 
何かのツールを作る時
今まで自分の失敗談 
• 何かを作る際に、他者を巻き込むと謎のプロセス標 
準の設計書を求められたりと急に大掛かりになって 
ツライ 
• かと言って、先に作ったのはいいけどドキュメント 
を今更書くのがツライ 
• ドキュメントなしだと、そもそも出来上がったもの 
がぶれていたり、同じ説明を複数回するのがツライ
ようは、、 
• 精巧なドキュメントを強いられるのがしんど 
い 
• 出来た後にドキュメントを書くのがしんどい 
• 書かないとぶれやすいし、使ってもらえない
Readme Driven Development
Write your Readme first.
Readme Driven Development 
• 創ろうと思った時が一番モチベーションが高い 
➡ 出来上がった時にはもう書かれない‥ 
• 作る前の精巧なドキュメントはモチベーションを下げる 
➡ ライターじゃないんだよ!! 
• 一番腰が上がっているうちに簡単なドキュメント 
➡README!
最初にREADMEを書くことで 
• しっかり名前を考える 
• そもそも何をするためのものなのか(やれること、やれな 
いこと、やらないこと) 
• 使い方を書く(インターフェース、パラメーター) 
• 先に書くことで「あーここ漏れてるわ」て気づきやすい 
• (なぜ、これを創ろうと思ったかの背景を書いてもいいかも)
最初にREADMEを書くことで 
• 最初に書くことでユーザーの方を向くことができる 
• Amazonでは、プレスを書いてからやる 
• PullRequestを出す前にやることを書くとぶれにくい 
• 回り道を防ぐ。 
• (そもそも何がやりたかったんだっけ?と立ち戻る)
README.md 
Name 
==== 
! 
Overview 
! 
Description 
———— 
! 
Usage 
———— 
! 
Install
READMEに書くこと 
(なにこれ?) 
• Name 名前 
• Overview 一言で概要 
• Description 概要の詳細 
• Demo GIFアニメ貼ったり:)
READMEに書くこと 
(どうやって使う?) 
• Requirement 依存関係があれば書く 
• Usage 使い方(この辺はコピペでできること) 
• Install インストール方法(こっちもコピペで 
きること)
READMEに書くこと 
(その他) 
• Contribution 参加方法 
• LICENCE ライセンス 
• Document wikiでまとまってるページあればリンク貼る 
• Ticket チケット化されている場合はリンクを貼る 
• Deploy リリース方法 
• Test テストを行う方法
落穂拾い
チケットやWIP書く時にも有効 
• チケット 
• 動作を発生させるための手順 
• その中で、問題と思っている箇所 
• その問題と思っている箇所は、実際にどういう風になっているべきか 
• おまけ そしてその理由(任意) 
• 思い出せるチケットの書き方: 「動機」、「ゴール」、「実現案」 
• http://www.clear-code.com/blog/2012/7/12.html 
※自分のプロジェクトで書いたルール抜粋してきました
WIP(Work In Progress) Pull Request 
空コミットでPull Requestを送り⇒コメント欄にTODOリストを作りチェッ 
クボックスを追加⇒早い段階でタスクの宣言と共有が早い段階でできる
Reference 
• Rebuildfm(ep.52:27m20s~) 
• http://rebuild.fm/52/ 
• Readme Driven Development 
• http://tom.preston-werner.com/2010/08/23/readme-driven-development.html 
• Readme駆動開発を和訳してみた 
• http://syossan.hateblo.jp/entry/2014/08/04/165746 
• わかりやすいREADME.mdを書く 
• http://deeeet.com/writing/2014/07/31/readme/ 
• How to Write a Readme Worth Reading 
• http://orchestrate.io/blog/2014/07/16/how-to-write-a-readme-worth-reading/ 
• アジャイルが否定したものを見直そう 
• http://arclamp.hatenablog.com/entry/2014/09/13/182244

More Related Content

Similar to Readme driven development

[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakata[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakata
VOYAGE GROUP
 

Similar to Readme driven development (20)

今さら聞けない人のためのGit超入門 2019/11/21
今さら聞けない人のためのGit超入門 2019/11/21今さら聞けない人のためのGit超入門 2019/11/21
今さら聞けない人のためのGit超入門 2019/11/21
 
[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakata[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakata
 
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
ひしめき合うOpen PaaSを徹底解剖! PaaSの今と未来
 
今さら聞けない人のためのGit超入門 GitLab 13対応版
今さら聞けない人のためのGit超入門 GitLab 13対応版今さら聞けない人のためのGit超入門 GitLab 13対応版
今さら聞けない人のためのGit超入門 GitLab 13対応版
 
今さら聞けない人のためのgit超入門
今さら聞けない人のためのgit超入門今さら聞けない人のためのgit超入門
今さら聞けない人のためのgit超入門
 
oFの話題が殆ど出ない oF jp Summer Workout
oFの話題が殆ど出ない oF jp Summer WorkoutoFの話題が殆ど出ない oF jp Summer Workout
oFの話題が殆ど出ない oF jp Summer Workout
 
今さら聞けない人のためのGit超入門
今さら聞けない人のためのGit超入門今さら聞けない人のためのGit超入門
今さら聞けない人のためのGit超入門
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
 
Etherpad-lite導入
Etherpad-lite導入Etherpad-lite導入
Etherpad-lite導入
 
GitHub Copilotとともに次の開発体験へ
GitHub Copilotとともに次の開発体験へGitHub Copilotとともに次の開発体験へ
GitHub Copilotとともに次の開発体験へ
 
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
 
"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach
 
日本androidの会 中国支部 29回勉強会 github
日本androidの会 中国支部 29回勉強会 github日本androidの会 中国支部 29回勉強会 github
日本androidの会 中国支部 29回勉強会 github
 
Azure Functions 開発デプロイ環境を GitHub Codespaces で爆速に整える
Azure Functions 開発デプロイ環境を GitHub Codespaces で爆速に整えるAzure Functions 開発デプロイ環境を GitHub Codespaces で爆速に整える
Azure Functions 開発デプロイ環境を GitHub Codespaces で爆速に整える
 
Git勉強会
Git勉強会Git勉強会
Git勉強会
 
趣味でのCosmos DBとの付き合い方
趣味でのCosmos DBとの付き合い方趣味でのCosmos DBとの付き合い方
趣味でのCosmos DBとの付き合い方
 
Dockerを使ってみよう
Dockerを使ってみようDockerを使ってみよう
Dockerを使ってみよう
 
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけねGitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
GitHubのリポジトリ(32個)を 覗いてみよう。 ただし、READMEだけね
 
今さら聞けない人のためのgit超入門
今さら聞けない人のためのgit超入門今さら聞けない人のためのgit超入門
今さら聞けない人のためのgit超入門
 
Metahub for github
Metahub for githubMetahub for github
Metahub for github
 

Recently uploaded

2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
ssuserbefd24
 

Recently uploaded (10)

LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf20240523_IoTLT_vol111_kitazaki_v1___.pdf
20240523_IoTLT_vol111_kitazaki_v1___.pdf
 
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
Amazon Cognitoで実装するパスキー (Security-JAWS【第33回】 勉強会)
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 

Readme driven development