2004
初版2004年8月1日
(株)永和システムマネジメント 主席コンサルタント 平鍋健児 概要2004年6月22日~28日、米国ソルトレイクシティにおいて アジャイル開発カンファレンス2004(Agile Development Conference 2004)が開催されました。 このカンファレンスは今年で2回目を迎えます。 現在ソフトウェア開発業界で一つのムーブメントとなっている、 アジャイル型(俊敏で軽量な)ソフトウェア開発プロセスに関する国際会議です。 この記事は、このカンファレンスの参加報告です。現在のソフトウェア開発業界に、 「アジャイル」というキーワードで何が起こっているのかをレポートしたいと思います。 |
||
■ 名称:アジャイル開発カンファレンス2004 (Agile Development Conference 2004) ■ Web: http://www.agiledevelopmentconference.com ■ 期日:2004年6月22日~26日 ■ 場所:米国ユタ州、ソルトレイクシティ |
ホームページ www.agiledevelopmentconference.com |
ソルトレイクシティ
ソルトレイクシティは米国ユタ州にある、静かな町です。
日本からは直行便がないため、サンフランシスコやロサンジェルスを経由してのフライトになります。
|
|||||||||||||||||||
東京と緯度がほとんど同じで気温は日本とそんなに変わりませんが、この季節は非常に日差しが強く乾燥しています。
山は緑少なく、ほとんどが赤土に覆われています。
外出時は日焼け止めと帽子が必須です。
Cockburn氏と出かけたハイキングでは、Cockburn氏は家にあるだけの帽子を持参して、全員に被らせていました。
写真はソルトレイク湖です。
砂浜ではなく、砂のように見えるのは、塩の結晶です。この地面の下は、何マイルか塩だそうです。 |
|||||||||||||||||||
プログラムカンファレンスのプログラムは、以下のようなセッションから構成されます。 ■ アイス・ブレイカー・パーティ(Ice Breaker Party) … 前日の顔合わせパーティ■ 基調講演(Keynotes) … 会議の基調を設定する主賓講演 ■ チュートリアル(Tutorial) … 既に確立されたテーマの講義 ■ 研究論文(Research Papers) … 研究的な論文 ■ 経験論文 (Experience Report) …体験レポート ■ ピア・トゥ・ピア(Peer To Peer) … 小グループによる相互議論のセッション ■ オープンスペース(Open Space) … 自立的に始まる討論会 ■ ゲッタウェイ(Getaway) … 外へおでかけ! このカンファレンスの特徴は、「チュートリアル」や「研究論文」だけでなく、より参加型の「ピア・トゥ・ピア」や「オープンスペース」とよばれるワークショップ形式が多く含まれていることです。 これらのおもしろい形式のセッションについては後述しましょう。 また、アイス・ブレイカー・パーティや、ゲッタウェイといった、カンファレンスの本筋ではないけれど、人と食事や会話をしながら対話を楽しむことによって、ソーシャルネットワークを形成する仕組みも盛り込まれています。 このカンファレンス全体が、一つの「参加型、自己組織型コミュニティ」としてファシリテート されているのです。 アイス・ブレイカー・パーティ(Ice Breaker Party)カンファレンス前日の夜には、「アイス・ブレイカー・パーティ(Ice Breaker Party)」が催されました。 アイス・ブレイキングとは、「初対面の緊張を割る」ことです。簡単な食事とドリンクでの立食パーティで、会場にはダンサー、占い師、曲芸師、似顔絵師、などなどが飛び入りするという面白い趣向がほどこされていました。 参加者たちはまずこのパーティに参加し、カンファレンス全体の雰囲気を知り、旧知の友と握手をし、友人を紹介し合い、初対面の人と話をし、緊張と時差ボケを解いてリラックスします。 このカンファレンス全体が参加型としてデザインされているため、参加者は自ら発言したり、他の参加者とコミュニケーションを採ることが求められます。 このパーティによって、次の日からはじまるカンファレンスへ積極的に参加する勇気を得ることができるのです。 著者の似顔絵 ナイフ投げとかの写真を入れる基調講演(Keynotes)キーノートスピーチ(基調講演)は、『ピープルウェア』『熊とワルツを』の著者(Tom Demarco氏と共著)として知られるTim Lister氏と、ソフトウェア以外の工業製品開発でアジャイルを先導しているPreston Smith氏。 Tim Lister氏は、”Adult Behavior in Projects” (『プロジェクトにおける「大人の行動」とは?』) という題名で、ソフトウェアプロジェクトにおける「アジャイル」の意味を、「リスク管理」と「ピープルウェア」の視点から語りました。 Tim Lister 氏の基調講演 ”Adult Behavior on Projects” Preston Smith氏の基調講演 ”Lessons on Agility from the Product Development World” Lister氏は、著書『熊とワルツを』でリスク管理を、『ピープルウェア』でソフトウェア開発の人間系の視点を扱っています。 ここでは、Tim Lister氏の講演から、3つのスライドとその論点を紹介します 。 ● リスクとプロジェクト管理『リスク管理』の観点から、ソフトウェアプロジェクトの進捗は、ハリケーンの進路のようなもの。 元来計画どおりには進まないのだ。 しかし、多くの管理者は、ソフトウェアプロジェクトが計画に沿うように管理できると考えている。 過去のプロジェクトの成功率を見てみれば、そうではないことが明らかなのに、どうしてプロジェクトは計画通りに行かない、ということを受け入れられないのだろうか。 ハリケーンの進路が、不安定であり、数時間後の位置が予測できない、ということは受け入れるのに…。 ● デッド・フィッシュ悪い兆候のプロジェクトのテーブルには、「デッド・フィッシュ」(死んだ魚)が横たわっている。 「このプロジェクトはうまく行かない」という匂いがぷんぷんしている。 そして、プロジェクトに関わる全員がみんな、みんなデッド・フィッシュの匂いに気づいているのに、目をそらして知らないふりをする。 勇気をもって、誰かが、「デッド・フィッシュがそこにいる!」といわなければならない。 みんな分かっているはずだ。 ● ピープルウェアそして最後は、『ピープルウェア』の観点から、フェイス・トゥ・フェイスのコミュニケーションの重要さ、楽しく仕事をすることの大切さを強調してしめくくりました。 氏の言葉、「Nothing beats face-to-face.(フェイス・トゥ・フェイスに勝るものはない)」は、このカンファレンスで私が最も感銘を受けた言葉となりました。 ピア・トゥ・ピア(Peer to Peer)とオープンスペース(Open Space)「ピア・トゥ・ピア(Peer to Peer)」という形式のセッションでは、オーガナイザー(進行役)が準備した進行に沿って、参加者が議論をし、そこで学んだことを共有します。 写真は、「Agile Tester」というピア・トゥ・ピアの様子です。 Peer to Peer, “Agile Tester”の様子 このセッションは、「アジャイルなテスターに求められる資質とスキルは何か?」をみんなで見つけよう、というテーマです。 この会議のファシリテーションはすばらしいものでした。全参加者を「テスター」、「教育係」、「リクルーター」の3つのテーブルに分けます。 「テスター」のテーブルは、自分が今から他の企業のテスターとして転職をするという想定で、自分の履歴書・業務経歴書(Resume)にテスターとしてアピールしたいことを書き出します。 「教育係」のテーブルは、自分が企業の教育部署になった想定で、よいテスターを育てるための教育メニューを考えます。 「リクルーター」テーブルは、自分が企業の採用担当になった想定で、よいテスターに求めることを書き出します。 そして最後に、3つのテーブルから出されたリストを元に、「アジャイルなテスターに求められる資質とスキル」についてディスカッションするのです。 このような会議のファシリテーションのポイントは、うまい役割定義によるロールプレイングと、模造紙と壁を使った情報の張り出しです。 とにかく、このカンファレンスは至る所に張り出し物があります。 「オープンスペース(Open Space)」は、あらかじめ決まった議題というものがありません。 このカンファレンスの開始時に、「議論をしたい議題をお持ちの方は、このボードに議題と開始時間、場所を書いて貼ってください」という案内があり、そこでキックオフとなります。 写真は、実際に議論を始めたオープンスペースの様子です。 オープンスペースの様子(2重同心円構造) この椅子の並べ方に注目してください。椅子が、内円と外円の2つの円を持つ、2重同心円に並べてあります。 内円には、「しゃべりたい人」が入ります。議論は内円で起こります。ただし、内円にはいつも空席が1つあります。 外円にいる人はしゃべれませんが、しゃべりたくなったら、いつでも内円の空席に移動して議論に参加できます。 一人が新たに内円の議論に参加したら、誰かが内円から抜けなければなりません。 同じ時間帯にいくつものオープンスペースセッションがありますから、人々はどんどん抜けたり入ったりしながらいくつものセッションに参加できます。 しかし、一つの議題はずっと続いているのです。 この「散逸構造を持つ議論形式 」、あるいは「議論の開放系」を作るファシリテーション手法を、「Fish Bowl」とか「Park Bench」と言うそうです。 私が参加したオープンスペースの議題は、「アジャイルなプロマネはチームの外にいるべきか中にいるべきか?」、「分散したチームでアジャイルに開発するには?」、「アーンドバリューとアジャイルの接点」、「プロジェクトの成功をどうやって定義・計測するのか?」です。 議論が白熱すると、「この辺で食事にしないか?」と言って外に出て食事をしたりカクテルを飲みながら議論を続けるセッションもありました。 チュートリアル(Tutorial)チュートリアルは、各テーマのオーソリティからの講義です。 講義といってもアジャイルらしく、参加型の体や鉛筆を動かすセッションが多いのが特徴です。 さらに、リアルタイムに参加者から質問が多く、日本でのチュートリアルとは雰囲気が全く違います。 ここでは、幾つか著名人のチュートリアルを紹介したいと思います。 ● Agile Project ManagementJim Highsmithは新刊、『Agile Project Management』についての講義を行ないました。 彼のテーマは、新製品開発のように「うまく計画できない」プロジェクトのマネジメントです。 Plan-Do(計画-実行)タイプのプロジェクトマネジメントではなく、Envision-Explore(ひらめき-探索)タイプのプロジェクトマネジメントがどうあるべきかについての新しいフレームワーク(APM ライフサイクルモデル)を提示しています。 ここでは、全体のプロセスフェーズを、Envision(構想)/Speculate(思索)/Explore(探索)/Adapt(適応)/Close(終結)という5つに分割しています。なかなか興味深いキーワード群です。 Agile Project Management のフレームワーク Jim Highsmith氏と著者 Jim Highsmith氏の新刊、『Agile Project Management』 ●リーンソフトウェア開発Tom/Mary Poppendieck夫妻は、トヨタ生産方式(リーン生産方式)をソフトウェア開発に持ちこむ、という話題を昨年同様扱っています。 今回は、その手法をワークショップ形式で講義していました。 トヨタ生産方式 7つのムダ(生産工程 vs ソフトウェア開発) ソフトウェアの「見える化」と「自働化」 Mary Poppendieck と著者 ポペンディーク夫妻の本は、『リーンソフトウェア開発:アジャイル開発を実践する22の思考』として日本語版の拙訳が7月に日経BP社から刊行されています。 日本語版『リーンソフトウェア開発』 この書籍では、アジャイルなソフトウェア開発において重要な原則を7つ、 そしてその原則にそって22個の思考ツール(考える手がかりとなるキーワード)を提唱しています。 以下に、その7つの原則と22個のキーワードを紹介しましょう。
原則 1 ムダを排除する
原則 2 学習効果を高める
原則 3 決定をできるだけ遅らせる
原則 4 できるだけ早く提供する
原則 5 チームに権限を与える
原則 6 統一性を作りこむ
原則 7 全体を見る ● Large Scale Agile Software Developmentアジャイルな開発手法はこれまで、少人数のチームにしか適用できないことが大きな問題でした。 Ron Crockerは、これをどのようにスケーラブルにするか、というテーマを扱っています。 Ron Crockerの『Large-Scale Agile Software Development』 XPのプラクティスの中でスケーラブルなものとそうでないもの XPプラクティスに対する補完 彼は、まずXPのプラクティスの中でスケーラブルなものを取り出し、そして、そうでないものと区別しています。 さらに、スケーラブルでないものを補完する形で別のプラクティス(これをGrizzlyと呼ぶ)を足しています。 ● User Stories AppliedMike Cohnは、ユーザストーリ書き方に焦点をあてています。 これは、過去にAlistair Cockburnが著書『ユースケース実践ガイド:効果的なユースケースの書き方』で、よいユースケースの書き方に焦点をあてたのと同様、アジャイル開発でも、よいストーリーを書くことが本質的に難しいからです。 Mike Cohn 著、『User Stories Applied: For Agile Software Development』 このチュートリアルの中でMikeは、ユーザストーリが「書くこと」から「話すこと」への価値感の転換がもっとも重要だとしています。 仕様書を書くと、「書いたものが得られる」、と考えると間違いで、「よくても書いたものしか得られない」と考えるべきです。 書くということではなく、人間はフェイス・トゥ・フェイスで「話す」ことによって、より多くの情報を得られます。 簡潔にしか書かないことで、この「話す」というブロードバンドな活動の方に焦点を移すことが、ユーザストーリの本質的な役割なのです。 「書くこと」から「話すこと」へのシフト そして、Mikeはよいストーリーの条件を見つけ出そうとしています。よいストーリーは、 ■ Independent - 独立している■ Negotiable - 交渉可能である ■ Valuable - ビジネス価値がある ■ Estimatable - 見積もりができる ■ Small - サイズが小さい ■ Testable - テスト可能である という特性を持っています。 これらの「良いストーリーの条件」は、頭文字を取って、「INVEST」と名づけられています 。 研究論文(Research Paper)研究論文では、著書『ペアプログラミング』で有名なLaurie Williamsらの2つの論文を紹介しましょう。 彼女は、今回2つの論文を発表しました。
「ブルックスの法則」をご存知ですか? 「遅れたプロジェクトに人を投入するとますます遅れる」という法則で、有名な『人月の神話』の中の一説から来ています。 Laurieは1の中で、この法則をペアプログラミングによって改善できないか、という問題を扱っています。 また、2の中で、現実にアジャイルを導入した企業の例としてSabre Airline Solutions 社に対して行なわれた調査を示し、XPを導入して2年後、導入前に比べて、生産性が50%、リリース前の品質が65%、リリース後の品質が30%向上した、と伝えています。 『ペアプログラミング』の著者Laurie Williamsと筆者 ≪Sabre Airline Solutions 社における、XP導入の効果≫
経験論文(Experience Report)自らの体験を語る経験論文(Experience Report)では、多くの活発な発表がありました。 実は日本からも、1つ論文発表がありました。 ここでは、倉貫義人さん(TIS株式会社)と私が共同で発表した論文を紹介します。 私たちの発表は、 「アンチプラクティス:XPプロジェクトのアンチパターン」 という題名で、XPを導入したプロジェクトでよく起こる問題と、その対処法を対にしたものを「アンチプラクティス」と呼び、これを普及させようというものです 。 XPを導入した初期のころはうまくいっても、XPの極端なプラクティスのせいでチームの状態が悪くなることがあります。 日本には「過ぎたるは及ばざるが如し」という諺があります。 よい状態を保つには、この悪い状態(アンチプラクティス)を解決しながら、XPを自分たち独自のプロセスへと成長させていかなければなりません。 この過程は、「守破離」と似ています。 最初はXPの教えを忠実に守る。 次に、それを破ってみる。アンチプラクティスは、この破の状態に対する道しるべです。 ここでは、そのアンチプラクティスの1つである、Brownie’s Works: The Boss Refactored My Code!”(邦題:ブラウニーズワーク~作ったところがなくなった!)を紹介しましょう。 XPアンチプラクティス1 - Brownie’s Works
ストーリー:
アクション:
アフター: このストーリー、アクション、アフターを、より抽象化してアンチプラクティスのフォーマットに直したものが次の表です (これを、結晶化という)。
すべてのアンチプラクティスを、この「ストーリー/アクション/アフター/結晶化」という枠組みに沿って発表しています。 そして、このストーリーを日本人3名の「寸劇」として観衆の前で発表しました。 そうしたところ、このマンガ によるスライドと寸劇の評判がすこぶるよく、会期中にあちこちで話題になっているのを耳にしました。 「あの日本人の発表はワンダフルだった!あのスライドは見るべきだよ!」 こんな噂がたち、「ああ、君たちのスライドはすごかったらしいね!」と毎晩声を掛けられました。 そして、最終日、私たちの論文は「ベストプレゼンテーション賞」を受賞することになりました 。 Alistairからベストプレゼンテーション賞を受ける倉貫さんと筆者 まとめ6日間にわたる会議で感じたのは、各国から集まっているエンジニアたちの、現状ソフトウェア開発の現場を変えようとする強い思いでした。 一緒に外出したり、お酒を飲んだりして、実に多くの人といろんな会話をしました。 話題は、宗教・哲学・戦争・生活・恋愛・家庭・エンジニアリング・科学などを行ったり来たりしながら、中心はいつも「アジャイル」でした。 一つのキーワードを中心にして、国や文化を超えたコミュニティがしっかり出来上がりつつあることを実感した一週間でした。 このような新しいムーブメントが産業界でのインパクトを持つには、やはり個人と個人のつながり、「ソーシャルネットワーク」が重要なのです。 このカンファレンスは、教室の中で行なわれた会話よりも教室の外で行なわれた会話の方が重要だった、と参加者は口をそろえて言います。 そういった場作りの重要性、そう、「ファシリテーション」こそがアジャイルの1つのポイントなのでしょう。 残念なことに、このカンファレンスは今年で終了です。 今年はアメリカでアジャイルカンファレンスが2つ催されました。 一つは私がレポートした「Agile Development Conference」、もう1つは、「XP/Agile Universe」です。 来年に向けて、この2つは合併します。現在その名前を募集中とのことです。 最後に、私と一緒にカンファレンスに出席した、倉貫義人さん、中井正幹さん、どうもありがとうございました。 来年もまた行けますように。 以上。 |