2006-11-16(Thu) [長年日記]
■1
TDDミーティング@代官山
Rubyの本読書会が人大杉で参加しづらかったのでムシャクシャして開催した。参加者: id:secondlife、id:naoya、id:nagayama、そしてid:t-wada。面白すぎた。ありがとうございました。セカちゃんは正に「テスト厨」という言葉が似つかわしい状態になっていて面白かった。Test::Baseも使うだけの迎撃体制を自分のなかでいかに構築するか。IO.tty?を思いつかないような私ですから。
はてなのオフィスも見学させてもらった。わーい。はてな入った!! IT業界ならぬSI業界でも、いわゆるオフィス什器な事務机をプログラマは使うべきじゃないよねえ、と改めて感じた。
メモ: Cをリニアな発展させた言語としてのPerl。(そして、「バベル-17」としてのRuby)
Perlの天と地と。ところで向井さんが「Haskellはヘプタポッド言語である」と書いていたけれども、テストコード(RSpec厨としては「テスト言語」と呼びたい)もまたヘプタポッド言語的な性質を帯びているのかもしれない。変分原理。ーーとなるとそこから関数型言語と形式的仕様記述と契約による設計云々、という話へと連想は続いていきそうだけれども、私はそれを語るべきことばを持たない。なぜならクは駆動のクで、D is for Drivenだから。
■2 俺アジャイル
「アジャイル」という言葉は、Super Agileに限らず本邦Rails界隈でも濫用されている印象が強い。ぼくもアジャイルを定義するお。
ソフトウェア開発のコンテキストでアジャイルとはツールでもなければプロセスでもない。個人の態度とスキルをベースにチーム*1で成果を出すーー価値あるソフトウェアを提供し続けることだ。
アジャイルにソフトウェアを開発するあたって我々は次の5つの価値を重視するマインドセットを持つ:
- コミュニケーション
- シンプル
- フィードバック
- 勇気
- 敬意
このマインドセットとアジャイアライアンスの原則に基づき、「我々は、
- プロセスやツールよりも、人と人同士の交流を
- 包括的なドキュメントよりも、動作するソフトウェアを
- 契約上の交渉よりも、顧客との協調を
- 計画に従うことよりも、変化に対応することを
重視する*2」態度を身につける。
この価値と態度を具現化するために、我々はそれぞれが次の4つのスキルの研鑽を続ける:
- ストーリーを書く(Creating Stories)
- 計画を立てる(Planning)
- テスト駆動開発(Test-Driven Development)
- リファクタリング(Refactoring)
(Railsのコンテキストでのアジャイルについては、いつか書くかもしれないなあ)
リーン開発の現場 カンバンによる大規模プロジェクトの運営(Henrik Kniberg/角谷 信太郎/市谷 聡啓/藤原 大)
『なるほどUnixプロセス ― Rubyで学ぶUnixの基礎』
SCRUM BOOT CAMP THE BOOK(西村 直人/永瀬 美穂/吉羽 龍太郎)
実践テスト駆動開発 テストに導かれてオブジェクト指向ソフトウェアを育てる(Steve Freeman/Nat Pryce/和智 右桂/高木 正弘)
The RSpec Book (Professional Ruby Series)(David Chelimsky/Dave Astels/Zach Dennis/角谷 信太郎/豊田 祐司/株式会社クイープ)
アジャイルサムライ−達人開発者への道−(Jonathan Rasmusson/西村 直人/角谷 信太郎/近藤 修平/角掛 拓未)
アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~(Mike Cohn/マイク コーン/安井 力/角谷 信太郎)
インターフェイス指向設計 ―アジャイル手法によるオブジェクト指向設計の実践(Ken Pugh/角谷 信太郎(監訳)/児島 修)
アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣(Venkat Subramaniam/Andy Hunt/木下 史彦/角谷 信太郎)
JavaからRubyへ ―マネージャのための実践移行ガイド(Bruce A. Tate/角谷 信太郎)










そして気がつくと「アジャイル」なんてもう誰も言わなくなる。←いまここ<br>なんてね。
そういえばKKDさんもしばらく前からアジャイルって言ってないよなあ