Googleスプレッドシートでのプロジェクト管理

イントロ

やあ、元気?俺はテック会社のエンジニアだよ。最近、4人のエンジニアで4ヶ月かけてプロジェクトを完了させたんだ。進捗を追うためにGoogleスプレッドシートのカスタムプロジェクトトラッカーを使ってたんだけど、すごく便利だったよ。なので、そのトラッカーがどう機能して、どんな問題を解決してくれたかを共有したいと思う。次のプロジェクトで似たようなアプローチが使えるかもしれないからね。

解決した問題

私たちが探していたプロジェクト追跡ツールは以下の機能が必要でした。

  1. 数人のエンジニアが複数週にわたって仕事を予定できるようにし、複数の外部イベント(休暇、オンコール、コードフリーズ、他のプロジェクトなど)を考慮して、エンジニア間の作業負荷をバランスよく分散できること。

  2. プロジェクトの状態を一目で確認できること。「誰がX工程に取り組んでいる?」「順調?」「過去数週間で何を完成させた?」「X機能の納品はいつ?」「コード完了/品質保証/ローンチの予定は?」などの質問に簡単に答えられること。

  3. アドホックな調整が柔軟に対応できること。例えば、タスクのソート、優先順位付け、タスクや日付の非表示、日付の強調、リスクの高いタスクやオプショナルなタスクのハイライトなど。

  4. 大量の操作に効率的なこと。複数のタスクを再割り当てしたり、見積もりや開始/終了日を調整したり、タスクをサブタスクに分割することが簡単なこと。

柔軟性は多分最も達成が難しい要件です。理想的には、従来のプロジェクトトラッカーよりもホワイトボードに近い道具が欲しかったんだ。だからアサナやMSプロジェクトといったようなツールは使わなかったんだよ。

スプレッドシートはこの軸のちょうど真ん中に位置するので、私たちはそれを使ってカスタムソリューションを構築しました。

トラッカーの概要

トラッカーはスプレッドシート一つに収まっています:

4つの領域があります:

それぞれ詳しく見てみましょう。

タスク

一行が一つのタスクを表しています。タスクには名前説明があり、週単位で見積もられ、担当者がいます。担当者はイニシャルで表示されます(例: NPはNikita Popov)。タスクはワークストリームにグループ化されており、これはタスクをまとめる任意の方法で、似たタスクをともに配置するのに役立ちます。

タイムライン

タイムラインの1つのセルは1週間を表します。縦の赤線は現在の週を示しています。もしエンジニアがある週にタスクをしているなら、対応するセルにイニシャルを入れます。例えば、最初の行ではB.O.というエンジニアが4週間の見積もりでタスクをしており、すでに3週間が経過しています:

ワークロード

緑色の数字は、それぞれの週にエンジニアが取り組んでいるタスクの数を示しています。この値は自動的に計算されます。式は基本的に現在の週の列にある各エンジニアのイニシャルが何回表示されるかを数えます。もしエンジニアが別のプロジェクトに取り組んでいたり休暇中であれば、値は0になります。理想的にはワークロードは0.5または1になります。もし同じエンジニアにフル週のタスクを2つ計画したら、セルは赤くなります:

進捗

毎週プロジェクトの完了進捗を計算することができます。私たちはタイムラインの過去のタスクは完了したものと仮定します。そうでなければ、それらを将来のタイムスロットに延長または移動します。したがって、進捗率を見積もるためには、現在の瞬間(タイムライン上で左)にあるエンジニア週数をトータルのエンジニア週数で割ります:

これは単に完了したタスクの数を数えるよりも良い方法です。なぜならこの式はタスクのサイズ(週単位)を考慮に入れているからです。

このセクションでは、休日、マイルストーン、リリースフェーズ(品質保証、ローンチ)、チームイベント(例えばオフサイト)も指定しています。

トラッカーの使用方法

火曜日にはエンジニアリング同期会を行っており、一緒にタイムラインを見てプランに沿っているかチェックしていました。もしタスクが予定よりも長くかかれば、タイムライン上で半週または1週間延長して、そのエンジニアのワークロードが1を超えていないかをチェックします。もし1を超えていたら、他のタスクを後ろに押し出したり、別のエンジニアに移行したり、タスクを優先順位を下げたり、ローンチ日の遅延を通知したりしなければなりません。

木曜日にはより広範な利害関係者との同期会を行っています。そのミーティングではプロジェクトの状態を共有しました。予定通りかどうか、及びプロジェクト完成率を共有しました。

長所と短所

専用ツールに比べると、このようなカスタムタスクトラッカーを使用することにはいくつかの欠点があります。しかし、私たちはその利点がそれに見合うと考えています。長所と短所を見てみましょう。

既存のツールとの統合がない(タスク、差分)

タスクはスプレッドシート上の一行にすぎず、タスク番号を持っておらず、差分にリンクすることはできません。あるプロジェクトにとっては問題になるかもしれません。普段はタスクツールを使っていますが、通常タスクには名前と簡単な説明しかありません。コメントでの議論はありません。それは通常オフラインで行われます。もし実際にタスクをコラボレーションのために使用していないなら、私たちのトラッカーもあなたにとって有用かもしれません。

手動でのタスクステータスの更新

タスクを完了としてマークする場合は、セルを色付けする必要があります。新しい担当者にタスクを渡す場合やタスクを再スケジュールする場合は、スプレッドシートのセルを編集する必要があります。間違いを犯す可能性があります。私は何度か間違いを犯しました。例えば、エンジニア週数を間違った行に移動してしまいました。これらのエラーは、タスク実装に取り掛かる一度目で発見・修正するのは簡単でした。スプレッドシートの編集履歴が役立つことがあります。

慣習を学ぶ必要がある

つまり、タスクステータスの表示方法や、完了率の読み取り方などです。私たちのチームではトラッカーを更新していた担当者が一人いました(私です)。難しくはありませんでしたし、エンジニア同期会での10分くらいの作業で済みました。

皆が使い方をすでに知っている

なぜなら皆がエクセルを知っているからです。トラッカーは単なるGoogleスプレッドシートで、スクリプトを使っておらず、式も基本的なものです。皆がセルに色を付けたり、内容を変更したりする方法を既に知っています。学ぶべきは慣習だけです。

カスタマイズの可能性

プロジェクトの要件に合わせてトラッカーをカスタマイズすることができます。タスクの優先順位を追加したい?問題ありません。単に列を追加してください:

実際、私たちは関係者との会議の最中にいくつかの機能を他のものよりも優先することを決めたときにこの列を追加しました。

タスクに関するフィールドを追加するのに1分もかかりません。カスタム列は条件付きフォーマット(スプレッドシートは内容に基づいてセルの色を設定することができる、例えば値が「High」なら赤色に設定する)とフィルタリングにうまく合います。

または、すでに完了したタスクや過ぎ去った週を隠したい場合は問題ありません。その行や列を単に非表示にしてください。

![](https://res.cloudinary.com/practicaldev/image/fetch/s--ehvd0znm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r0yxgin1x4nmyhp

こちらの記事はdev.toの良い記事を日本人向けに翻訳しています。
https://dev.to/losnikitos/project-tracker-in-google-spreadsheet-11n1