pattern mining-scrum gatheringtokyo20130115

17
1 Scrum Alliance Regional Gathering Tokyo ススススススススススススススススス ススススススススススススススススススススススス スス スス ススススス スススススススス 2013 ス 1 ス 15 ス Rev. 1.1

Upload: hironori-washizaki

Post on 10-May-2015

2.975 views

Category:

Documents


0 download

DESCRIPTION

Scrum Alliance Regional Gathering Tokyo 2013 におけるパターンマイニング・ワークショップの資料(その場でのマイニング結果付き)。

TRANSCRIPT

Page 1: Pattern mining-scrum gatheringtokyo20130115

1

Scrum Alliance Regional Gathering Tokyo

スクラムの実践現場でのよいやり方を形式知にしよう!

~ パターンマイニングワークショップ

鷲崎 弘宜早稲田大学、国立情報学研究所

2013 年 1 月 15 日Rev. 1.1

Page 2: Pattern mining-scrum gatheringtokyo20130115

2パターン(パタン)とは 特定の「文脈」で繰り返し起きる「問題」とその「解決」の記述

経験的なコツや暗黙知を、言語化して形式知にしたもの 問題の発見と解決のための再利用可能な道具 建築のパタンランゲージに端を発す [Alexander77]: 活動の拠点、小さな広

場、路上のカフェ、街路への開口・・・ 概ね一定の形式で記述

ソフトウェア開発のマネジメントパターン ⇒ アジャイル開発へ 組織構造(チーム編成)最適化の指針、パターン 生産性の高い開発プロセスに共通する優れたプロセスのパターン 例 : 開発工程の生成的パターンランゲージ(作業の分割 ・・・)、エピソー

ド(顧客を引きこめ ・・・) [PLoPD01]

[Alexander77] C. Alexander 他著 , 平田翰那訳 , “パタン・ランゲージ”, 鹿島出版 , 1977Alexander, Christopher, et al. A Pattern Language. Oxford University Press, 1977.[PLoPD01] PLoPD Editors, “ プログラムデザインのためのパターン言語” , ソフトバンクパブリッシ

ング , 2001

(文脈)の状態において対象が(フォース・影響力)を持った(問題)に直面しているとき、(解決)によって文脈は(結果)へと変わっていく。

Page 3: Pattern mining-scrum gatheringtokyo20130115

3

例 : ペアで開発せよ [PLoPD01]

文脈: コード所有権が確認され、開発が進行している問題:人は一人での問題解決を怖がるフォース:

人は誰かの援助により問題を解決できると感じるときがある あまりに多くの人々がいてもだめである

解決: 気の会う設計者をペアにして一緒に作業させる。そのほうが生産性が高まり、死角も減る

結果: より効率的な実装工程となる

(文脈)の状態において対象が(フォース・影響力)を持った(問題)に直面しているとき、(解決)によって文脈は(結果)へと変わっていく。

Page 4: Pattern mining-scrum gatheringtokyo20130115

4

例 : バッファロマウンテン [PLoPD01]

文脈:複数の部門にまたがっている。部門間のコミュニケーションはプロジェクト成功の鍵である。

問題: 大規模組織のコミュニケーションを効率的に活用したい フォース:

コミュニケーションの混乱はプロジェクトの規模に比例 役割孤立とコミュニケーション欠如はエラーの元 完全分散コントロールは、コントロールの崩壊に

解決: 「中心」からの距離が遠いほどその他の組織との関わりを減らし、役

割の独立性を高める プロジェクトにおいて、ひとつの役割のコントロールの範囲を広げ、類似した共同作業は役割と併合する

結果: 役割間でバランスの取れたコミュニケーションを持つ関連パターン : 「責任を動かせ」「作業は内側へ流れる」

(文脈)の状態において対象が(フォース・影響力)を持った(問題)に直面しているとき、(解決)によって文脈は(結果)へと変わっていく。

Page 5: Pattern mining-scrum gatheringtokyo20130115

なぜ Scrum でパターンなのか? Scrum ガイドはあくまでルールブック [ScrumPLoP]

プラクティスの背景にある原理や理由を語っていない 原理や理由は、経験やコミュニティから現われる

プラクティスが必ずうまくいくとは限らない 文脈や問題、フォースを捉えると、取捨選択や適用のコツが明らかに 個々の文脈に応じたプラクティスの具体化、適用パターン

既存プラクティスの周辺や外に問題・解決を発見できるかも 新しいパターン、プラクティスへ

経験やコツを形にして、 Scrum の発展やノウハウ拡充へ! 自身の経験の振り返り、再利用、発展 組織・他者による再利用、発展

5

[ScrumPLoP] http://www.scrumplop.org/[Beedle00] M. Beedle, et al., 2000, 山田訳 , http://www.metabolics.co.jp/XP/Scrum/Scrum.html[Cope08] J. Coplien with J. Sutherland, 2008, 川口訳 ,

http://d.hatena.ne.jp/wayaguchi/20111217/1324131382

Page 6: Pattern mining-scrum gatheringtokyo20130115

パターンのマイニング手順

(1) 発掘ドメインの決定 (2) 各個人が具体的な成功体験談を項目別に付箋紙に記述

初期状況 : 実現する背景,妨げる環境や問題

アプローチ : 解決の方法や手段 結果 : 得られた結果

(3) 体験談を集団内で説明し,類似のものを近くに配置

6

I1

初期状況 アプローチ 結果

I2

A1

A2

R1

R2

I3

I4

A3

A4

R3

R4

I5 A5 R5

成功体験談

成果や経験に含まれるノウハウをパターンとして発掘

インタビュー、自身、講義、ワークショップ

Linda Rising: Patterns Mining, in Handbook of Object Technology, CRC Press (1999)深澤良彰監修 , 鷲崎弘宜ほか著 , “ ソフトウェアパターン” , 近代科学社 (2007)

Page 7: Pattern mining-scrum gatheringtokyo20130115

マイニングの手順(つづき) (4) 抽象化して一定の具体性を持って下記の項目を合致さ

せられるか分析(単一体験談も可),付箋紙に記述. 文脈 : 集合中の体験談に共通の背景や環境 問題 : 共通に扱われる問題 フォース群 : 考慮する制約や影響力.「Aである.しかし,Bであ

る」 解決 : 共通の解決策 結果 : 結果に共通する状況や効果

(5) 扱う範囲と効果のバランスを集団でレビュー,修正. (6) 名前を付けてパターン候補

7

I1

初期状況 アプローチ 結果

I2

A1

A2

R1

R2 Ca Pa

Ra・ Fa1・ Fa2

Sa

文脈 問題 フォース群 解決 結果

Rb・ Fb1・ Fb2

Sb

成功体験談 パターン候補

Page 8: Pattern mining-scrum gatheringtokyo20130115

8マイニングの「コツ」 手順や道具立て

体験談、続いて、パターン化。問題やフォースの見極めは最初困難。 記述形式が定まっていれば、マイニングしやすい アプローチ “のみ” 似た体験談群をパターン化するのは誤り!

使えるパターンの条件 適度に具体的であること。 「 A ならばB」というルール規則ではないこと。 そうそう!

周辺パターン候補に気付き、パターンランゲージ(言語)へ 文脈やフォースを変える。残った問題の解決を考える。 パターンを言葉として、異なる立場間の議論・アイディア交換可能に 言葉が言葉を生む(創造性)

街の中心部には 活動の拠点 として 小さな広場 を設けよう。その広場には、訪問者や近隣の人々が気軽に集い落ち着けるように、いくつかの 路上のカフェ が集まってひらかれるように奨励しよう。それぞれのカフェは、オープンエアで楽しめるように 街路への開口 を持たせられるとよい ・・・

Page 9: Pattern mining-scrum gatheringtokyo20130115

【ワークショップ 】 Scrumを題材としたパターンマイニング

Scrum の説明や教育 Scrum の組織への導入 Scrum の実施

プラクティス適用のコツ その他の工夫

Scrum と日本的商習慣や契約形態 Scrum の大規模開発への適用 Scrum の分散・オフショア開発への適用 (その他)

9

Page 10: Pattern mining-scrum gatheringtokyo20130115

Scrum をパターン集・パターンランゲージとして捉える動き

1. Scrum の基本要素をパターンとして説明 スプリント、スクラムマスター、バックログ、・・・ [Beedle00] コアパターンランゲージ [ScrumPLoP]

2. Scrum Patterns 既存の組織パターンで Scrum を表現(責任を動かす、顧客を巻き込む、・・・ ) [Cope08]

組織構造、チーム [ScrumPLoP] 分散開発、大規模化 [ScrumPLoP] 回顧(振り返り)、価値ストリーム、その他 [ScrumPLoP]

3. Software Scrum Patterns: ソフトウェアに特化 [Cope08] 既存の組織パターンで Scrum を表現(アーキテクトが製品をコン

トロール、・・・) [Cope08]

ScrumPLoP 2013, Helsingør, Denmark !

10

[ScrumPLoP] http://www.scrumplop.org/[Beedle00] M. Beedle, et al., 2000, 山田訳 , http://www.metabolics.co.jp/XP/Scrum/Scrum.html[Cope08] J. Coplien with J. Sutherland, 2008, 川口訳 ,

http://d.hatena.ne.jp/wayaguchi/20111217/1324131382

Page 11: Pattern mining-scrum gatheringtokyo20130115

PLoP

Chili PLoP

Euro PLoP

Sugarloaf PLoP

Viking PLoP

Asian PLoP

参考 : Pattern Languages of Programs ( PLoP )

パターンおよびパターンランゲージの国際会議 Hillside Group 主催 http://www.hillside.net/ シェファーディングによる事前改訂 ライターズワークショップによる集団推敲 PLoP, EuroPLoP, ChiliPLoP 特定ドメイン : ScrumPLoP, ParaPLoP

アジア・国内 2002 MensorePLoP 2010 1st AsianPLoP: 40名、パターン 16 2011 2nd AsianPLoP: 55名、パターン 22 2013 3rd AsianPLoP (仮) 9月上旬 http://patterns-wg.fuka.info.waseda.ac.jp/asianplop/

11

MensorePLoP2001 (撮影 : 瀬戸川 氏)

Page 12: Pattern mining-scrum gatheringtokyo20130115

12参考 : 学習を深めるために パターンの原典をあたる

C. Alexander 他著 , 平田翰那訳 , “パタン・ランゲージ”, 鹿島出版 , 1977 ソフトウェアパターンの広がり全体を掴む

深澤監修 , 鷲崎 , 丸山 , 山本 , 久保 , “ソフトウェアパターン”, 近代科学社 , 2007. 羽生田栄一 監修 , パターンワーキンググループ著 , " ソフトウェアパターン入門~基礎から応用

へ~ ", ソフトリサーチセンター , 2005. ソフトウェアパターンとパターンランゲージの最先端を知る

鷲崎 , 江渡 , 吉岡 , 位野木 , 本橋 , 羽生田 , 懸田 , 井庭 , “ ソフトウェアパターン - 時を超えるソフトウェアの道 ", 情報処理 , 情報処理学会 , Vol.52, No.9, 2011.

Page 13: Pattern mining-scrum gatheringtokyo20130115

13

参考 : 開発工程の生成的パターンランゲージ

組織の大きさを決めよ

スケジュールの大きさを決めよ

役割の中のドメイン専門性

段階的実施

パトロン

形式は機能に従う

見習い

開発者が工程をコントロール

自己選抜チーム

組織は場所に従う

アーキテクトが製品をコントロール

アーキテクトもまた実装

アーキテクチャレビュー

ソロ演奏名手

組織は市場に従う

コンウェイ法則

コード所有権

シナリオが問題定義

アプリケーション設計はテスト設計に拘束される

QA を引き込め

雇われ分析者

防火壁

グループ確認 顧客を引き込め

門番

責任を動かせバッファロマウンテン名前付き安定ベース

流通範囲を整える

分割統治

割り込みはブロッキングを解除

ハブとスポークとリム

ステージ間を切り離せ

審美的パターン プロトタイプ

結合は待ち時間を減らす

作業は内側へ流れる

役割あたり3-7ヘルパ

ペア開発

成功に報いよ

小刻みな遅れを作るな

割り込みに割り込むな

プロセスパターン

組織パターン

Page 14: Pattern mining-scrum gatheringtokyo20130115

14

マイニング結果経験者の活用 文脈 : アジャイルを導入したい 問題 : 知識がない。確信が持てない。 フォース :

自分が正解を持っていない。 案件へのマッチが必要

解決 : 誰かに聞く(その「誰か」の見つけ方が述べられるとなおよい)

結果 : 自信がつく。

とりあえずやっちゃえ 文脈 : 導入を検討中 問題 : はじめられそうではじめられない フォース :

成功するかどうか不明 失敗OKの案件あり やる気のある人あり

解決 : 失敗OKの案件やリカバリーOKのフェーズまで試す。(パターンとして二つに分けられそう)

結果 : 何とか始められる

Page 15: Pattern mining-scrum gatheringtokyo20130115

15

マイニング結果百聞は一見にしかず 文脈 : 画面仕様がなかなか決まらない 問題 : 動く画面を見ないと分からない フォース :

自分で見たものしか信じない (全体の動作可能な実装には時間を要するが、画面部分のみであれば容易?)

解決 : 動くものを早期に提供する。 結果 : スピードアップ、もれなし

とりあえずやってみる 文脈 : チームが複数 問題 : コミュニケーションがとれていない(他チームへの波及に絞るとよい)

フォース : 朝会経験者が少ない。 懐疑派が多い。隠したい。余計な仕事が降ってくる?

解決 : 朝会をやってみる。他のチームにも波及 結果 :

Page 16: Pattern mining-scrum gatheringtokyo20130115

16

マイニング結果振り返りは大事 文脈 : アジャイルの経験が不足 問題 : 問題は認識しているが各自では解決できていない フォース :

シェアすると、解決案がでやすい (平常はそれぞれに作業、定期的に集まれる、といった何らかの他の

フォースあり?) 解決 : 振り返りにより問題シェア、解決案の明確化 結果 : シェアされ、解決される。自発的にシェア、提案する

ように。

目標達成 文脈 : スプリント期間中にすべて完了しない 問題 : 目標が不明確 フォース : (以下はフォースというよりは問題に近い)

不安を解消して取り組みたい モチベーションをあげたい

解決 : 目標をブレイクダウンして見える化 結果 : 安心感が生まれサポートも可能に。納期守る。

Page 17: Pattern mining-scrum gatheringtokyo20130115

17

マイニング結果チキンハート 文脈 : 知らない人に説明したい 問題 : 保守的で受け入れてくれない フォース :

失敗したくない 変化に対応できない 今のプロセスには不満

解決 : 失敗しても良い形でやってみる。(誰がどのように実施するとよいのか、明示されるとなおよい)

結果 : 成功体験、少しずつ変化

安全度まで失敗する 文脈 : 知識はあるが経験なし 問題 : やるべきことが分からない フォース :

失敗は怖い。恥ずかしい。 体験することで学ぶ。

解決 : 手軽にやってみる。疑似体験。(どのように疑似体験するか、明示されるとなおよい)

結果 : 失敗と体験を通じて理解深まる