アジャイル開発者の習慣-acts_as_agile

第2回 仕組みを育てる

この記事を読むのに必要な時間:およそ 5 分

すばらしい製品というのは,単に良い習慣の副産物でしかありません。

『Ship It!』注1

注1)
『Ship It! ― ソフトウェアプロジェクト成功のための達人式ガイドブック』(Jared Richardson/William Gwaltney Jr.(著),でびあんぐる(訳),オーム社)

はじめに

本連載では「アジャイルに開発する人達(アジャイル開発者)が開発するからアジャイル開発である」と考え,アジャイル開発者になるために必要なスキルを磨くための習慣を紹介しています図1)。

図1 アジャイル開発者の習慣

習慣の構成要素
  • マインドセット(心構え)
  • プラクティス(実践)
  • 継続
本連載で紹介した習慣
  • 習慣#0: フィードバックを重視する

前回紹介した習慣は,習慣を身につけるための習慣(メタ習慣),「フィードバックを重視する」でした。

第2回である今回は,最初の具体的な習慣として「仕組みを育てる」習慣を紹介します。そのために,アジャイル開発者にとっての「仕組み」とは何か,なぜ重要なのかを説明――する前に,先日体験した印象深い経験について語らせてください。

RubyKaigi2007のDave Thomasとアジャイル

6月9,10日に日本Ruby会議2007(RubyKaigi2007)が開催されました(と書くと他人事のようですが,私は実行委員でした)。会期の最後に行われたDave Thomas編注による基調講演は,氏のRubyへの愛と,爆発的拡大を始めたRubyコミュニティのこれからのあり方について真摯に語る,粋で素敵な深く心に響く講演でした写真1注2))。

写真1 RubyKaigiでRubyへの愛にあふれる講演をするDave Thomas(写真:島田浩二)

画像 写真1 RubyKaigiでRubyへの愛にあふれる講演をするDave Thomas(写真:島田浩二)

いちRuby好きとして行動しつつもRubyプログラマとしてRubyコミュニティに貢献できていない私は,氏の講演に大いに勇気づけられ,当日は感極まって思わず泣いてしまいました。

Dave ThomasはRubyの海外での認知のきっかけをつくった立役者であるだけでなく,『達人プログラマー』注3の共著者であり,アジャイルソフトウェア開発宣言アジャイルマニフェストの署名メンバーでもあります。

“Be flexible and agile”

Dave Thomasによる基調講演は,私の個人的な感慨とは別に,本連載としても興味深い内容がありました。それはほかならぬ氏による「アジャイル」という言葉の使い方についてです。

講演でDave Thomasは,新しくRubyにやってくる人々にRubyコミュニティが伝えるべき価値の一つとして「柔軟かつアジャイルに」ということを挙げました。また,講演後の質疑応答でも「Rubyコミュニティはアジャイルだ」という発言をしていました。

アジャイル=適応性+持続可能性

Rubyの開発コミュニティは,たとえば計画ゲームやテストファーストといったアジャイル開発のプラクティスを熱心に実践しているわけでもなければ,自分たちが「アジャイルである」と標榜しているわけでもありません注4)。

にもかかわらず,Dave ThomasはRubyコミュニティを「アジャイル」だと言いました。氏がこのとき「アジャイル」という言葉に込めた意味は状況の変化に迅速に適応しながら開発を持続させていくことだったと私は理解しています。

アジャイルは単純な納期の早さではない

私は最近,Ruby on Railsを採用するプロジェクトについての相談を受けることが多くなりました。その際,先方から「スケジュールが短期なのでアジャイルに開発したい」と言われることが少なからずあります。

残念ながら,アジャイル開発が実現するものは,開発するソフトウェアのライフサイクル全体を通じた変化への適応性と開発の持続可能性であって,単純な納期の早さではありません

アジャイル開発の「俊敏さ」

よくあるアジャイル開発の説明は「アジャイルとは『俊敏な』という意味である」という記述から始まるものです。ここでの俊敏さとは,従来型の開発――事前に策定した包括的で綿密な計画を絶対視する開発――と比較しての,ソフトウェアのライフサイクル全体を通じての相対的な開発速度の速さです注5)。

例えるなら,アジャイル開発の速さはマラソン走者の速さであって,短距離走者の速さではありません。「10分でブログアプリケーションを構築できる」といった開発速度の速さも,短距離走の速さです。

編注)
Dave Thomasさんと小飼弾さんの対談が,連載コラム小飼弾のAlpha Geekに逢いたい♥に掲載されています。
注2)
講演の内容は,zundaさんによるRubyKaigi公式サイトの速報ログに詳しいです。
注3)
『達人プログラマー ― システム開発の職人から名匠への道』(Andrew Hunt/David Thomas(著),村上 雅章(訳),ピアソン・エデュケーション)
注4)
念のため補足しておくと,Ruby開発コミュニティはテストケースを大事にしています。ただ,典型的なアジャイル開発プロジェクトのようにはテストをソフトウェア設計の中心に据えているわけではない,という意味です。
注5)
こうした補足説明が必要になるということは,「アジャイル」という言葉は実はあまりよい名前ではないのかもしれません

著者プロフィール

角谷信太郎(かくたにしんたろう)

(株)永和システムマネジメント,サービスプロバイディング事業部所属プログラマ。「『楽しさ』がシステム開発の生産性を左右する」と信じてRubyによるアジャイル開発を現場で実践するテスト駆動開発者。目標は達人プログラマ。好きな言語はRuby。好きなメソッドはextend。著書に『アジャイルな見積りと計画づくり』(共同翻訳),『JavaからRubyへ』(翻訳),『アジャイルプラクティス』(共同監訳),『インターフェイス指向設計』(監訳)。

URLhttp://kakutani.com/

著書

コメント

コメントの記入