アジャイル開発でコールド負けしないための5つのポイント

2018年8月23日にデンソー東京支社で行われた第133回白熱塾での登壇資料です

1. アジャイル開発でコールド負けしないための 5つのポイント 2018/8/23 株式会社アトラクタ 吉羽龍太郎
2. 自己紹介:吉羽龍太郎 @ryuzee ✤ 株式会社アトラクタ取締役CTO/アジャイルコーチ ✤ 野村総合研究所、Amazon Web Servicesなどを経て創業 ✤ アジャイル開発/DevOps/クラウドのコンサルティングとトレーニングを提供
3. 株式会社アトラクタのご紹介 ✤ 開発プロセスに関するコンサルティングやトレーニングを提供 ✤ ✤ アジャイル開発 / DevOps / チーム育成 / クラウドコンピューティング / ドメイ ンモデリングなどが専門領域 https://www.attractor.co.jp/
4. 今日の話 ✤ アジャイル開発(アジャイルに限らず)では失敗する理由はたくさんある ✤ 失敗しそうな箇所を潰さないといけない。が… ✤ だからと言って勝てるとは限らない ✤ なので… ✤ 速攻で負けないようにする上で最低限注意する項目を5つ紹介します
5. 主にスクラムのコンテキストでお話します
6. コールド負けしない5つのポイント ✤ 1. 十分条件で開始する ✤ 2. Readyなプロダクトバックログ項目だけ着手する ✤ 3. 同時の仕掛りを少なくする ✤ 4. フィードバックサイクルを回し続ける ✤ 5. 技術に投資し続ける
7. 1. 十分条件で開始する ✤ アジャイル開発は無理難題をなんとかするためのものではない ✤ 銀の弾丸ではない ✤ 変化に対応し、複雑な問題を解くためのもの ✤ プロダクトのゴールやビジョン、必要な体制やファシリティ、ツールセットや 技術スキルなどが必要 ✤ 立ち上げフェーズが重要なのはウォーターフォールもアジャイルも同じ ✤ 最初がグダグダで始まったプロジェクトはだいたい大変ですよね?
8. インセプションデッキ
9. 開始前にやるべきこと(の例) ✤ プロダクトゴールや価値の明確化 ✤ アーキテクチャや開発言語などの選定 ✤ スクラムによる開発の合意 ✤ 技術検証(スパイク) ✤ 初期のプロダクトバックログの準備 ✤ 完成の定義の作成 ✤ ロールの明確化 ✤ 開発環境の作成やツールセットの準備 ✤ ステークホルダーを明らかにする ✤ 技術プラクティスの選択 ✤ スクラムの知識レベルを える ✤ 全体規模の見積り ✤ ファシリティやアナログツール ✤ スプリントの長さの決定 ✤ ワーキングアグリーメントを設定する ✤ リスクの洗い出し ✤ 非機能要件の明確化 ✤ 報告の仕方の決定
10. 兼任を避ける ✤ マルチプロジェクト/プロダクト、マルチロール、すなわち兼任は不十分の典型 ✤ 現在集中すべきこと以外の影響によって ✤ リードタイムが不安定化する ✤ ボトルネックによって待ち時間が増える ✤ つまり成果が変動し、予測性が低くなる
11. 2. Readyなプロダクトバックログ項目だけ着手する ✤ 生煮えのプロダクトバックログ項目を食べるとお腹を壊す ✤ ✤ ✤ 着手してから確認と検討を繰り返し、見積りが外れ、成果が出ない スクラムやアジャイルは準備不足を許容しているわけではない ✤ 今やるべきこと、後でやるかもしれないことを識別する ✤ 今やるからには、着手時点では自信を持って進められるよう準備する Readyにするためにプロダクトバックログリファインメントを活用する ✤ プロダクトオーナーと開発チーム間の継続的な対話 ✤ 材料を集めるために少しだけ投資をする(スパイクを打つ)のも有効
12. 3. 同時の仕掛りを少なくする ✤ リトルの法則 ✤ ✤ あるステップの所要時間 = 仕掛り作業の数 / 処理能力 月に12個の作業を完了させる能力があると仮定して ✤ 同時に12個を実施すると、サイクルタイムは1か月 ✤ 同時に6個にすれば、サイクルタイムは0.5か月 ✤ 同時に実施する個数が減れば、サイクルタイムが短くなる ✤ リードタイムは各ステップのサイクルタイムの合計+待ち時間
13. 多すぎる仕掛りの弊害 ✤ コンテキストスイッチの増大 (あれさっき何やってたっけ?) ✤ 遅れると仕事が増える (いつ終わるのか報告してよ!) ✤ リスクが増える (他の会社が先にリリースしちゃいました!) ✤ オーバーヘッドが増える (またいろいろ調整しなきゃ) ✤ 品質が下がる (あのコードってどうなってたっけ?) ✤ モチベーションが下がる (なんでこんなにやることだらけなんだ…)
14. リソース効率より プロダクトの効果
15. ✕ よくない着手の仕方 担当 TODO DOING DONE Task: Configure database and SpaceIDs for Trac PBI #1 PBI #2 PBI #3 猿田 Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac 犬山 雉尾 Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac
16. ✕ よくない着手の仕方 TODO PBI #1 Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac PBI #2 PBI #3 Task: Configure database and SpaceIDs for Trac DOING DONE Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs PBI #4 Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs PBI #5 Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs
17. ✕ よくない着手の仕方 TODO PBI #1 PBI #2 PBI #3 PBI #4 PBI #5 Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs DOING DONE Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs
18. ⃝ よい着手の仕方 TODO DOING PBI #1 PO受入完了 Task: Configure database and SpaceIDs for Trac PBI #2 PBI #3 PBI #4 PBI #5 Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs DONE Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner:` Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs Task: Configure database and SpaceIDs for Trac Task: Configure database and SpaceIDs for Trac Owner: Sanjay Time Remaining: 4 hrs Owner: Sanjay Time Remaining: 4 hrs
19. (参考) スクラムボードで使う小道具例
20. 4. フィードバックサイクルを回し続ける ✤ プロダクトに対するフィードバック ✤ スプリントレビューの最大の目的 ✤ プロダクトオーナーの受け入れ確認は先に終わっている必要 ✤ 然るべきステークホルダーの参加が必要 ✤ 自分たちのプロダクトを自信を持って見せる ✤ さらに良くするにはどうすると良いかのアイデアを得る
21. ✤ ✤ プロセスに対するフィードバック ✤ スプリントレトロスペクティブの最大の目的 ✤ 何がうまくいっているか / 何がうまくいっていないか ✤ もっと良くするにはどうするか 大きな痛みを取り除く (= 本当の痛みを取り除く仕掛けを作る) ✤ たくさんやるのではなく、効果のあるものに集中する ✤ 最新のスクラムガイドではレトロスペクティブで出たアクションアイテムを次 のスプリントで最低1つは取り組むこととされた ✤ 「○○に気をつける」「○○に注意する」、「○○を頑張る」を疑う
22. 5. 技術に投資し続ける ✤ いくらアジャイルやスクラムの考え方を理解して実践できたところで、 ソフトウェアを作る上で必要な技術的スキルが低ければ、ビジネスの期待には 応えられない ✤ つまりプロセスの話ばかりに逃げ込まない ✤ 必要な技術的スキルを身につける ✤ 勝率を上げるために、勝ちパターンのナレッジを蓄積する
23. 必要なスキルを明らかにして早期から継続学習する
24. 学習の仕掛けを作る ✤ 新メンバー受け入れプロジェクトの活用 ✤ 実例:Docker + Rails + Bootstrap を使ったアプリケーションを実際と同じ プロセスで開発する ✤ コードレビュー ✤ ペア作業、モブ作業 ✤ 静的解析の活用 ✤ 勉強会・読書会 ✤ ・・・ ✤ 学習しようと思ったら「リソース効率」を追求しすぎてはいけない
25. (再掲) コールド負けしない5つのポイント ✤ 1. 十分条件で開始する ✤ 2. Readyなプロダクトバックログ項目だけ着手する ✤ 3. 同時の仕掛りを少なくする ✤ 4. フィードバックサイクルを回し続ける ✤ 5. 技術に投資し続ける
No comments...
Attractor Inc. Founder / CTO / Agile Coach / Certified Scrum Professional / Certified ScrumMaster / Certified Scrum Product Owner Twitter : @ryuzee Web : https://www.attractor.co.jp/ Web : http://www.ryuzee.com/

Related Slides