参加者の生き生きエピソードから紐解くアジャイル開発のポイント
デロイト トーマツ コンサルティング合同会社のkyon_mm氏は、講演の冒頭、参加者に対し「最近生き生きしたエピソード」を募集した。
するとすぐに参加者から投稿があった。「メンバーと気持ちが通じた瞬間」「アジャイルでチームがうまく回っていると感じられたとき」「ある事象について話していて、一気に物の解像度が上がったとき」「チームでスライドを作っていたら、初めは苦しんでいたけど途中からどんどんアイディアが浮かんできたとき」などだ。
kyon_mm氏はそれぞれに「難しい課題を達成できたときは楽しいですよね」「理解が急に深まるとき生き生きを感じますよね」などとコメントした。そして参加者が感じた生き生き感こそ、生き生きとした開発組織を作るために必要な大切な要素であるとし、その解説を進めるため、ソフトウェア開発の歴史に話題を向けた。
第2次世界大戦後、ソフトウェア開発は3つのパラダイムを迎えた。最初は、科学的管理手法であり1人の優秀なエンジニアが全てを作るカウボーイ開発の時期、次のステップは1970年に発表された、米ウィンストン・ロイス「Management the development of large software systems」がルーツと言われるウォーターフォール型開発、これは1本の道を後戻りせず進むのでシーケンシャル開発とも言われている。そして2000年以降は、大型システムよりWebを中心とするコンパクトな開発が中心になったことで、頻繁に見直しを図って完成度を高めるアジャイル開発が台頭してきた。
kyon_mm氏は、自身もアジャイル開発を行いアジャイルコーチなども務めていくうちに、アジャイル開発が誕生した理由やその歴史に関心を深める。やがてアジャイル開発の思想の根源として、ウィーン出身の都市計画家・建築家のクリストファー・アレグザンダー(1936〜)に出会う。アレグザンダーは、良い建築とは何か、それをデザインするにはどうすれば良いかを問い続け、建築・都市計画の構築理論としてパタン・ランゲージを提唱した。
パタン・ランゲージは、物事をうまくこなすためのコツ(型:パターン)のヒントを、言葉(ランゲージ)にして伝える手法を指す。アレグザンダーは自著『時を超えた建設の道』で建築におけるパタン・ランゲージを紹介するが、後にアジャイル開発の中心エンジニアとなる、ケント・ベックやジェームス・O・コプリエンは、このアレグザンダーの思想から種を得て、アジャイル開発を成長させたと言われている。
kyon_mm氏もアレグザンダーの思想に同意するところは多く『時を超えた建設の道』の一部を引用し、この中の「時を超えた道を求める者は、まず無名の質を知らねばならない」について説明した。それは講演冒頭に参加者から募った生き生きエピソードがまさにそれだと言う。参加者のエピソードは、生き生きした開発組織や開発業務だったからこそ生まれたエピソードで、そこには生き生きした開発組織のためのヒントが隠されている。しかし、そのヒントに名前を付ける、言語化するのは意外に難しい。皆のエピソードは無名なのだ。
kyon_mm氏は「だからこそ名を付けられない質、無名の質を知り、理解する術を知らねばならないのです。無名の質を得るには、まずそこに通じる門が必要で、それはたくさんの無名の質からパターンを見つけてパタン・ランゲージを組み立てればならないのです」と語る。さまざまに語られた生き生きとしたエピソードから、なんらかのパターンを探り、それをパタン・ランジゲージとして言語化できれば、他の人とも共有できるようになる。
アレグザンダーの思想を昇華させ、生き生きとした組織につなげる
kyon_mm氏は、上手で楽しいソフトウェア開発を大切にし、ソフトウェア工学の歴史を探ることを目的とする「47機関」というチームに所属している。現在は、アレグザンダーの思いを今のアジャイル開発に浸透させたいとし、「生き生きとした(開発)組織の道を、もう一度考え直したい。その門をしっかりと建てたいと思っています」と述べた。
そこで、アジャイル開発を見直してみると、開発の流れの中で生まれる知識や知見がパーツのようにひと塊りとして扱われ、開発者はそれを使いこなすことだけに注力しているのではと考えた。パーツ化されやすいのは、開発者が知識や知見を区切りやすいパターンで捉らえがちなためで、そしてパーツ化されると、後はそれをうまくはめ込めば良いと考えがちだ。kyon_mm氏は、パーツをはめれば、それでアジャイルではない。そもそもパーツの構成物質である知識や知見をしっかり土台にしなければ、生き生きとした組織に向かう道にはならないと考えた。
そこでkyon_mm氏が提案したのが、パーツの解体だ。区切りやすい部分で考えるのではなく、Extreme=極度の・徹底的な、Small=小さいものから、Patternを作る「Extreme Small Patterns」という手法だ。Extreme Small Patternsで扱うエピソードは、みんなで難題に挑んで解決したといった内容を、みんな、難題、解決、挑戦などとさらに細かく深掘りしてパターンを探し、生き生き体験のより根源的な部分を目指すものだ。
kyon_mm氏は、Extreme Small Patternsの作業過程を紹介した。生き生きとした組織に関連する言葉をポストイットに記載してどんどん貼っていき、関連がある部分をつないでパターンを探っていく。
ここではアジャイル開発で重要なレトロスペクティブという言葉に注目した。レトロスペクティブは振り返りの意味で、開発サイクルの最後に反省や改善点を探る工程だ。レトロペクティブにつながる道を見てみると発散とつながる。そして発散には「それってProblemなんだっけ」「ちょっと落ち着いて」といった言葉が関連する。
また発散には軌道修正という言葉も関連していて、軌道修正したいときは「気になった事柄があるので、後で質問させてください」といった表現や、また「いやいや、ちょっと待って、今言ってよ」と変化したり「タイマーが鳴ったのですが、このまま続けても大丈夫ですか」といった展開になったりする。つまり、軌道修正するためのセリフには、いろいろな表現が使われていることがわかる。
kyon_mm氏は「アジャイルの現場で行われているレトロスペクティブが、実際にうまくいっている、生き生きと行われている時は、とても小さくて、なかなか捉えきれない、名前をつけるのも難しいような、小さな普段のやりとりがあるからではないかと思います」と、アジャイル開発の成功につながるパタン・ランゲージのためには、なにげない言葉のやりとりにまで戻り、小さな粒度で見ることが大切であると説明した。