「スクエニのプロジェクト・マネジメント」のまとめ
ゲーム開発 プロジェクトマネジメント講座 (2011年10月8日株式会社スクウェア・エニックス CTO 橋本 善久) http://www.jp.square-enix.com/tech/openconference/library/2011/dldata/PM/PM.pdf はとてもよい資料だと思うが、あくまでプレゼン資料であり冗長であるため、要約したものをここに記しておく。1
ただし私はゲーム開発者ではないので、ゲーム開発に関するspecificな部分は省略した。
1. なぜプロジェクトは失敗するのか
一般的に、ソフトウェア開発ではとてつもなく巨大な計画の誤差が生まれ、そ れに対して途方もない苦労を割いてどうにかこうにか対処し、不満足な状態で 無理やり着地させているのが実情です。(p46)
1.1. プロジェクトの失敗ポイントの分類 (p3)
以下の要素がある。本質的にはそれぞれの変動が掛け算で聴いてくるのが問題。 それぞれの変動が数割でもかけたら10倍とかになる。
- スコープ(コンテンツの範囲)の問題
- 品質の問題
- コストの問題
- 時間の問題
- リソース(人員・環境)の問題
- ビジネスの問題
1.1.1. 計画の主な変動要因 (p10)
- スコープ(コンテンツの範囲)の変化
- 仕様の追加・変更
- タスク分解のエラー
- 既知の仕様に対してタスクの洗い出し漏れがあった場合
- 見積もりのエラー
- タスク消化にかかる時間を見誤った場合
- 一日あたりの作業時間見込みエラー
- 会議その他で思ったよりも作業時間が取れなかった場合など
- 人員計画のエラー
- 思ったより人数を増やせない
- 思ったより能力がない
- 辞められる、故障者が出る
- 品質マネジメントのエラー
- 品質が上がらないので作り直し
- 技術マネジメントのエラー
- プログラム的に実現が困難なので作り直し
1.1.2. 対処方法 (p40)
あとから対処してなんとか着地させると以下のように見事なデスマーチとなってしまう (もちろん、ビジネスとしての成否は発売するまで不明)。
- 仕様を削減
- 人員を追加投入
- 期間を延長
- 品質を妥協する
- 月の労働時間を増やす
2. プロジェクトの制御方法
プロジェクトとは不確実なものであるという事実を受け入れ、 問題が大きくなってから対応する行き当たりばったりの運営から 用意周到な事前対処と積極的な事後対処を実践することで プロジェクトを制御することが可能になります (p57)
2.1. 不確実性を乗りこなす (p58, p152, p160)
- 事前対策(調査・戦略・設計・計画)
- 不確実性を減らす
- 見通しが悪い部分の調査や検証/実験をしっかりと行う
- 作業データを取り、フィードバックをかけて予測精度を向上させる
- 計画規模を小さくする
- 設計をなるべく詳細に行う
- リスクの高い要素を予め極力減らす
- 不確実でも良い事にする
- リスクの高い要素を無くしてても成立する設計にする
- 不確実性を減らす
- 事後対策(イテレーション)
- 変化や問題発生にすばやく気づく
- 変化や問題にすばやく対応する
2.2. イテレーションの大切さ: Plan-Do-Checkサイクル
計画⇒実行⇒振り返り⇒再計画⇒実行⇒振り返り⇒…
- 資料の著者はActionはPlanとDoに内包されていて冗長と考えているそうだ (p64)
- ありがちなプロジェクト: 問題が無視できないほどに大きくなって仕方なく計画を途中で見直している (p64)
- ダメなプロジェクト: 一回計画を立ててあとは作りつづけるのみ。リスクは増大する一方 (p68)
- 惜しいプロジェクト: 上記サイクルを行っているが、その単位が大きい。(p70)
- 良いプロジェクト: 短いサイクルでPDCを行い、問題やリスクが早い段階で摘み取られる (p71)
2.2.1. イテレーションの例: ミサイルを飛ばすプロジェクト
- 10秒に1回制御→軌道修正しにくい→ハズレ (p.74)
- 60FPS(1/60秒)で制御→軌道修正しやすい→アタリ (p.75)
2.3. 調査・戦略・設計・計画
イテレーションを短くしても大局がみえていなければプロジェクトは失敗する。
- 「ダンジョンを歩いて抜ける」プロジェクトの例え (p119)
- 地図(設計)、双眼鏡(計画) と例えている (p157)
- これらのメンテナンスもPDCサイクルの一部 (p159)
2.3.1. アジャイルの幻想
以下はまちがい
- 仕様や設計なんていらない!
- ドキュメントなんていらない!
- 計画なんていらない!
- 「作って、壊して」を短いイテレーションで繰り返せば万事解決!
- ウォーターフォールは悪!
2.3.2. ウォーターフォール x アジャイル
対立構造は良くない。 表面上の型やイメージや定義にふりまわされるのはやめて、プロジェクトマネジメントの本質を捉えてハイブリッド型の良いとこ取りの方法でバランス良く行きましょう (p168)
- 犬小屋と高層ビルの例え (p93)
- 犬小屋なら大丈夫かもしれないけど、巨大建築するのにアジャイルだけでは無理でしょう
- 例えに比べてソフトウェアは“規模や問題が目に見えにくい”。
- つまりいま立てようとしていのが犬小屋か高層ビルかわかりにくい。
2.4. まとめ (p170)
- プロジェクトには当初に予想しきれないほど大きな不確実性が潜んでいる
- 従って不確実性とうまく付き合う必要がある
- イテレーションを重視しよう
- こまめなPlan-Do-Checkサイクルで、不確実性から生まれる問題の早期発見と早期解決を繰り返そう
- 調査・戦略・設計・計画からは逃げない
- 不確実性を下げ、見通しを良くするための地図を準備しよう
- それらはなるべくドキュメント化しよう
- 調査・戦略・設計・計画からは逃げない。
- 当たり前の準備(入念な調査、戦略、設計、計画)を地道にやる。それが不確実性を乗りこなす秘訣です。
3. プロジェクト・マネジメントの手順 p.173
- 調査する
- 戦略を立てる(リスク一覧/開発戦略マトリクス/価値空間)
- 設計する
- 計画する(中長期計画)
- タスクを洗い出す(ユーザーストーリー/フィーチャー/タスク/LOD式タスク分解)
- 見積もる(2点見積もり/見積もりポーカー/LOD式見積もり)
- 優先度を決める
- マイルストーンを定める
スプリント(4週間単位の制作イテレーション)
- 階層化PDC
- スプリント計画(成果物目標/スプリント計画会/タスク管理シート)
- 日々の制作(朝会/タスク管理ボード)
- 週の振り返り(週報/週定例)
- スプリントの振り返り(スプリント報/スプリント振り返り会/成果物発表会)
- 対策・再計画
- 戦略・設計の修正(ゲーム仕様、アート、プログラム設計などの修正)
- 中長期計画の修正(タスクの追加・変更、見積もりの変更、優先度の変更)
- リソースの修正(人員の追加や担当変更など)
- クライアントや上司への報告
3.1. 調査する
戦略や設計や計画や制作をスムーズに進め、なるべく手戻りを少なくするために
- 市場動向を調査する
- 最新技術動向を調査する
- スタッフのスキルセットを調査する
- 会社の財務状況を調査する
- リスク要因を調査する
- プロジェクトの状況を調査する
- 過去のプロジェクトの予算と実績を調査する
- 各国の経済状況予測までしないとならない時代に突入したかもしれません
- 類似商品を発掘し尽くし、それらを徹底的に要素分解することも含まれます
3.2. 戦略を立てる
細かな設計や計画に入る前に、担当プロジェクトの開発戦略を入念に考えるこ とで後々のリスクを最小化
- 「リスク一覧表」の作成(調査フェイズで終わっていることが理想)
- 項目、難易度、重要度、警戒度(難×重)、対策案、責任者
- 「開発戦略マトリクス」を参考に意志決定を予め行う
- 「商品の価値空間」を意識して、プロジェクトに本当に必要な要素は何かをしっかり考える
- ゲームデザイン、アートワーク、プログラム、サウンド他、すべての項目が対象
3.2.1. 開発戦略マトリクス (p182)
数字が優先度
必ず作れる | おそらく作れる | 作ってみないと不明 | |
必要な要素 | 3 (迷わず作るが他に影響を与え何ならばむしろ後回し) | 4 (早期に検証せよ) | 5 (バックアッププランを) |
できれば欲しい要素 | 2 | 3 (優先度を早期に検討せよ) | 2 (作るなら切り離せるように) |
なくても困らない要素 | 1 (工数に余裕があったらあとで作る) | 0 (なるべく作らない) | -1 (絶対作るな) |
3.3. 設計する
作らずとも頭の中で分かることはまず先に設計し尽くすべきです
実際に作って物にしてみないと分からないことが あって初めて「設計のための仮実装(=実験)」を行 うべきです
3.4. 計画する
- タスクを洗い出す
- 各メンバーが作業を行う管理単位
- 見積もる
- 優先度を決める
- マイルストーンを定める
3.5. 2点見積もり p.211
心理学的にベターな見積もりの仕方。
- 最小見積もり、最大見積もりの2点をだす
- ○時間~○時間、あるいは○日~○日と 二つの数字で表現する
- バッファ = 最大見積もり - 最小見積もり
- バッファ 50%が一番良い見積もりだが この数字は出してはならない
- 3点見積もりになると真ん中の「目標見積もり」を意識しすぎてしまう
3.5.1. 1点見積もりの問題点
- 定義のあいまいさ
- パーキンソンの法則: 仕事は、その遂行のために利用できる時間をすべて埋めるように拡大する
- 学生症候群: 時間に余裕がある場合に作業の開始をギリギリまで遅らせてしまう性質
- のど元過ぎれば熱さ忘れるの法則: 一旦スケジュールに間に合わないことが分かると集中力が落ちてしまう性質
3.5.2. 見積もりポーカー
面白そうだけど今回は省略
3.6. スプリント
- 短期間 (2 or 4 weeks)で計画⇒実行⇒振り返りのイテレーションサイクルを回す単位。
- 必ず月曜日始まり、金曜日終わり。
- タスク管理シートを(Excelグラフなど)、週報などを作る
3.6.1. スプリント計画
- スプリントの初日にそのスプリントの計画を立てる
- 丸1日スプリント計画で消費しても構わない
- 手順
- 成果物目標リストを整備します
- 中長期計画からスプリントでこなせそうな分だけのタスクを持って来ます
- タスクの粒度が荒い場合は分解を行い、見積もりも分解後のタスクに対して行います
- スプリントに入る分のタスクを判定し、成果物目標リストを調整します
3.6.2. 日々の制作
- スプリント計画が終わった後は制作作業に入ります
- 「タスク管理ボード」の前で「朝会」を行って日々のPDCサイクルを回します
3.6.3. 週の振り返り
- 週報
- 週定例
3.6.4. スプリントの振り返り
- スプリント報
- スプリント振り返り会
- 成果物発表会
3.6.5. 対策再計画
3.6.6. クライアントや上司への報告
3.7. 最後に
原典主義に陥ってはなりませんし、 かと言ってなにも考えずに 自己流に走ってもなりません
すべてに疑問を持ちましょう すべてに自分の答えを用意しましょう
すべての情報を全力で肯定し すべての情報を全力で否定し 頭にたくさん汗をかいて ひとつひとつの“仕組み”に対して 「なぜそうなのか」を あなたなりに自力で導き出してください
4. 推薦書籍
4.1. p271
- 「マンガでわかるプロジェクトマネジメント」
- PM世界標準PMBOKのダイジェストをマンガで
- 「アジャイルサムライ」
- 読みやすいアジャイル本
- 「最短で達成する全体最適のプロジェクトマネジメント」
- CCPMを知る
- 「XPエクストリーム・プログラミング実行計画」
- XPにおける計画を知る
- 「アジャイルソフトウェア開発スクラム」
- スクラムを知る
- 「Agile Game Development with Scrum」
- ゲーム開発におけるスクラム実践例
- 「アジャイルな見積もりと計画づくり」
- 最もお勧めであり、最も考え方の近い本
- 分厚く内容も高度なので最後に仕上げで読むのが良いです
4.2. p272
- 「デジタルゲームの技術」
- 第9章でもプロジェクトマネジメントについてインタビュー形式で本資料著者の橋本善久で語っているそうだ。
4.3. TASK p273
2012年6月予定で 橋本善久(スクウェア・エニックスCTO) 「スクウェア・エニックスのゲーム開発プロジェクトマネジメント(仮題)」 がソフトバンククリエィティブから出版予定とあるが、見つけられなかった。
5. 更新履歴
- 2022-01-10 初版
脚注:
なお、一般に、著作物を要約して公開することは、 著作権法第27条で定められる二次的著作物を創作する権利(翻案権)と、 28条で定められる二次的著作物を利用する権利の侵害に該当する可能性がある。 いきなり訴えられる可能性は低いと思って書いているが、 申告があれば即座に公開を停止するつもりだ。