PMstyle 2024年4月~7月Zoom公開セミナー(★:開催決定)

カテゴリ

Powered by Six Apart

« 【講座紹介】未来を実現するプログラムの構想と推進   | メイン | 【プロデューサーの本棚】パラダイムの魔力~成功を約束する創造的未来の発見法 »

2014年5月 8日 (木)

【プロデューサーの本棚】組織パターン

4798128449ジェームス・コプリエン、ニール・ハリソン(和智 右桂訳)「組織パターン チームの成長によりアジャイルソフトウエア開発の変革を促す (Object Oriented SELECTION) 」、翔泳社(2013)

単行本><Kindle版

アジャイルの祖であるジェームス・コプリエンが、アジャイル開発のようにチームの成長によるソフトウエアの開発を変革するためのパターンランゲージについて示した書籍。

この本で示されているパターン言語は、AT&Tベル研究所で行われたパスツールプロセス調査プログラムの一部として収集され、体系化されたものであり、

・プロジェクトマネジメントのためのパターン言語(4.1)
・組織の漸進的成長のためのパターン言語(4.2)
・組織スタイルのためのパターン言語(5.1)
・人とコードのためのパターン言語(5.2)

の4つの言語からなるパターン言語である。

パターン言語とは、いくつものパターンとそれらの意味のあるやり方で一定の順序で組み合わせるための規則である。ここでパターンというのは、

繰り返し発生する構造的な形で、あるコンテキストにおける問題を解決するもの

と定義される。要するにソフトウエアの世界でいうパターンであり、それを使う方法まで示したものがパターン言語だと考えておけばよい。

この本で示されているパターンは

・パターンの名前
・問題の発見されるコンテクスト
・解決策
・関連するパターン

からなる。一つ例を挙げると

・パターン名
 一つのタスクに一つのチーム
・コンテキスト
 一大転機があっても、短い間とはいえ、プロジェクトと止めてはならない(後略)
・解決策:それゆえ
 サブチームを作って、突発的事態に対応してもらおう。そうすればメインチームが作業を続けられる
・関連パターン
 一つの成果物に一つの所有者
 機能の所有者とコンポーネントの所有者
 常に誰かが進捗させる

といった感じだ(実際にはもっと詳しく記述されている。本書を見てほしい)。

このような形で集められたパターン言語は

・プロジェクトマネジメントのためのパターン言語(26)
・組織の漸進的成長のためのパターン言語(32)
・組織スタイルのためのパターン言語(23)
・人とコードのためのパターン言語(23)

で合計104に上る(この記事の最後にリストを示す)。

この本ではこれらを記述した上で、これらのパターン言語を活用して組織を成長させていく方法について論じている。

この本自体がどこまで役立つかは別にしてパターンランゲージとは何か、どのように作るのか、どのように活用するのかを知るには非常に良い本である。

【パターン言語一覧】

<プロジェクトマネジメントのためのパターン言語>
4.1.1 信頼で結ばれた共同体**
4.1.2 スケジュールを小分けにする**
4.1.3 ぐずぐずするな**
4.1.4 名前付きの安定した基盤*
4.1.5 インクリメンタルな統合**
4.1.6 プライベートな世界**
4.1.7 プロトタイプを構築せよ**
4.1.8 顧客の代理
4.1.9 細かいリスケをしない**
4.1.10 期日までのゆとり**
4.1.11 作業の分割*
4.1.12 コミットメントのやり直し*
4.1.13 ワークキュー*
4.1.14 非公式の労働計画**
4.1.15 開発エピソード*
4.1.16 暗黙的な要件
4.1.17 開発者がプロセスをコントロールする**
4.1.18 作業が内側に流れる**
4.1.19 プログラミングエピソード**
4.1.20 常に誰かが進捗させる*
4.1.21 一つのタスクに一つのチーム**
4.1.22 誰か一人を犠牲にする*
4.1.23 託児所
4.1.24 雇われアナリスト
4.1.25 作業を中断して問題を取り除く
4.1.26 手を止めて始めた作業を中断するな

<組織の漸進的成長のためのパターン言語>
4.2.1 信頼で結ばれた共同体
4.2.2 組織を細かくする**
4.2.3 段階的に人を増やす**
4.2.4 徒弟制度**
4.2.5 ソロ・バイオリニスト*
4.2.6 顧客たちを巻き込め**
4.2.7 顧客の代理*
4.2.8 シナリオが問題を定義する**
4.2.9 防火壁**
4.2.10 門番**
4.2.11 自分たちで選んだチーム**
4.2.12 目的の統一**
4.2.13 チームのプライド**
4.2.14 スカンクワーク**
4.2.15 パトロン**
4.2.16 多様な集団*
4.2.17 人気者*
4.2.18 婦長*
4.2.19 全体論的多様性*
4.2.20 偉人*
4.2.21 賢い愚者*
4.2.22 ドメインエキスパート**
4.2.23 スキルに応じたサブシステム*
4.2.24 トラックナンバーはほどほどに
4.2.25 成功報酬**
4.2.26 失敗プロジェクトの通夜*
4.2.27 手を止めて始めた作業を中断するな
4.2.28 ペアで開発する**
4.2.29 品質管理を巻き込め**
4.2.30 アプリケーションの設計はテストの設計に境界づけられる*
4.2.31 雇われアナリスト
4.2.32 グループでの検証*

<組織スタイルのためのパターン言語>
5.1.1 信頼で結ばれた共同体
5.1.2 ロールは少なく**
5.1.3 生産者*
5.1.4 中央の生産者**
5.1.5 安定したロール**
5.1.6 分割統治**
5.1.7 コンウェイの法則**
5.1.8 組織は拠点配置に従う**
5.1.9 組織はマーケットに従う**
5.1.10 離れて作業する前の打合せ**
5.1.11 形状は機能に従う
5.1.12 循環領域を作る*
5.1.13 作業を均等に配分せよ*
5.1.14 複数の責務が関与する
5.1.15 立ち話*
5.1.16 ステージ同士を疎結合にせよ
5.1.17 ハブ・スポーク・リム
5.1.18 責務を移動せよ*
5.1.19 あべこべのマトリクス管理*
5.1.20 冷水器*
5.1.21 一つのロールに7のヘルパー
5.1.22 結合によって待ち時間が減る*
5.1.23 複数の拠点をつなぐ標準規格

<人とコードのためのパターン言語>
5.2.1 信頼で結ばれた共同体
5.2.2 コンウェイの法則
5.2.3 アーキテクトがプロダクトをコントロールする**
5.2.4 アーキテクチャーチーム
5.2.5 缶詰*
5.2.6 秘密の商談部屋
5.2.7 スタンドアップミーティング**
5.2.8 ドメインの粒度にあわせて人員を配置せよ**
5.2.9 スキルに応じたサブシステム
5.2.10 アーキテクトも実装する**
5.2.11 汎用的なものと個別のもの
5.2.12 複数の拠点をつなぐ標準規格**
5.2.13 コードの所有権**
5.2.14 フューチャーの割り当て*
5.2.15 インタフェースの背後のバリエーション**
5.2.16 プライベートなバージョニング**
5.2.17 穏やかなインタフェース**
5.2.18 チームごとのサブクラス
5.2.19 ファクトリの階層
5.2.20 サーバービルダ*
5.2.21 インクリメンタルな結合
5.2.22 プライベートな世界
5.2.23 名前付きの安定した基盤

コメント

コメントを投稿