自分のプロジェクト管理に関する考えのまとめ
ここ最近は色々とあってプロジェクト管理、スクラム開発について勉強していたので、それを整理するためにまとめた。
- スクラムガイド
- スクラム現場ガイド
- SCRUM BOOT CAMP THE BOOK
- スクラム実践入門 ── 成果を生み出すアジャイルな開発プロセス (WEB+DB PRESS plus)
- Regional Scrum Gatheringの2018, 2019の全スライド
- ryuzee.com の2017, 2018のスクラムに関する記事
あたりを読んで勉強したので、スクラムに関する理解はそれなりになっているはず。
ただ、評価や役割に関するところは自分の好みで少し脚色があるので、これが「スクラム開発なのか!」みたいに勘違いしないように注意。
ソフトウェア開発の前提(スクラムはあまり関係ない)
「なぜソフトウェア開発をするのか?」という前提の話を最初に書いておく。 多くの企業の目的は サービス(製品)を開発し、ビジネスで利益を上げるため になるかなと思う。*1
また、1週間で計画に使える時間は最大でも 40時間/人 です。 残業しないと終わらないような計画を立てている時点で「プロジェクト管理として失敗してる」ので、マネジメントしてる人は勉強し直した方が良いです。*2
スクラム開発の役割
スクラム開発の書籍だと決まったように「プロダクトオーナー」「スクラムマスター」「開発者」「顧客」あたりの役割が出てきますが、責任が不明瞭だったので自分なりの理解をまとめた。
プロダクトオーナー(PO)
プロダクトの機能、実装する優先度、中長期の計画を立てる責任がある。
- 顧客の要望を聞いて、ストーリーとしてプロダクトバックログにまとめる
- 開発者と相談してUI/UX、見積もり、優先度を決める
- 次イテレーションで開発する範囲を決める
- 優先度を決めるため、市場の調査、KGI/KPIを把握しておく必要がある
- ただし、自分でSQLを書く必要までは無い
- 開発者や顧客に協力してもらっても構わない
- どのストーリーが収入増加(支出減少)につながるかを気にする
- ビジネスに近いところを判断するので、コスト感覚を少しは身につけた方が良い
スクラムマスター(SM)
他メンバーの動きを計測し、みんなが「スクラムらしい振る舞い」をできるように促す責任がある。
- 他メンバーを教育するため、スクラム開発のプロセスを熟知している必要がある
- プロダクトバックログ、スプリントバックログが整理されているか気にする
- PO(開発者)に整理することを促す
- デイリースクラムで問題点が無いか気にする
- 顧客からの割り込み作業が無いか
- スプリントバックログの進捗に問題ないか
- ふりかえりの準備として、バーンダウンチャート、残業時間、コミット状況、テストの失敗率などを見える化する
- これらを見える状態にして、問題に気づきやすい環境を作る
- スクラムイベントのファシリテーター役をするための準備
開発者
正しい見積もりと、コミットメントした機能の実装に責任を持つ。
- 見積もりが大きくブレないようにする
- 不安なら事前にスパイクを打つストーリーを積む
- 残業してる時点で、見積もりダメなので反省してください(余計な人件費がかかります)
- 完了条件の曖昧なストーリーを受け入れない
- コミットメントした機能の実装は 絶対に終わらせる
- どうしても無理なら、早めにPOに相談する
- 責任を果たしていないので、評価が下がるのを覚悟する
顧客
PO、SM、開発者以外の全てが顧客です。運営メンバー、営業、上司などを顧客として見た方が良い。
- スプリントレビューで製品の質をチェックする
- 「リリース判断可能な成果物」をレビューして「リリース判断」をする
- 要望をPOに伝えることができる
- 開発者に要望を直接伝えてはいけない
- ストーリーの優先度について要望を挙げることができる
- ただし、最終決定権はPOが持っている
スクラム開発チームの外側
スクラム開発チームの外側の人の役割について。
上司
サービス(製品)の売上目標に責任を持っていて、開発・営業の各チームリーダーから報告を受ける人。
- POと連携して、売上の上がる施策を考える
- POの判断と売上を分析し、POを評価する
- 営業から挙がった施策をPOに伝える
- 開発から挙がった施策を営業に伝える
エンジニアリングマネージャー(EM)
最近流行っているので、エンジニアリングマネージャー(EM)にしてみた。 別に上司が評価できるなら、EMを置く必要はないと思う。
- スクラムマスターをフォローする
- チーム全体のスクラムの知識が少ないとうまく回らないため
- 開発者の見積もり、実装状況を計測して評価する(以下は評価の例)
- 残業なし + 実装完了 => +2点
- 残業あり + 実装完了 => +1点
- 残業なし + 実装なし => +0点
- 残業あり + 実装なし => -1点
- 開発者のフォロー
- 技術的な知見の共有
- エンジニアと1on1して、目指すキャリアにあった役職を与える
- 役職が埋まらなかったら、どうにかして調達する
まとめ
顧客により良い製品を届けるため、POは責任を持ってプロダクトバックログを作る。
開発者は「見積もり」と「コミットメントした範囲の実装」に責任を持つ。 見積もり通りに実装を終わらせたら、次イテレーションの準備をしても良いし、早めに帰っても良いと思う。
スクラムマスターは業務がうまく回るように見える化、改善を促す。 メンバーが自発的に改善し始めて、SMが仕事をサボっても問題ないのが理想だと思う。
スクラム開発チーム外の役職者(もしくはエンジニアリングマネージャー)は開発チームがうまく回るようにフォロー、育成する環境を用意する責任がある。