プロセス分科会

———————————————————————-
第43回 SEA関西プロセス分科会 活動報告
2011/1/29 SEA関西世話人 小林修
1.開催の概要

去る1月15日 土曜日、SEA関西プロセス分科会が開催された。
場所は大阪駅第2ビルにある、大阪市立大学文化交流センターのホール、120人収容の大会場である。(大阪市立大学文化交流センターは、SEA幹事である中野秀雄 大阪市大教授の本拠地)

関西プロセス分科会の開催は昨年の5月以来、8ヶ月ぶりとなる。
その間、世話人の多忙さやメーリングリストの一時停止などもあり、活動が停止状態だったので、今回どれだけ人が集まるか不安もあったが、幸い、事前の参加申し込みは50人に達し、当日に若干の欠席はあったものの、会場の広さと丁度バランスの取れた人数での盛況となった。

今回の講師をお願いした小川さん、阪井さんが御自身のブログやTwitterで宣伝して頂いた他、XPJUG関西(XPユーザーグループ関西支部)や「てふかん」(テスト技術者交流会関西勉強会)など、交流のあるコミュニティにも案内を回していただいたことが効を奏したようだ。
2.テーマ選びの経緯

SEA関西の分科会は、これまでは主に金曜日の晩に2時間程度の時間で開催してきたが、今回は講師をお願いした方々の都合もあり、土曜の午後の開催となり、それでは、ということで、午後いっぱいを使ったテーマ3本立てという欲張ったプログラムとなった。

 1. 阪井誠さんによる「チケット駆動開発による現場力の向上」
 2. 小川明彦さんによる「TestLinkのベストプラクティス」
 3. 「てふかん」の角口勝隆さん、新美崇宏さん、渡辺亮さんによる「なぜなぜ分析はなんでうまくいかへんねん」

小川さんと阪井さんは、SEA関西プロセス分科会の勉強会の常連メンバーだが、昨年の秋に共著で「Redmineによるタスクマネジメント実践技法」という本を出版された。その本の出版記念講演を前からお願いしていたのが、今回実現したもので、発表もその本の内容に沿ったものとなっている。

もうひとつの「なぜなぜ分析」に関する発表を「てふかん」の皆さんにお願いすることになったきっかけは、昨年大阪で開催された組み込み技術のETWest2010の「コミュニティセッション」である。そのセッションに、私は「関西フォーマルメソッド勉強会」を名乗って知人と参加していたのだが、その同じセッションで「てふかん」として参加されていた角口さん、新美さん、渡辺さんのトークセッションに強い印象を受けた。ぜひこの時の続きを聞きたいと思い、SEA関西での発表をお願いしたところ、快くお引き受けいただき、今回発表の運びとなったものだ。

さて、ある意味「成り行き」で決まった今回のテーマの組み合わせだが、何か全体を通してのテーマと言えるものがあるだろうか?
私としては、それを「元気の出る改善力」としたいと思う。「元気の出る」とは、今回、阪井さんが強調されていたことだが、他の発表にも共通する要素だと感じたからだ。

いわゆる「ヨレプロジェクト」「デス・マーチ」の中で、現場で開発に携わる人たちの「元気」がどんどん失われていく。私自身も、これまで経験してきたプロジェクトの中で、「元気」や「モチベーション」を維持することの難しさを痛感することが何度もあった。
特にこれは、システムのリリースが近付き、工程の「下流」に近付く程強くなる。
こんなとき、その原因としてまず思い浮かぶのは、以下の点だ。

 (1)工程が「下流」に行くにつれ、それまで隠れていた「上流・中流工程」の問題が表面化し(要件定義の漏れ・曖昧さ、ぎりぎりでの仕様変更要
    求、コンポーネント間のインターフェースミスマッチ等)、上・中・下流の作業が入り乱れて、タスク管理の収集がつかなくなる。
 (2)実装が不完全だったり、単体テストによる品質維持ができていないまま評価テストに入り、噴出する不具合の管理・作業指示で現場の作業がオ
    ーバーフローするとともに、評価テストのスケジュールも混乱する。
 (3)相次ぐ問題に対する是正措置として様々な手が打たれるものの、有効性を確認することが十分できないまま、管理強化・手順強化が積み重なり、プロジェクト全体の作業負荷がますます増大する。

今回の分科会では、阪井さんの発表が(1)に、小川さんが(2)に、「てふかん」の皆さんの発表が(3)にそれぞれ該当すると思う。
これらの問題に取り組む事で、少しでも現場の「元気」を向上させ、より充実した開発プロジェクトとしていくための参考になればというのが、今回の分科会の世話人である私の思いである。

以下、各発表の内容について、少し紹介していきたい。

3.阪井さんの講演内容

阪井さんの発表は、「チケット駆動開発」を取り入れる事で、苦境にあったプロジェクトがうまく回りだし、メンバーも元気に、積極的になっていったという実
体験を基に、チケット駆動開発の効果や導入の仕方を分かりやすく解説するものだった。

「チケット駆動開発」という言葉は、今ではだいぶ知られてきているが、SEA関西の勉強会等で初めて耳にした時は、まだあまり知られていなかったと思う。(もっとも、知らなかったのは不勉強の私だけ、だったのかもしれないが)
しかし、私にはこの言葉にピンと来るものがあった。この名前だけで、どういうものか何となく解る気がしたのだ。

XP(eXtremeProgramming)に「テスト駆動開発」というプラクティスがある。これは、プログラミングに先だって、必ずまず「テスト」の作成から始めることを言うが、「チケット駆動開発」も、すべての作業に先だって、必ず「チケット」と呼ばれるものを管理ツールに登録することから始める。
(これを端的に表す言葉として”No Ticket, No Commit”が紹介された。)
「テスト駆動開発」という言葉の理解が前提となっているものの、「チケット駆動開発」とは実に的を得た、直感的な命名だと思う。

阪井さんの発表の中で特に印象に残ったのは、やはり「チケット駆動」を導入することでメンバーが自分でチケットを切ったり、他のメンバーのチケットをフォローするようになったりと、チームメンバーの積極性が増したという点だろう。それとチケットによって、プロジェクトに「リズムが生まれる」という点。
実際の開発における改善活動の中では、この「メンバーの積極性」と「リズム」を引き出すことはとても大きなポイントだと思うが、実現するのは非常に難しい。
今回の阪井さんの発表内容は、その意味でとても参考になると同時に、実に「うらやましい」ものだった。

なお、阪井さんの発表に使われたスライドは、以下のWEBページで公開されているので、関心のある方は是非参照して欲しい。

http://sakaba.cocolog-nifty.com/sakaba/2011/01/post-a726.html
4.小川さんの講演内容

小川さんは、いつの頃からかSEA関西の集まりによく顔を見せてくれるようになった。最初にSEA関西の分科会に参加されたのは2004年3月頃からなので、もう7年近くになる。
参加当初から非常に高い問題意識を持った人で、分科会でも必ず質問し、世話人会や勉強会にもよく参加して、毎回自分のかかえる課題や、それに対処するための手法に関しての積極的な議論を行ってくれている。(実際、ここしばらくの間、SEA関西を支えてくれているのは実は小川さんではないかと思えるくらいだ。)
その小川さんがここしばらく継続して取り上げて来られたのテーマが、今回のチケット駆動開発とTestLinkである。「チケット駆動開発」という言葉をSEA関西の場で最初に持ち出されたのも、確か小川さんだったはずだ。
そうして、とうとう、チケット駆動開発に関する本を出版された。

その本、「Redmineによるタスクマネジメント実践技法」は小川さんと阪井さんの共著だが、本と今回の発表の内容をみると、お二人の観点の違いがはっきり出ていて興味深い。
阪井さんの方は、チケット駆動の導入が直接現場にもたらす効果に焦点をあて、その適用についても「効果があれば使えばよいし、かえって大変になりそうだったら、やめておけばいい」という現実的なスタンスだが、小川さんの方は、チケット駆動開発を軸にして、さらに構成管理・テスト管理とも連動した、より大きなプロジェクト管理の枠組みの構築を目指されているようだ。

そのため、今回の発表でもチケット駆動開発そのものではなくTestLinkを取り上げている。このTestLink は、著書の中でも、「Redmine と TestLink の連携」と題して大きく扱われているが、今回の発表は特にTestLinkそのものに焦点を当てたものになっている。

TestLinkとは、オープンソースのテスト管理Webシステムで、テストケース・テスト作業・テスト集計を一括管理できる。数万件のテストケースを扱うことができ、Excelで作成されたテスト仕様書のWeb化も可能とのことだ。

小川さんは、XPJUGのメンバーとして長いこと XP やアジャイル開発の研究や実践に取り組まれてきているが、テスト、特にシステムテストや受け入れテストなど、テスト対象が大きいものについては、XPやアジャイル開発の提唱する、短期のリリースを反復する形のプラクティスに馴染まず、別の枠組みが必要ではないか、とずっと感じてこられたようだ。そのため、アジャイル開発プラクティスの議論でも、常に「構成管理」「テスト管理」との連携・整合を意識されていたように思う。今回は、その小川さんのTestLinkに関する考察をまとめられた内容の発表となった。

その詳しい内容については、発表に使われたスライドが以下に公開されているので、是非参照して欲しい。

http://www.slideshare.net/akipii.oga/testlink-6577325

5.なぜなぜ分析の発表内容

先にも書いたように、今回「なぜなぜ分析」をテーマの一つに取り上げることになったきっかけは、昨年のETWest 2010のセミナーの一画に設けられた「コミュニティ・セッション」である。
このセッションで、私は「関西フォーマル・メソッド勉強会」というグループのメンバーとして発表者に加わっていたのだが、この同じセッションで私の属するグループの次に発表されたのが、今回発表をお願いした「てふかん」の3方による「なぜなぜ分析はなんでうまくいかへんねん」だった。
形式は3名のトーク・セッションで、タイトルが示す通り関西弁での軽妙な掛け合いのスタイル。題材としてメンバー自身の失敗談からはじまり、有名評論家の著書に含まれるなぜなぜ分析の強引・独断的展開に対する突っ込みも交えながら、随所に笑いの要素を混ぜ込み、かつ、確かな分析力も感じさせる内容で、思わず引き込まれる内容だった。

これはもう一度聞いてみたい、さらに続きを聞きたいとの思いがつのり、SEA関西での再度の発表をお願いしたところ、快く引き受けていただくことができた。

ところで、私がなぜなぜ分析にこれほど引きつけられたのは、やはり普段の仕事の中での失敗やうまくいかない事について、「なぜだろう」と考えつつも良い解決策を見つけられない、その悩み・もどかしさがあったからだ。悩み・疑問を抱き考え続けることは大切だが、それをどう考えるか・扱うかについての枠組みや方法論が抑えられていないと、堂々巡りに陥ったり、有効性の確かめられないまま形式的な作業手順の詳細化の累積になったりしてしまう。
このような問題について、角口さん、渡辺さんのお二人が、それぞれ別の観点から指針を与えてくれた。

まず角口さんは、なぜなぜ分析の「アンチパターン」の観点から、分析がうまく行かないパターンと原因について説明された。「うまくいく方法」を見つけ出すのは至難だが、失敗経験から有用な情報・ヒントを得ることは可能だというアプローチで、なぜなぜ分析の「失敗学」という内容である。
アンチパターンを「分析失敗」「分析不足」「改善不備」「実現不可」の4つに分類し、それぞれについて事例を上げながらの説明で、なぜなぜ分析の「失敗学」とも言える内容で、納得しながらも、身につまされる思いで聞かせていただいた。
分析結果の5段階を逆順に読んでみること、一見関係無さそうな周辺情報も無視しないこと、実現可能性・継承可能性を考慮すること、など、実際の問題解決の際に覚えておくと役に立ちそうなポイントをいくつも教えていただいた。
事例の紹介においては、新美さんとの掛け合いが、会場に和やかな活気をもたらしてくれたことも印象に残る。
また、最後に角口さんの個人的見解として付け加えられた「自ら新しい視線を持つことが大事」「真摯にプロとしてあるべき姿を描き、どうすべきだったかの叡智を募る姿勢も大事」という言葉には、胸を打たれるものがあった。

続く渡辺さんの発表は、「理論編」と題してなぜなぜ分析を探索問題の応用と捉えて考察する内容で、有名評論家の著書で紹介された「なぜなぜ分析」の例題に対する突っ込みで笑いを交えながら、いくつかの重要なポイントを説明された。
「本当の」ゴールは何かを見極めた上で、自分の裁量の範囲で使える「資源」は何かや、一見関係無さそうに見える周辺情報を考慮しながら、一本道の分析ではなく、複数の選択肢を考慮した上で、探索範囲を絞りこんでいく、という内容で角口さんの発表とはまた違った観点で参考になった。
また、実際に分析を始める際に使えそうなテンプレートの提案など、実践への配慮も盛り込まれていた。
また今回の発表では表立って言及されていなかったが、探索問題等、渡辺さんのソフトウェア科学に関する見識も感じさせるもので、今後さらに踏み込んだ考察を期待したいとも思った。

なお、なぜなぜ分析に関しては発表者の意向で、当日の発表用のスライドは公開できないが、角口さんが「なぜなぜ分析に関する良書」として強く推薦されていた以下の書籍を紹介しておきたい。

  なぜなぜ分析 実践編
    小倉 仁志 (著)
    日経BP社 (2010/12/6)
    ISBN-10: 4822230376
    ISBN-13: 978-4822230371

6.今後の活動について

さて、今回、8ヶ月ぶりの再開を果たして少しほっとしたところで、この報告を書いているが、これをきっかけに今年はまた、内容のある活動にしていきたい。
今回参加された皆さんやSEA関係のメーリングリストに参加されている皆さんからのご意見・ご要望を期待しています。