はじめに
Udemyのコース「現役アジャイルコーチが教える!半日で理解できるアジャイル開発とスクラム」で学んだことを備忘録として記録します。
用語
- ユーザーストーリー
やりたいこと。バックログアイテムとも呼ばれる。 - バックログ
やることリスト。 - ストーリーポイント
ユーザーストーリーを見積もる方法。
アジャイル開発の手法
スクラム
現在最も有名な開発手法。
特徴
- シンプルなフレームワークで人気
- ソフト開発以外でも使われている
理論
- 経験主義
透明性→検査→適応
スプリントごとにレビューを繰り返すのは検査 - リーン思考
無駄を減らすこと。
無駄なく3本柱を回していく。
XP(エクストリームプログラミング)
特徴
- コミュニケーション
- シンプルさ
- フィードバック
- 勇気
- 尊重
プラクティス
- 全員同席
- チーム全体
職能横断型チームを作る
難しい場合は外部の協力を得る - 情報豊富な作業空間
- 活気ある仕事
残業ベースで働かない - ペアプログラミング
知識や経験を倍速で積んでいく - ストーリー
ユーザーの要求を小さくまとめ管理する - 1週間サイクル
短い期間で開発とリリースを繰り返す - 四半期サイクル
中長期的な計画も出来るだけ作る - ゆとり
- 10分ビルド
特定の短い時間内にビルドを終わらせる - 常時結合
継続的インテグレーション(CI) - テストファーストプログラミング
- インクリメンタル設計
少しずつ設計しましょう
応用プラクティス
- 実顧客の参加
ユーザーを巻き込む - インクリメンタル配置
継続的デリバリ(CD) - チームの継続
チームとして成熟度を高めていく - チームの縮小
意欲ある経験者で別チームを立ち上げる - 根本原因の分析
表面的な問題にとらわれずに問題を深堀する - コードの共有
- コードとテスト
- 単一のコードベース
- 日次配置
- 協議によるスコープ契約
- 利用分払い
リーンソフトウェア開発
原則
- 無駄をなくす
- 品質を作り込む
欠陥をあとで見つけようとしない - 知識を作り出す
- 決定を遅らせる
- 速く提供する
- 人を尊重する
- 全体を最適化する
かんばん
基本原則
- 現在、何をしているかを理解することから始める
ホワイトボードに書き出す。かんばんにする。 - インクリメンタルに進化させ、変化を追求していく
- 現状のプロセス、役割、責務、職位を尊重する
- すべての地位でのリーダーシップを求める
コアプラクティス
- 可視化する
- WIPを制限する
- 流れを管理する
- 明確なポリシーを作る
- フィードバックループを実現する
- コラボレーティブに改善し、実験的に進化する
DevOps
開発と運用の効率的・効果的なコラボレーションをベースとしている
ツール
- コード
GitHubなど - ビルド
JenkinsなどのCIツール - テスト
自動テスト - パッケージ
コンテナ技術、ライブラリ管理 - リリース
リリース自動化 - コンフィグレーション
インフラ自動構築、オーケストレーションツール - モニター
パフォーマンスモニタリングツール
DevOpsの目標
- デプロイの頻度
- 変更のリードタイム
- 変更失敗率
- 平均修復時間
スクラム
- スクラムガイドはわずか18ページ
- 時代に応じて更新されていく
概要
複雑な問題に対応する適応型のソリューションを通じて、人々・チーム・組織が価値を生み出すための軽量級フレームワーク
開発を行う際は、シンプルかどうかを重視
流れ
- プロダクトバックログ
やることリスト - スプリントバックログ
短い期間のやることリスト - デイリースクラムミーティング
スクラムチーム
- プロダクトオーナー
やることややる順番を決める。
最終的な決定責任がある。 - 開発者
開発を行う。 - スクラムマスター
スクラムの理論を全員に理解させる。
人数は10人以内が推奨。
プロダクトオーナー
責任
- ゴールを策定し、明示的に伝える
- プロダクトバックログアイテムを作成し、明確に伝える
- プロダクトバックログアイテムを並び替える
- プロダクトバックログに透明性があり、見える化され、理解されるようにする
開発者
責任
- スプリントバックログを作成する
- 完成の定義を忠実に守ることにより、品質を作り込む
- スプリントゴールに向けて毎日計画を適応させる
- 専門家としてお互いに責任を持つ
スクラムマスター
- チームメンバーをコーチする
- チームが集中できるよう支援する
- 進捗を妨げる障害物を排除するように働きかける
- すべてのスクラムイベントが開催され、ポジティブで生産的であり、タイムボックスの制限が守られるようにする
スクラムイベント
スプリント
- 固定の期間を指す
- 2週間が一般的。まず1週間を試すのが良い。
スプリントプランニング
- スプリントの計画を立てる
- スプリントバックログを決めること
- スプリントゴールを決める
- POはスプリントバックログを選ぶ
- 見積(ストーリーポイント)、スコープを決める
- 必要な場合、スプリントバックログをタスクに分割する
デイリースクラム
- 朝礼、15分以内のイベント
- スプリントゴールの進捗を確認し、計画を再計画
- 問題や課題の対策も考え、意思決定する
- 3つの質問を行う
- 昨日やったこと
- 今日やること
- 課題や不安
スプリントレビュー
- 成果を検査し、今後の適応を決定する
- 成果のプレゼン+ディスカッションを行う
スプリントレトロスペクティブ
- ふりかえり
- 開発全体の検査
- KPT
- Keep
- Problem
- Try
スクラムの成果物
プロダクトバックログ
- プロダクトレベルのやることリス
スプリントバックログ
- スプリントレベルのやることリスト
- 解像度は高い
- スプリントゴールが含まれる
インクリメント
- プロダクトゴールのための階段
- スプリントレビューで検査される
- ユニットテストが出来ているかなど
アジャイルになるために
成熟度モデル
- ゴールが見えない・不信感・仲が悪い
- みんなで頑張る雰囲気
- 仕事がなんとか回りだす
- 仕事を進め改善も出来る
- DEVアジャイル
- BIZアジャイル
- 全員リーダー
- アジャイルに「なる」
Not doing agile, but be agile.
アジャイルをするよりアジャイルになる