自分のプロジェクト管理に関する考えのまとめ

ここ最近は色々とあってプロジェクト管理、スクラム開発について勉強していたので、それを整理するためにまとめた。

あたりを読んで勉強したので、スクラムに関する理解はそれなりになっているはず。

ただ、評価や役割に関するところは自分の好みで少し脚色があるので、これが「スクラム開発なのか!」みたいに勘違いしないように注意。

ソフトウェア開発の前提(スクラムはあまり関係ない)

「なぜソフトウェア開発をするのか?」という前提の話を最初に書いておく。 多くの企業の目的は サービス(製品)を開発し、ビジネスで利益を上げるため になるかなと思う。*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が仕事をサボっても問題ないのが理想だと思う。

スクラム開発チーム外の役職者(もしくはエンジニアリングマネージャー)は開発チームがうまく回るようにフォロー、育成する環境を用意する責任がある。

*1:一部の企業には、世界平和やより良い未来のために開発してる人はいるかも

*2:ただ、スタートアップの企業などで40時間を守っている場合じゃないことはある