Readme driven development

23
Readme Driven Development @koudaiii

description

Readme driven development AS Tech Talk 2014/10/15 at Shinjuku Grand Tower

Transcript of Readme driven development

Page 1: Readme driven development

Readme Driven Development@koudaiii

Page 2: Readme driven development

Profile

id: koudaiii fullname: Kodai Sakabe

Page 3: Readme driven development

Attention• ウォーターフォール型とは区別

• SIerが作るExcel設計書とは別物

• しかし、ドキュメント駆動開発の一部

Page 4: Readme driven development

Agenda

• README

• 課題

• Readme driven development

• 落穂拾い

Page 5: Readme driven development

README

Page 6: Readme driven development

Goxhttps://github.com/mitchellh/gox README.md

Page 7: Readme driven development

$ 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]

Page 8: Readme driven development

個人で 何かのツールを作る時

Page 9: Readme driven development

今まで自分の失敗談• 何かを作る際に、他者を巻き込むと謎のプロセス標準の設計書を求められたりと急に大掛かりになってツライ

• かと言って、先に作ったのはいいけどドキュメントを今更書くのがツライ

• ドキュメントなしだと、そもそも出来上がったものがぶれていたり、同じ説明を複数回するのがツライ

Page 10: Readme driven development

ようは、、• 精巧なドキュメントを強いられるのがしんどい

• 出来た後にドキュメントを書くのがしんどい

• 書かないとぶれやすいし、使ってもらえない

Page 11: Readme driven development

Readme Driven Development

Page 12: Readme driven development

Write your Readme first.

Page 13: Readme driven development

Readme Driven Development

• 創ろうと思った時が一番モチベーションが高い

➡出来上がった時にはもう書かれない‥

• 作る前の精巧なドキュメントはモチベーションを下げる

➡ライターじゃないんだよ!!

• 一番腰が上がっているうちに簡単なドキュメント

➡README!

Page 14: Readme driven development

最初にREADMEを書くことで• しっかり名前を考える

• そもそも何をするためのものなのか(やれること、やれないこと、やらないこと)

• 使い方を書く(インターフェース、パラメーター)

• 先に書くことで「あーここ漏れてるわ」て気づきやすい

• (なぜ、これを創ろうと思ったかの背景を書いてもいいかも)

Page 15: Readme driven development

最初にREADMEを書くことで• 最初に書くことでユーザーの方を向くことができる

• Amazonでは、プレスを書いてからやる

• PullRequestを出す前にやることを書くとぶれにくい

• 回り道を防ぐ。

• (そもそも何がやりたかったんだっけ?と立ち戻る)

Page 16: Readme driven development

README.md

Name====!Overview!Description————!Usage————!Install

Page 17: Readme driven development

READMEに書くこと

(なにこれ?)• Name 名前

• Overview 一言で概要

• Description 概要の詳細

• Demo GIFアニメ貼ったり:)

Page 18: Readme driven development

READMEに書くこと

(どうやって使う?)• Requirement 依存関係があれば書く

• Usage 使い方(この辺はコピペでできること)

• Install インストール方法(こっちもコピペできること)

Page 19: Readme driven development

READMEに書くこと

(その他)• Contribution 参加方法

• LICENCE ライセンス

• Document wikiでまとまってるページあればリンク貼る

• Ticket チケット化されている場合はリンクを貼る

• Deploy リリース方法

• Test テストを行う方法

Page 20: Readme driven development

落穂拾い

Page 21: Readme driven development

チケットやWIP書く時にも有効• チケット

• 動作を発生させるための手順

• その中で、問題と思っている箇所

• その問題と思っている箇所は、実際にどういう風になっているべきか

• おまけ そしてその理由(任意)

• 思い出せるチケットの書き方: 「動機」、「ゴール」、「実現案」

• http://www.clear-code.com/blog/2012/7/12.html

※自分のプロジェクトで書いたルール抜粋してきました

Page 22: Readme driven development

WIP(Work In Progress) Pull Request空コミットでPull Requestを送り⇒コメント欄にTODOリストを作りチェックボックスを追加⇒早い段階でタスクの宣言と共有が早い段階でできる

Page 23: Readme driven development

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