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のコンテキストでのアジャイルについては、いつか書くかもしれないなあ)
そして気がつくと「アジャイル」なんてもう誰も言わなくなる。←いまここ<br>なんてね。
そういえばKKDさんもしばらく前からアジャイルって言ってないよなあ