アジャイル開発を、人はどのようにして学ぶのか。アジャイルの第一人者、平鍋さんに聞いた
「アジャイル開発は、実は本を読んで理解するのがとても難しい」。9月4日に、有志によるアジャイル開発のイベントの基調講演「アジャイル開発の現在・過去・未来」の中で、アジャイルの第一人者であるチェンジビジョン代表取締役社長の平鍋健児氏はこう発言しました。
本を読んで理解するのが難しいのだとすると、アジャイル開発はどのようにして学んでいくのがいいのでしょうか? 平鍋さんが伝えようとしたことを詳しく聞くために、メールインタビューをしました。
自分で考えることが本質
先日のXP祭りで平鍋さんの講演を聞いたとき、「アジャイルは人づてに伝わっていく」という部分が印象に残りました。また、「アジャイルは、実は本を読んで理解するのがとても難しい」ともおっしゃっていました。とはいえ、アジャイル開発を本や講演などから学び始める人も多いはずです。そういう方々にアジャイルをどう学ぶのがいいのか、というアドバイスを届けられたらと思い、今回のメールインタビューを企画しました。
平鍋 なるほど。アジャイルコミュニティは、途中で大きく学んでいるんです。それは、「ソリューションを押し付けてはならない」ということ。
ソフトウェア開発は、現場(実際に人が頭を使って悩んでいる、会話している、開発している場所)ごとに問題が違う。それは、アジャイルという1つのソリューションで解決できることではない。現場の問題の理解、それのコンテクストに適した解決を「参加者」とともに作ることが大切。このことは、人間が絡んだ「サイエンスではない問題」を解決する際の鉄則です。文脈重要。参加重要。
これはいままでの多くのソフトウェアのバズワードがソリューション先行だったことの反省からも来ています。また、アジャイルが途中でリーンと出会うことの影響(書籍「リーン開発の本質」の著者、Mary Poppendieck氏による功績)も大きい。
リーンの本質は「自分で考える」ことなんです。そして「現場が参加する」こと。この気づきは、欧米でも最近多くの人がアジャイルの文脈でこれを言葉にしています。
参考:"Thinking for yourself in your context" is the heart of Lean
参考:Practices for Scaling Lean & Agile Development: Inspect & Adapt
本質は「自分で考えること」だから、それを本などから学ぶことは難しいということですね。
平鍋 はい、1つにはそうです。世の中には誰かが見つけた再現性のある正しいことがどこかに書いてあり、それが自分の状況でもうまく機能すること、すなわち「サイエンス」という、形式知で伝えられるものがあり、その応用として「エンジニアリング」があり、そうでないもの(本で伝えられないもの)は暗黙知のまま経験知、実践知として人づてに伝える必要があるんです。
例えば自転車の乗り方。これを伝えるには、経験者が声をかけながら後ろで荷台を持ってあげて一緒に走ることなんです。これが、アジャイルの伝達方法です。
それと「方法論」というものがソフトウェアでは破綻している。「テロリストとメソドロジストの違いは? 前者とは交渉できるが、後者はノン・ネゴーシャブル」なんてジョークもあるくらいです……かなづちを持つとなんでも釘に見える症候群ですね。
アリスタ(Alistair Cockburn氏。アジャイル開発宣言などで主導的役割を果たした)は、「Oath of Non Allegiance」(非忠誠の誓い)というバッジまで作って、「自分の信条ではなく、現状から考える」ことを基本にしよう、といっています。
参考:非忠誠の誓い(Oath of Non-Allegiance) - ブログ An Agile Way
どちらも、「自分の状況に合わせて自分で考える」「まずやってみてから考える」「実践による知」「コンテクスト優先、ソリューションはあと」という考え方を重視しています。
英語のメーリングリストに質問を投稿するのがいい
逆に、本で身につけられること、とは何だと思われますか。
本では「言葉」と「体系」は身につけられるでしょう。これは大切です。そうですね、今、読むとすると、「アート・オブ・アジャイルデベロップメント」「アジャイル・プラクティス」、それと「アジャイルな見積りと計画づくり」でしょうか。またマネジャーや経営者には、先程あげた、Maryの本「リーン開発の本質」を推薦します。
平鍋さん自身は、どのようにアジャイルを学んでこられたのでしょうか?
最初にXPの白本「XP エクストリーム・プログラミング入門」(の原書)を読んで、感動をした。ここが始まりです。このときに感じたわくわく、というかパッションがいまでも起点になっています。
そしてその周辺を読み漁り、自分でもやってみたくなり、プロジェクトでどんどん実践していく。そして、その知見を文章にして発表しながら、他の人とも交流をして、情報交換をする、海外にも出かけていく、という……まあ、あとは行き当たりばったりなんですが、いい、と思ったものを、実践して形にしていきたい、という活動の中で、学んだんでしょうね。パッションがあったらから。
最後に平鍋さんおすすめのアジャイルを学ぶための情報源、本でも、Webサイトでも、この人の話を聞けでも、メーリングリストでもいいので、日本語、英語にこだわらず教えてください。
平鍋 一番いいのは、英語のメーリングリストに自分で質問を投稿することです。それはかなり勇気がいりますよね? でもその分、聞きたいことを自分で研ぎ澄ませますし、返答をもらったら返信しなくてはなりませんし、とにかく、モチベーションをもてます。僕は5つくらいのメーリングリストに参加しています。すべてYahoo! Groupsです。
- agile-testing・Agile Software Testing
- extremeprogramming・Extreme Programming
- agile-usability・Agile Usability
- agileprojectmanagement・Agile Project Management
- scrumdevelopment・Scrum Users
- kanbandev・Kanban Development
結局、アジャイルは実践や行動といったものと深く結びついているので「こうやったらうまくいく」という処方箋を求めている人や比較論で机上の検討をしている人、行動せずに分析的に考える人にはうまく伝わらない可能性があります。
困っている現場のエンジニア、レポートをメールで見るのでなく現場を見に行くマネージャ、会社を良くしたいと思っている経営者。こんな人が、次の時代の開発方法としてどんどん実践しながら自分たちのやり方を見つけていっているのです。
ぜひ、「ガチで」取り組んでください!
ありがとうございました!
本文中で言及された書籍は以下です。
曖昧で変化しやすい要求仕様と向き合いながら、ソフトウェアを開発するためのライト級の方法論であるエクストリーム・プログラミング(XP)について解説する。新たな知見をとりいれた第2版。
「トヨタ生産方式」を源流にする「リーン開発」をソフトウエア開発に取り入れるための具体的方法を紹介。製造分野から始まったリーン活動は、その原則を理解しないままプラクティスだけを開発分野に適用しようとしても、行き詰るか失敗に終わってしまう。本書は、リーンの7大原則を、ソフト開発現場にどうしたら効果的に適用できるか、多くの実例を交えながら具体的に説明する。
本書では、アジャイル開発の実践方法の1つであるXPを中心に解説します。XPの概要と導入について解説し、XPによるアジャイル開発をチームに導入することを目指します。さらにXPのプラクティスについても詳述。
現場に即した開発手法の手引きとして、アジャイル(俊敏な、フットワークの軽い)開発の実践的な側面を解説した書籍。単なる開発手法の教科書ではなく、実際の開発現場から生まれたアドバイスや手引きを、具体例を用いて達人プログラマが伝える。
ソフトウェア開発の難題である見積りと計画づくりを「アジャイル」にすることで、開発の現実に即した、誤差の少ない計画づくりができるようになる。 その技法を、分かりやすく説いた1冊。