More Related Content Similar to GCSアジャイル開発を使ったゲームの作り方
Similar to GCSアジャイル開発を使ったゲームの作り方 (20) GCSアジャイル開発を使ったゲームの作り方2. 自己紹介
• 田中 宏幸
• (株)イリンクス 社長 / プログラマー
– 現在PS3&Vitaのゲームやエンジン等作ってます。
• 一応プロマネの資格持ってます
– 認定スクラムマスター (CSM)
– PMI認定Project Management Professional
• Twitter : swiftnest
5. マネジメントのイメージ
怠けたら怒られる
面倒くさい
僕プログラマーだから
よく判らない
そんなことより野球しようぜ!
6. マクレガーXY理論
• X理論
人間は本来なまけたがる生き物で、責任をとり
たがらず、放っておくと仕事をしなくなる
• Y理論
人間は本来進んで働きたがる生き物で、自己実現
のために自ら行動し、進んで問題解決をする
7. マクレガーXY理論
• Y理論
人間は本来進んで働きたがる生き物で、自己実現
のために自ら行動し、進んで問題解決をする
「自ら行動」する為には
プロジェクトの状況把握が必要
プロジェクトマネジメントの役割
「プロジェクトの見える化」
人のマネジメント
25. アジャイル開発の種類
利用されているアジャイル手法
Evo
その他
Crystal 20%
DSDM
XP
スクラム
XP 6%
50%
(eXtreme
Programming) スクラム/XPの組み合わせ
24%
スクラム
リーンソフト
米VersionOne
ウェア開発 State of Agile Development Survey 2009
27. スクラムとは
• 一橋大学の野中郁次郎と竹内弘高が
1986年に日本の元気な製造業(富士ゼロッ
クス、キヤノン、ホンダ、NEC、セイコーエプソ
ン、ブラザー工業)に共通している手法をまとめ
論文として発表
• この論文を元にジェフ・サザーランドと
ケン・シュエイバーがソフトウェア制作技法とし
て作成したのがスクラム
30. スクラム採用例(たぶん)
• アンチャーテッド2(スクラム)
• Bio Shock (スクラム)
• Mass Effect (スクラム)
• Half Life2 (スクラム)
• Left 4 Dead2 (スクラム)
• Unreal Engine (スクラム)
• Gears of War (スクラムっぽい)
• アサシン クリード(スクラム)
43. スクラム:チーム
• プロダクトオーナー
製品に対して責任を持ち、機能に優先順位を付ける
ゲーム開発ではディレクターが兼任することが多い
• スクラムマスター
スクラムプロセスが上手く行くように外部からチームを
守る
• チーム(5∼9)
プロダクトの開発を行う。
製品の成功に向けて最大限の努力をコミットする
44. チームの規模が大きい場合
新機能チーム 新機能チーム
・PG ・PG
・企画 ・企画
・デザイナー ・デザイナー
量産チーム 量産チーム
・デザイナー ・企画
エンジンチーム
・PG
46. スプリント
毎日
朝会
全機能 今回の分 レビュー会
リスト チョイス
2∼4週 ふりかえり
51. eXtreme Programming 19のプラクティス
反復 1∼2週間の反復開発
共同のプ
共通の用語 用語集を作成し、用語の不一致を避ける
ラクティ
オープンな作業空間 会話しやすく、作業に打ち込める環境作り
ス 回顧 頻繁な振り返りで改善していく
テスト主導型の開発 プログラマは継続的にユニットテストを書く
開発者の
ペア・プログラミング 一台のマシンで2人のPGがコードを書く
プラク
リファクタリング 動作を変えることなくソースを改善する
ティス
集団的な所有権 誰でもどのコードでも修正できる
継続的インテグレーション 一日に何回もビルドし問題を改善する
YAGNI 今必要なことだけ行う
責任の受け入れ 開発者にコミットメントしてもらう
管理者の 援護 開発者が集中出来るように支援する
プラク 年に4回のレビュー 権限を持つプロジェクトの関係者で話合う
ティス ミラー 今どういう状態かをチームに知らせる
持続可能なペース 知的作業には週40時間の労働時間が最適
顧客のプ ストーリー伝達 ストーリーカードで要件を洗い出す
リリース計画 リリース計画をチーム合意で進める
ラクティ
受け入れテスト イテレーションごとに顧客の立場からテスト
ス 頻繁なリリース ユーザからフィードバックを得る
52. テスト主導型の開発(TDD)
テスト用のフレームワークと
ソースファイルを用意して
stack->push( 99 ) 最初に空のクラスと
stack->push( -1 ) テストコードを書き
CPPUNIT_ASSERT_EQUAL( -1, stack->pop());
CPPUNIT_ASSERT_EQUAL( 99, stack->pop());
テストが失敗したのを確認し
てからクラスを実装して
テストが通るのを確認し
リファクタリングする
53. テスト主導型の開発(TDD)
• リファクタリングにより
安全にクリーンなコードが書ける
• コードの拡張によるバグなどを減らせる
• 作業時間は1∼2割程度増えるが、その分デバッグ時間
が減るので、結果的に開発時間が減る
• ただし、UIといった見栄えや手動操作が必要な場所には
使いづらく、結果ゲーム開発ではそれほど普及していな
い(アメリカでも15%程度)
62. ユーザーテスト
• 対象ユーザーに近い人を何とかして5名集める
‒ 5名=80:20の法則
‒ 同僚、友人の友人の友人
‒ あまり人数が少ないと意見が偏る事がある
• ユーザーに思考発話を意識してもらいながら
ゲームをプレイしてもらう
• プレイの様子はビデオカメラで録画する
• 例えゲームが未完成でも、一部分を切り出して
積極的に行う
70. あなたのプロジェクトコミュニティ
<コミュニティ#3>
<チーム#2> コアチーム
<グループ#1>
その他大勢!
...
は常にあなたが考える以上に大きい!
71. テクニカルソリューション
技術:
- <言語> 危険!
- <ライブラリ>
- <ツール>
- <その他技術要素> 範囲外
73. Aチーム
# 役割 能力/期待すること
1 アナリスト ジャストインタイム分析が容易にできる.
テストが好きである.
2 開発者 素早い繰り返し開発が苦痛ではない.
C#, MVC.NET, jQuery, SQL
ユニットテスト, リファクタリング, TDD, 継続的インテグ
0.5 プロジェクトマ レーション
顔をあわせてのコミュニケーションへの責任
ネージャ 状況報告, スコープ, 予算, 上への報告
74. どのくらい大きいのか?
出荷!
構築 UAT トレーニング
~3ヶ月 1週間 1 週間
これは想定です.
約束ではありません.
75. トレードオフ スライダー
典型的な4つの分類
フィーチャーが完了すること(スコープ)
ON OFF予算内に収まること(予算)
ON OFF時間通りに納入すること (時間)
ON OFF高い品質、少ないバグ(品質)
ON OFF
その他の大事なこと
ON OFF 簡単に使えること
ON OFF考えさせない!
ON OFF詳細な証跡(なんでもログを取る)
ON OFF<好きなのをいれる>
76. 最初のリリース
出荷!
構築 UAT トレーニング
~3ヶ月 1 週間 1 週間
3
人,
3.5ヶ月,
250Kドル
77. まとめ
• ウォーターフォール開発
‒ 大規模開発に向く、計画主導型の手法
• アジャイル開発
‒ 小∼中規模開発に向く、開発主導型の手法
• スクラム
• XP
• アジャイルUX
• インセプションデッキ