パターンライティングワークショップ agilejapan 2013
DESCRIPTION
AgileJapan 2013で実施したPattern Writing Workshopの資料です。 今回のワークは「パタンの書き方」を参考にして実施しました。 http://www.cultureworks.jp/blog/?p=44 皆様に作っていただいたパターンと、その過程の議論もとても興味深くうかがいました。 満席を超える参加をいただいただけでなく、満足度のアンケートも5点満点のところ平均4点以上いただくことができました。ご指摘いただいた点は次回に活かします。ありがとうございました。ご質問やご意見などがございましたら、お気軽にお声がけください。 ワークショップに参加してくださった皆様、AgileJapan 2013を応援してくださっている皆様、どうもありがとうございました。 六辺さんによる「コミュニケーションメディアとしてのパターン:Agile Japan 2013 レポート(3)」 http://www.manaslink.com/articles/12082TRANSCRIPT
パターンライティングワークショップ Agile Japan 2013
2013年5月24日 本橋 正成(カルチャーワークス)
羽生田栄一(豆蔵)
自己紹介
羽生田 栄一
• 株式会社 豆蔵
• 回文 – 行けっ!孔子だ!New羽生
田氏、烏骨鶏(いけっこうしだにゅうはにゅうだしうこっけい(にゅうで一文字))
– @HHany
本橋 正成
• 合同会社カルチャーワークス/東京工業大学
• 回文 – ルナ飛びし本橋の志は灯火
となる(るなとびしもとはしのしはともしびとなる)
– 本橋は友(もとはしはとも)
– @motohsi
目的
• 本日、お持ち帰りいただきたいこと – アジャイルの知見をパターンの技術を用いて、表現し、デザイ
ンすることができる。 – 他の人のアジャイルに関する知見をパターンという形を通じて
共有することができる。 • そのために
– パターンとパターンランゲージ、プロジェクトランゲージについて知ることができる。
– 実際にパターンを書いてみる。 • この資料の一部は、J. Yoder氏の資料を参考にしています。 • このワークショップは「パタンの書き方」を参考にしていま
す。 h?p://www.cultureworks.jp/blog/?p=44
問い: なぜ、パターン技術 (含むパターンランゲージ、プロジェクトランゲージ)
を使うのか。
もしくは、パターン技術がないと世界はどうなるか?
2010 ソフトウェア・シンポジウム、平鍋氏の基調講演発表資料より
パターン
パターンという見方
Tokyo Camii & Turkish Culture Center h?p://www.tokyocamii.org/ CultureWorks, LLC 8
デザイン・パター
ン
(日本語訳) 発売日: 1999年10月
h?p://www.amazon.co.jp/gp/product/images/4797311126/ref=dp_image_0?ie=UTF8&n=465392&s=books
CultureWorks, LLC 9
アナリシス・パター
ン
h?p://www.amazon.co.jp/dp/4894716933/
h?p://en.wikipedia.org/wiki/File:Event-‐analysis-‐pa?ern.svg
(日本語訳) 発売日: 2002年4月 CultureWorks, LLC 10
h?p://www.amazon.co.jp/gp/product/images/0201741571/ref=dp_image_0?ie=UTF8&n=52033011&s=english-‐books CultureWorks, LLC 11
日次ミーティング IPAのプラクティス(パターン)サンプル
• 別名 – 朝会、朝礼、デイリースクラム、
スタンドアップミーティング • 要約
– 毎日、時間を決めて短い時間で関係者が顔を合わせる。その結果、チーム全体が日々の必要な情報を共有できるようになる。
• 問題 – 情報の共有遅れが問題を大き
くする
– 情報共有の時間が取れないまま、状況認識と問題対処への判断が遅れると、問題が大きくなり、より深刻な状況を招いてしまう。
• フォース – 関係者が多忙なため、情報共
有のための時間が取れない – 情報共有の間隔が空いてしま
うと、情報量が増え、共有に必要な時間が余分にかかってしまう。
• 解決策 – チームのメンバー全員が集
まって必要な情報を短い時間で毎日共有する。
– 短い時間(15分が目安)で済むように、必要な情報に絞って共有する。
– 情報共有の間隔が長くなるほど、共有に要する時間が必要となるため、毎日短いミーティングを設けるようにする。
[IPA 2013]
組織構造のバウンダリをゆるめる IPAのプラクティス(パターン)サンプル
• 要約 – 組織やプロセスの構造が生み出
すボトルネックがあれば、バウンダリをゆるめることによって、発生している問題を当事者である「我々の」問題として解決しやすい構造を作る。その結果、根底の問題を解決できるだろう。
• 問題 – 組織やプロセスの構造が生み出
すボトルネックがある。
– プロダクトオーナーは、バックログの維持など、開発チームを含むステークホルダーとの調整や、継続的に発生する割り込みなどの状況で忙殺され、相対的にボトルネックになりやすい。
• フォース – バウンダリを明確に切り分けようと
思っても、複雑で現実的ではないが、その周辺こそ創造性を発揮しやすいところである。
– コンテキストによって、それぞれの持つ意見が正しいことが説明できる。しかし、明確なバウンダリ内にいると他のコンテキストを理解しにくくなる。専門性を活かしたいが、原理主義的に自分の専門を持つことにより、他の状況を配慮せず深い対立を生み出すことがある。
– 専門知識の交換には時間が必要であり、異なった部門にいると、コミュニケーションの時間が限られる。
• 解決策 – 組織的な構造が生み出すバウン
ダリをゆるめよう。お互いに役割を越えてチームとして助けあおう。
[IPA 2013]
パターンとは? パターンの定義
アレグザンダーの定義 “各パターンが、環境の中で繰り返し繰り返し発生する問題を記述し、その問題に対する解決策の要点を記述します。その解決策は、全く同じことを繰り返すことなく、何百万回も適用可能であるようにします。”
採用したパターンの形式
• プラクティス名 – プラクティスの日本語名/英語名
• 別名 – プラクティスの別名
• 要約 – プラクティスの概要説明
• 状況 – 解決すべき問題が発生する状況
• 問題 – 特定の状況下で発生する問題
• フォース – 問題解決策を選択する上で、かぎ
となる考慮点・制約事項
• 解決策 – プラクティスそのものの説明。具体
的な工夫も解説
• 留意点 – プラクティスを適用する上でコンテ
キストに応じた留意点 – プラクティスをそのまま適用できな
い場合の代替策 – うまくいかない場合の注意点
• 効果 – プラクティスを活用した時に得られ
る効果
• 利用例 – 調査先企業への調査から得られ
たプラクティスの利用例
• 関連プラクティス – 関連性の高いプラクティス
• 参考文献 – プラクティスが紹介されている文献
CultureWorks, LLC [IPA, 2013]
名前
• 単語もしくは短いフレーズ — パターンのエッセンスです。名詞句であるべきという人もいます。 – 名前は、ささいなことではなく、とても重要です。
• 良い名前は、コミュニケーションを拡張します。特に名前を聞いたときにその意図を思いめぐらせれば。 – パターンは何かを”構築”します。パターンの名前
は、パターンが構築するものついて言及しましょう。
別名
同じパターンは、他の会社や出版物など他の場所にも存在しているかもしれない。
エクスパートは、民間の伝承や、深い意味を思い起こさせる直感的ではない名前を用いることがあります。別名は、初学者を助けます。
略語もしくはニックネームは、議論を容易にします。
文脈 Context
設定ーターゲットユーザ、パターン適用、サイズ、スコープ、タイミング、メモリの制約など。変わったら解決が役に立たなくなるかもしれないことなら何でも。
Ä あなたは、新しいアイデアを紹介するためのミーティングに呼ばれた「エバンジェリスト」もしくは「専任のチャンピオン」です。そのユーザコミュニティのメンバーは、参加の可否は自由です。あなたは資産を持っている、個人的な貢献がある、もしくは、「近くのスポンサー」や「投資家」です。
フォース
問題が困難となるゆえん フォースはしばしば矛盾しており、緊張を作り出しま
す – 顧客を幸せにしたいです – リソースが制限されています
Ä しなくてはならないもっと重要な仕事がいつもあります Ä 新しいアイデアに興味をもつ人がほとんどです
問題 Problem
短く、そのパターンが解く問題を短く完全に記述してください。
ミーティングはいつも、ありふれた人間味の ないイベントである
どのように我々のミーティングに参加したい 人々を集めればよいのだろうか?
解決策 Soludon
問題を解く提案された方法です。コンテキストによって決定された重要なフォースを解きほぐしてください。他のフォースは無視してもかまいません。
対象聴衆を心に思い浮かべてください。 よいパターンは生成的(Generadve)です。
Ä ミーティングで食事をとること — 朝はコーヒー、紅茶とジュースと一緒にドーナツかベーグル。午後はクッキーとドリンク、お昼にはランチ。
結果として生じる文脈 Resuldng Context / Consequence
もしその解決策を適用したときに起こること、どのフォースが解決され、どのような問題が発生しうるか、どのようなコストと利益があるか
「問題は解決しました」だけでは十分ではありません。
Ä 食事は、ありきたりのミーティング、発表や会合を、
より特別なイベントに変える。もし 初に提供されれば、ミーティングをポジティブな雰囲気で始められる。
他のセクション
よく知られた使い方: あることが一度の発生は「(一回だけの)出来事」です。二度目の発生は偶然の一致です。もし、それが三回以上発生したら、それはパターンです。 Jim Coplien/Gerald Weinberg/Bunny Duhl
関連パターン: 一緒に使用するパターン、使用されるパターン、似ている他のパターン
– 無料の食事ががあるとよいのに、予算がない場合、持参した食事(Brown Bag)にしましょう。自分自身で食事を持ってきたとしても、人々は一緒に食べることができます。
パタンランゲージ
パタンの有機的に繋がった集合
パターンランゲージとは
• 概念(パターン)の集合である。 • 有機的なつながりがある。 • 様々なレベルやスケールに渡っている。 – 技術的、組織的、そのほか、複数の観点でまとめ
られている。
パターンランゲージの例: • AlexanderのGarden – アレグザンダーによる唯一のパターンランゲージ
ダイアグラム
From The Timeless Way of Building
ライティングパターンのための パターンランゲージ (Meszaros & Doble)
1 : Release planning to release product increments 2 : Iteradon planning meedng 3 : Iteradon 4 : Planning poker to esdmate tasks during sprint planning 5 : The project velocity is measured 6 : Short daily meedng to resolve current issues 7 : sprint retrospecdve to learn from previous sprint 8 : Kanban 9 : Sprint review meedng to present completed work 10 : Task board(Task card) 11 : Burn down chart to monitor sprint progress 12 : Flexible process 13 : User stories are wri?en 14 : Mutual commitment to sprint backlog between product owner and team 15 : Incepdon Deck 16 : Priorides (product backlog) maintained by a dedicated role (product owner) 17 : Rapid feedback 18 : Pair Programming 19 : Automated regression test 20 : Test Driven Develpment 21 : Unit Test Automadon 22 : Acceptance tests are run onen and the score is published 23 : System Metaphor 24 : Spike Soludon 25 : Constant refactoring 26 : Simple Design 27 : Only one pair integrates code at a dme 28 : Condnuous Integradon 29 : Use collecdve ownership 30 : Code wri?en to agreed standards 31 : When a bug is found, tests are created 32 : Analog Tools 33 : Customer Proxy 34 : The customer is always available 35 : Product Owner 36 : Development process and pracdces facilitated by a dedicated role (Scrum master) 37 : Agile Coach 38 : Team members volunteer for tasks (self-‐organizing team) 39 : Niko-‐niko Calendar (Smiley Calendar) 40 : Set a sustainable pace 41 : Right agile style for their organizadon 42 : Give the team a dedicated open work space 43 : One whole team 44 : Move people around 45 : Set up a dedicated integradon computer 46 : User Story Mapping 47 : Definidon of DONE 48 : Fun is important 49 : Slacking Organizadonal Structure
Network of Referred Pracdces as a Pa?ern Language
1
23
4
5
6
7
8
910
11
12
13
14
15
16
17
18
19
2021
22
23
24
25
26
27
28
2930
31
32
33
34
3536
37
38
39
40
41
42 43
44
45
4647
48
49
CultureWorks, LLC
プロジェクトランゲージ
パタンのインスタンス
プロジェクトランゲージの例 昨日は初回リリースが無事に終わり、今はふりかえりを
している。 初、スパイク・ソリューションで技術的なリスク事項を確認し、シンプルデザインを心がけたので見通しは良かった。共通の部屋で、チーム全体がひとつになって開発を行った。チームは、ファシリテータ(スクラムマスター)と開発をした。プロダクトオーナーは、様々な調整に走り回りなかなか仕様が決まらなかったことが課題であった。
昨日のリリースに対して障害の報告があがってきた。バグ時の再現テストですぐに確認できたので、継続的インテグレーションを用いてリリースを行った。リファクタリングのタイミングについては意見が割れている。
今後の体制は、顧客プロキシを実現しつつ、組織構造のバウンダリをゆるめながら進むことで、合意を得られた。このプロジェクトは、TOCと組み合わせるなど組織にあわせたアジャイルスタイルが実現できている。ただ楽しい工夫をもくろんでいることは内緒である。
プロジェクトランゲージ
• パタンランゲージのプロジェクトごとの適用である。 – パタンの関連性によって構造が生み出される。 – プロジェクトは、ストーリ(物語)によって語られる。 – パターンを語彙として、それらを組み合わせて、
ビジョン(まだ存在しない未来のイメージ)を表現したもの
プロジェクトランゲージのメタモデル クラス図1 2013/05/20 powered by Astah
pkg
PatternLanguage
ProjectLanguage Project
1..*1
Pattern
1..*1
Story1..* 0..*embeded in
Vision
1..*1
1..*
1
Context
Force
- postsituation1..*
1
Solution
1
1..*1..*
1..*
- precontxt
1..*
1..*
Problem
1..*
1..*
- presituation
1..*1..*
1..*
1..*
1..*
1..*- result contxt
1
1..*
ワークショップ
どうやってパタンを書くのか
ランゲージを創る Pa?ern Language
コトバ発見 Ethnographical
Approach
ビジョンを創る Project Language
対立解消 Conflict
Transformadon
過去を紡ぐ 知識記述
設計・修復 Design and
Configuradon
知識共有
文化を紡ぐ パタンランゲージの世界β
知識発掘
CultureWorks, LLC
未来を紡ぐ
行為・現象
Soludon [S] 解決策
Masanari Motohasi, CultureWorks, LLC
Pa?ern Matrix
Problem [P] 問題
Force [F] フォース
Context [C] 文脈(現象)
Name 名前
Consequence [R] 結果(利点・課題)
Problem domain 問題領域
Soludon domain 解決領域
「こうしたら」 • うまく行ったこと • 学んだこと • ちょっとしたこと • あ、それだ!
• 問題領域に対して解決する
「こうなった」 • 良かったこと・
利益 • 悪かったこと・
課題・留意点
「こうしたかったら」 • 発生した問題 • なぜ解決策が妥
当か • どんな問題を解
決したのか
「なぜならば」 • 他の可能性ある
解決策を妨げる
こと • 問題を難しくさせ
る特定する条件 • なぜ難しい問題
なのか • 考慮した点。 • 〜だが、〜〜。
「こんなときに」 • どのような状況
や環境下でそ
の問題が起こるのか?背景は
何か? • 解決策を適用し
ても変わらない
問題に隠された仮定や前提。
• 解決策を思い出しやすい、わかりやすい名
前 • 別名も書く(専
門用語、関連する用語を含む)
• 名詞句が多い
Author : @motohasi Date : May 24, 2013
for weaving experience! Share your knowledge!
1 3 4
5 マッチしているか?
思いついたときは随時追加する
5
必要に応じて反復(今回のワークでは省略)
小さめのお芋を用意し、事前に吹かした後、たき火で焼き
芋を作る。
例:
印刷物を処分出来た。 課題: • 近所迷惑 • 消火が必須 • 紙だけではダメ
「リファレンスガイド」を印刷して、大量の紙が出来た。
• 興味のありそうな人や関係者には回覧しおわった。
• 保存しておくスペースがない。
• 処分したいが、近くに紙を食べてくれる山羊は
いない。
• リファレンスガイドなど大量の紙が出る。
• 目が疲れるので、紙で読み
たい。
食べてもおいしいプラクティス
2 6
発表するパターンの順番
1. 名前 2. 文脈 3. 問題 4. フォース 5. 解決策 6. 結果
a. 利益 b. 課題
問い: なぜ、パターン技術 (含むパターンランゲージ、プロジェクトランゲージ)
を使うのか。
もしくは、パターンがないと世界はどうなるか?
ありがとうございました
• アンケートのお願い – 付箋紙にご記入ください。 – 満足度を5点満点でご記入ください。 – ご感想、ご提案をご記入ください。
• ご質問やご意見、コンタクトをご希望される方は、お声がけください。 – 本橋 @motohasi – 羽生田 @HHany