本記事は、サムザップ Advent Calendar 2019 #2 の12/4の記事です。
サムザップでエンジニアのマネージャをしている野口といいます。
以前にあるプロジェクトへ異動し、マネジメント関連のヘルプをしたときの話を振り返って書いてみようかなと思います。
ヘルプに入った当初
まずはどんなプロジェクトなのかを把握しようとしました。
技術的な設計方針やツールの使い方など細かなポイントよりも、
ますどんな人たちがどんな環境でどのように開発しているのかを知ろうとしました。
(予備知識が全くなかったわけではありませんが、実際の現場をしっかりみるのは初めてでした)
- 開発のフェーズ/進捗はどれくらいか
- 作業はどのように起票され、管理されているか
- チームの雰囲気や、コミュニケーションの方法はどんな感じか
- それぞれの人となりとスキルをなんとなく知る
- そして、チームはどのあたりに苦労してそうか
最初に注力することを決める
全体像と課題感がある程度把握できたので、次に最初にやるべきことを考えました。
状況を見て、チームの体制を特に変える必要はない/変えるべきでないと思ったので、
そのままの体制でPJマイルストーンを達成できる、最大限パフォーマンスが出せるよう、その目的に対して特に優先度が高いものをピックし、取り組むことにしました。
- リーダーメンバーのタスク棚卸し
リーダーは、他セクションとの窓口だったり、周りの作業管理だったり、ちょっとした修正/反映依頼が積み重なったり、自身の実装タスクがあったりと負荷が上がりがちになっていました。
本来 力を発揮してほしい役割により集中できるよう、できるだけその他の作業を剥がしました。
- クリティカル・パスがどこか調査できる状態にする
課題感のひとつとして、マイルストーンに対する作業管理ができていないというのがありました。各メンバーは日々バックログから作業をとって消化するというのを懸命にこなしてくれていましたが、日々起票されていく作業に対して、いまの進捗は問題ないのか、このスピード感で間に合いそうなのか、ゴールまでどれだけの量を消化すれば良いのか、が見えない状態になっていました。
そこで、タスクを精査/棚卸しし、現状の総量/日々の起票量と消化速度が分かるようにしました。バーンダウン等で可視化することで、スケジュールに対する進捗とチームパフォーマンスが測定できるようになりました。
- マイルストーンを達成できるよう、クリティカル・パスを調整する
上記で調査してみると、下記2つの項目がマイルストーンにとってクリティカルになっていることがわかりました。
- アウトゲーム周りの作業タスク量
- 修正済みタスクの確認(デバッグ)期間
これらについて、タスクの優先度付け/棚卸し、人員体制、最終的にはスケジュールの調整をしてどうにか帳尻を合わせました。
また、後々クリティカル・パスに影響を与えそうな不安要素を排除するように動きました。特にプロジェクトの特徴として、後から多量のフィードバックが発生することがあったため、開発の区切りに新しくマイルストーンを設定し、そこでレビューを受けて先んじてフィードバックを洗い出すようにしました。
- 効率を上げ、パフォーマンスが出せるようにする(第一弾)
チームに加入して最初に改善した方がいいなと思ったことのひとつに、「修正済みタスクのチェック用アプリが、たびたび開発の影響で突然動かなくなる」「日中にリーダーがそれを調査して直す」というところがありました。
これは上記に記載した2つのクリティカル・パスにとって非常に影響の大きい内容だったため、まず優先して対処することにしました。具体的には、開発環境とチェック環境を分け、チェック用のアプリは毎朝定期的にビルドされるようにしました。
継続的に確認して棚卸し
ざっくり整備してタスクの可視化とパフォーマンスを出せるようになり、実績値としてチームの開発速度が測れるようになりました。
しかし最初に1回やっただけでは意味がないため、日々の確認が必要です。速度はちゃんと出ているか、速度に対してタスク量は問題ないかなどを日々確認して、必要に応じて都度調整する必要があります。
今後を見据える
こちらは今もまだまだやることが残っていますが、今後のことも考えてチームを調整する必要があります。
例えば以下のような内容に気を配っています。
- 特定の人に属人化しすぎないこと
一時的に速度は落ちても一定分担させる
イベント施策と不具合修正が被っても並行できるよう - 後々の運用で困る内容は先に潰しておく
後に回すとだいたい直さ(せ)ない ので優先度の高いものは先に直しておく
自分の振り返りのためにちょっとザックリ書きましたが、
何かが参考になれば幸いです。
明日は @RyotoKitajima さんの記事です。