デブサミ二日目
移転しました。
ほかのセッションも聴いたのだが、とりあえず自分へのメモとして残しておく。OpenSocial ケータイ Game 戦国時代では、OpenSocial関係、Agility@Scale(アジャイル開発のスケールアップ)を実現する14のベストプラクティスでは、アジャイルに関する入門、そして、3週遅れのXP-僕とドワンゴのXP-では、最近よく聞くTDDについて、またどうやって開発が進んでいくのかを学ぶことができた。
とりあえず、最後に聴いたセッションのまとめ
3週遅れのXP-僕とドワンゴのXP-
- 1週目・・・方向を示す
ケントベック XP
- 2週目・・・道を示す人
- そして、自分たちは3週目の人間である。
やるべきこととしては、「高速道路の設置」
車輪の再開発はするな・・・プログラミングに関して言われてきたことであるが、
開発プロセスに関しても同じことが言える。
先人達が苦労して、積み上げて作り上げたプロセスに関しても同じく再開発はやめて、
そのプロセスをより良いものにしていきましょうよというお話。
XPとは・・・eXtrem Programingの略
押さえておくべき4つの価値として、
- コミュニケーション
- シンプルさ
- フィードバック
- 勇気
が挙げられる。
TDD・・・test-driven development
よくTDDというと、テストがどうとか、品質がどうとかいう話になるが、
developmentつまり開発手法であり、目的はテストじゃない。
とりあえず動くものを作り、それに対してリファクタリングを繰り返す。
これによって、プログラムの振る舞いを変えずに、内部実装を綺麗にしていく。
だから、よしのりさんは、このリファクタリングのためにテストを書いているとおっしゃっていた。
自分の解決すべき問題をより明白にする。
自動化のために、開発のために、すぐにテストを行う。
→これによって、常にテストが通ることが確認出来、自分のコードに自信を持つことが出来る。
TDDに関して伝わりにくいこと
- Unitテストになってしまい、網羅的にテストを書いてしまう
- 品質のためのものではない
どうやってこのTDDを伝えたのか?
入社したときには、ドワンゴはTDDで開発を行っていたわけではなかった。
ではどうしたのか?
あえて、ペアプロを志願して、テストコードを先に書く開発をした。
これによって、ペアプロをしていた相手もじゃあやってみようということで、少しずつ浸透させた。
ペアプロ
コードの共有になる。
この部分は○○さんが作ったからわからない。
コードを修正されたら、人格否定ととらえること。
そもそも、コードはチームのものあるため、気付いた人が修正すればよい話である。
コードの修正は、確かにへこむことだが、人格を否定することではなく、むしろ教育になる。
ということで、新人には、わかったこと、わからないこと、自分が書いたコードはブログに書くようして、コードをさらすことに慣れさせるそうだ。
見積もりと計画
この製品は1年後にリリースすることができるか?という質問に対して、答えられる人は少ない。
そこで、ユーザーストーリーに分割して、出されたストーリーに対して、
プランニングポーカーを行う。
プランニングポーカーとは、あるストーリーに対してどこぐらい時間がかかるかという見積もりを、ポーカーのカードによって全員が同時に札を出し、その見積もりを決定していくもの。
全員が同時に出すということが重要で、もしも、チーム内でバラツキが出た場合、上と下の見積もりを出したものに意見を出し、擦り合わせを行う
1ヶ月でリリース、2週間で1イテレート回すことを目標とするとよい。
これによって、1チーム○ストーリー消化出来るという見積もりが立つ。
誰が何をやっているか把握する
ドワンゴでも付箋紙を使って今誰が何をやっているかを把握していた。
また、進捗管理にはバーンアウト。なんでも、正直に書くことが重要で、FF13が発売されたときにはモノの見事に生産性が落ちていることがわかった笑。
Hudson
テストを自動で作ってくれるソフトと自分は認識した。
しかも、ビルドがこけたら、メールで教えてくれるとのこと。
会社では、XPは導入出来ないとしたら?
XPっぽくないことをやれと言われても、自分たちで作る。
DRYの精神
- 個人で導入してみる。
- 次にチームに広がり、会社へと働きかける
- 最後には社会へと浸透する
まとめ
大きなものは把握出来るように小さくする.
得た知識を即反映する
結果だけを求めてはいけない。
大切なのは、真実に向かおうとする意思である。
XP is about social change.