taken by denisko under CC BY-NC-SA
今年はサンフランシスコにいて、かつ先月子供が生まれたばかりということもあって、日本にふらっと行ってXP祭り2012に参加することができないので、今年はビデオレターで出演することになりました。僕が考えるアジャイルの核について話をします。ビデオレターって反応がないから難しいですね。なにか間違ったことを言ってしまって(たぶん色々間違っている)も「あ、今間違えました」って気付けない。ビデオレター達人になるにはどうすればいいんでしょうね?手元のNikon D3100+NIKKOR 35mmでFull HDで動画を撮ってみたので、絵は綺麗に撮れたと思いますが、なんか声が小さそうなのでブログにも書きます。XP祭り参加する方はまだ見ないでー!いろいろ補足もしていこうと思います。あと、時間的な制約で2/3ほど内容を削ったので、このブログにはそのあたりも含めます。ぜひ、懇親会でハッスル(死後)した後にお読みください。
日本のアジャイルの黎明期と、アジャイル関連のイベント
僕がアジャイルのコミュニティに関わって10年以上たちました。XP祭りも最初が2003年だったので今年で10回目ですよね。昨年のXP祭りでは10年前のアンケートの結果を紹介しながら話をしましたが、10年前はアジャイル導入は夢の話でした。アンケートを取っても、ユニットテストとリファクタリングだけはやってみた、というレベルの人が多かったように思います。
でも、アジャイルの夢は覚めることなく、時には会社を動かした人がでたり、世界の勉強会に出張で行かせてくれたり、あるいは転職しちゃった、と夢を叶える人もでてきてます。僕も当時は東工大で、その後周りがトヨタトヨタと騒ぎ始めたので、反骨精神が目覚めてホンダに就職し、その後はDeNA、現在は子会社のngmoco:)でなんだかんだでアジャイルっぽい環境に落ち着いています。「ヘイ、ヨシキ!スクラムって知ってるか?」「最初のスクラム本の日本語訳はやったよ」的な会話もキメました。いろんな時差をまたいでいるので教科書通りじゃないですがー。いつかこのあたりの話もしたいですね。
適用が難しいと言われながら、多くのエンジニアを惹きつけて、ゲリラ活動を行わせて世界を変えてしまう。アジャイル原理主義教団は危険だ!今すぐクラス名を記号+数字にして奴らの言論を封じろ!みたいなプレゼンもかつて行われたぐらいです(by牛尾さん)。アジャイルの何が魅力的なんでしょうか?
あと、今日のXP祭りもそうですが、アジャイルのイベントではアジャイルの本に必ずしも書いていない話題もたくさんあります。初期のころのイベントで言うと、マインドマップ、コーチング、パタン・ランゲージ、トヨタ生産方式、振り返り、制約理論、アジャイルUXなんてのも出てきました。パターンそのものはXPの記述には使われていますが、パタン・ランゲージそのものに興味を広げて、沢田マンション(Google日本語入力で補完が出た!)に行っちゃう人も出てきたのはケント・ベックもあずかり知らぬところだと思います。
アジャイルイベントの多様なセッションとアジャイルの共通点
しばらく、こういうセッションがなぜ人気なのかということを考えたことがあります。Pythonのパラドックスと同じで「アジャイルのアーリーアダプターが新しいものに飛びつく、学習意欲の高い人達が多かったから」ではないか、と考えましたが(昨年のスライドの多様性はここから発想)これらにも何かアジャイルと共通の何かがあるんじゃないかな?と思っていました。いろいろ難しく考えていたのですが、ある日やっとむさんがFacebookに一言書いていた言葉を見て、これらがシンプルにつながった気がしました。

初期のころに流行ってセッションが行われたマインドマップもそうです。マインドマップを使うと発想が刺激されて、アイディアがどんどん出てきたりします。
同じく、初期の頃に活発にセッションが行われたコーチング、ワークショップ系も、まさに人を動かす状況を作る仕組み作りですよね。トップダウンで命令で働かせる、というのとは逆です。人が動く、ということが主体な気がします。
パタン・ランゲージも組み合わせで新しいアイディアや発想を作り出すものです。ただ作るだけではなく、多くの人の共通言語となることを狙っています。さまざまな文化を持つグループの集合体が歩調をあわせて「動く」ための仕組みです。
制約理論(TOC)もここ3年ぐらい活発になってきています。僕が有料のセミナーを受講したのは2005年ぐらいでだいぶ前でしたが、今日のセッションにある対立解消図(クラウド)とかも、イガミあうエネルギーをチームの前進に使うようにするための仕組みですよね?TOC自体の中身は変わってないはずなので間違ってないはず。
最近のイベントで活発なアジャイルUX。ユーザ体験をすばらしくしようというのがコンセプトかもしれませんが、おそらく一目見て「こういうことがしたいな」と思わせたり、「こういうことがしたい!」と思っているユーザを自然に誘導して、目的の機能を使わせるようなUIを提供するのが目的なんじゃないかな、と思います。あまりここは追いかけていないので間違っているかもしれませんが。これもまさに「人を動かす」ですよね。
アジャイルもいたるところにこの仕掛があります。たとえば、ユニットテストとかテスト駆動開発。テストで失敗すると赤くなります。よく訓練されたプログラマーは赤い色を見ただけで体がむずむずしてきます。コードを直さないと気が済まないのです。これも動かされていますよね?
計画ゲームなどでカードを使って仕様を考えるのもそうです。どんどんカードを書いて貼りだしていくと、さらに「こんなのも欲しいかな」とか「時間的に厳しいかもしれないけどこういうのはどうだろうか?」とアイディアがいっぱい出てきます。
継続的リリースについても同じことが言えます。ユーザに「ユースケースを全部書きだしてみてください。ワークフローはどうなっているんですか?漏れ無くダブりなくお願いします」といくらお願いしても、訓練されていないユーザが過不足のないドキュメントを一発で出してくるなんてなかなか難しいでしょう。しかも、アプリケーションを導入することにより、ワークフローを変えよう!みたいなのがあるとさらに困難です。それと比較すると、目の前にプロトタイプのプログラムがあり、実際に使ってもらって「実際に作業しようとしたときに引っかかるところはありませんか?」と言われたほうが確実なコメントがもらえるでしょう。
こういった仕組みがアジャイルの核だと思っています。ついつい体が動いてしまう仕組みが満載なんです。命令させて動かすのとは対極です。
アジャイルの「ア」は合気道の「ア」
このあたりの話からはビデオレターではカットして内容になります。最初のメモ通り話をしたらたぶん30分は余裕でかかるはず。
最近思っているのが、アジャイルと合気道の精神は似ているのではないかな、ということです。別に、この前連載が終了した範馬刃牙で出てくる合気道の達人が僕と同じ名字であることに敬意を払って無理やり・・・ということではないです。力づくではなく、中の人が「ついついやってしまう」方向に行動するとチーム全体が助かっている。その「やってしまう」は必ずしも「相手をコントロールしたい」だけではなく、自分も含めてです。
ヤル気がある状態とない状態では、同じ人間であっても成果に数倍の違いが出てくるように思います。このあたりは、つまみぐい勉強法という本で書いた内容になります。少し時間は経ってしまいましたが、内容は古くなっていません。むしろ最近でも「あ、あの時に書いた内容につながるなぁ」と思うことがしばしば。この本で書いたのは「自分のモチベーションが上がることを勉強する」「飽きたらすっぱりその勉強はやめる」「でも違う勉強を必ずはじめる」ということです。自分のモチベーションが高い勉強はイヤイヤやる勉強に比べて、急速に自分を成長させてくれます。アジャイルもヤル気スイッチをぽちっとしてくれるので、「誰でもできるように」のテーラーリズムを土台にした旧来の「ソフトウェア工学」以上の成果が出てしまうのは当たり前です。成果というのはスピードだったり、品質だったりいろいろでしょうけど。
また、アジャイルの効率を説明する方法がもう1つあります。それが制約理論(TOC)です。制約理論はいくつかの要素で構成されています。おなじみのドラムバッファロープ、対立解消図、クリティカルチェーンマネジメントとか、サプライチェーンマネジメントなどです。ソフトウェアのプロジェクトとの相性が良さそうということで、注目されているのはクリティカルチェーンマネジメントあたりが多い気がします(対立解消図が今日のセッションにあるのはうれしい驚きでした)が、ここで取り上げるのはドラムバファロープです。
ドラムバッファロープは、制約理論を小説形式で紹介した本の記念すべき第一号の「ザ・ゴール」で紹介されていた手法です。簡単に説明すると、ボトルネックになっているプロセス、それの効率を100%にして、後のプロセスはボトルネックの効率を落とさないことに注力することで効率が最大化されるという理論です。アジャイルと対比されるウォーターフォール開発で、一番リスクが高いものとされているのが、設計ミスが後ろの方のプロセスまで気づかないこと、とされています。指数関数的に変更コストがかかる、というグラフと説明を見たことがある人も多いでしょう。

アジャイルの変更のコストがどうかはこの際重要じゃないのですが、ウォーターフォールの開発プロセスの一番のボトルネックは「最初に未来を予測する」ことが求められている点です。人間はフィードバックで学習していきます。人間どころか他の動物もそうでしょう。犬のしつけも、悪さをした時に即座に叱ることで、行為と結果の関係が学習され、間違いをしなくなっていきます。叱るタイミングが遅くなると、原因との関連が弱くなったり、間違った原因と結び付けられてしまうことになります。きちんと読んではないですが、グレゴリー・ベイトソンの学習に関する考察も基本的には刺激というものが重要な起点になるということで同じことを言っていると思います。
人間の未来予測能力が高く、先読み力の強い人が多いのであればウォーターフォールは最強のプロセスとなるはずです。ですが、現実的には一番人間の能力の中で役に立たない(ことが多い)のが未来予測能力だと思います。つまりこれがウォーターフォールのボトルネックです。アジャイルは未来予測をほとんど捨てました(FDDみたいなのはありますが)。目の前にあるものを見て次を考えるフィードバック方式です。この先の1ヶ月より先のことを無理に予測して他のプロセスをそれに従属させるのとはやり方が逆転しています。人間が人間であるかぎり、アジャイルは人類最強の開発プロセスなんじゃないかな、と思います。もし火星人と仲良くなったとして、火星人の未来予知能力が高かったとしたら、ウォーターフォールで一緒に仕事をするといいと思います。
今後流行りそうなこと
先ほどアジャイルの裾野で広がっているテーマをいくつか紹介しましたが、今年は来るだろうなと僕が勝手に予想していたのがゲーミフィケーションです。これもヤル気スイッチを押すルール作りです。ぜひ、来年は誰か手を上げてワークショップとかやってみると盛り上がると思います。
後はコミュニティマネジメントですね。僕自身、さまざまなコミュニティに関わってきました。そこで興味を持ってアート・オブ・コミュニティ
という本の翻訳をしました。アジャイルは基本的にはソフトウェア作りということで、組織のミッションは既にあるものとされています。制約理論にしてもそうです。カイゼン系も手法は変えるものの、組織のミッション自体を新規に創造することはあまりないはず。今あげたゲーミフィケーションもそうです。アート・オブ・コミュニティは、まず組織のミッションステートメントを作る所から始めます。アート・オブ・コミュニティを書いたのは、年に2回、定期的にOSという馬鹿でかいプロダクトをボランティアでリリースしているUbuntuという狂った組織(褒め言葉)のコミュニティマネージャです。ガチです。ゼロからゴールを作り、それに向けてモチベーションを高める組織づくり論です。函数プログラミングの集い 2012 in Tokyoで成果を出すチーム作りで話題となったVolutnasも組織論としてチーム作りの参考に良く読んでいるとのこと。
コミュニティというのは、エロい言い方をしてしまえば、モチベーションをAGE AGEして無料で人を働かせちゃおう☆という組織術です※。会社でも仕事をうまくやっていくためには、モチベーションの高い組織作りが必要。信用貯金を減らして仕事するやり方もありますが、楽しくないですよね?タダでも仕事させる組織術を、給料をもらえる会社の中で使ったらどうなのか?楽しくてしょうがない、勝手にゴール目指してチームが一眼となって転がっていく組織になるはずです。
アート・オブ・コミュニティの原著は第二版が出ているのですが、日本ではまだ第一版の初版が買えます。残念ながら、出版社さんから「ぜひ第二版も」と言う話が来ている状況ではないのですが、第二版で増えた章に関しては翻訳を地道にやっています。バーンダウンチャートで仕事の管理とか追加されています。これも何らかのかたちで皆さんのお手元には届けたいと思いますので、ぜひ安心して初版をお買い上げください。
※ とはいえ、運営する人には相応の努力を要求されます。自分だけ楽して人を働かせようとしてもモチベーションを持ってもらえません。当然ですが。
そろそろまとめに。
- 僕の考えるアジャイルの核は、ついつい人を動かす仕組み。アジャイルのアは合気道のア。
- 次に流行るのは、ゲーミフィケーションと、コミュニティマネジメント
アジャイルというのは、ベストプラクティスをまとめることで今の形になってきました。でも、アジャイルの核にある、「人がつい動いちゃう仕組み」というのはアジャイルの本に書かれた以外にもたくさんの可能性があります。そういうものをもっと色々発展させて、日本発でいろいろ発信できるようになるといいなぁ、と思います。XPJUGはきっとそういうことができるコミュニティ。そういう人が集まっている場だと僕は思っています。
ビデオはこちら
平鍋さんのビデオがいろいろな飛び道具を出してわかりやすく説明しているのにくらべて、まるで授業がつまらない高校の先生のような、一方的にしゃべるだけなビデオレターです。初めてなので!次はもっとわかりやすくしようと思います!