読者です 読者をやめる 読者になる 読者になる

Excelについて(ちょっとだけ)本気出して考えてみた

システム開発

ちょっと認識が間違ってました。

  • 誤:Excelはダメな子
  • 正:(大規模プロジェクトでのタスク・バグ管理ツールとしては)Excelはダメな子*1

何だかんだ言って、表計算やデータ集計・分析にはやっぱりExcel強しということを改めて実感。ということで、反省とかも兼ねて今回の一部始終を書き下ろしてみます。

ただ、頑張って書いたはいいのですが、このはてなダイアリーのテーマって表組みが見にくいですね。このために他のテーマに変えるのも微妙だしなぁ。


発端

ちょっと前に、Trac関連のGoogleグループで流れていた話題。

今、Tracを運用しているのですが、運用したチケットを集計した結果を出力するツールがデフォルト機能になくて悩んでます。

Tracのチケット集計出力機能 - Shibuya.trac | Google グループ

回答者のみなさんは、意外と(?)分析はExcelでやってるんだなという感想。で、各種ツールに蓄積されたデータを分析するということについては今まであまりまじめに考えてこなかったのですが*2、もう一歩先に進むためにもここで立ち止まって考えてみることに。

ちょうど、現プロジェクトでもタスクの見積工数・実績工数を入力・分析して役立てていこうよという状況だったので。とは言っても(主体となって分析を行う)リーダーの頭にも、もうちょっと正確な見積が出せるといいな程度の漠然としたイメージしかなかったみたいですが。


現状

(バグ・仕様変更などの)タスク対応のワークフローは、↓のような。

  1. タスクに関して、開発者が調査とその見積工数を算出する
    • 管理台帳入力:調査工数、見積工数
  2. 見積工数を基に、ユーザ・PMが話し合いで該当タスクの対応可否を判定
  3. タスクに対応すると決まったら、開発者が実際に着手
  4. 対応完了したら、受入テスト担当者に連絡
    • 管理台帳入力:初期対応工数
  5. バグがあれば、再度開発者に差し戻して再対応
    • 管理台帳入力:戻り対応工数
  6. バグが無ければ、該当タスクをクローズ

工数入力するためのExcel管理台帳は、こんな感じ。正確には、対応者やらタスクのステータスやらも入力されていますが、ここでは割愛。差し戻しが無ければ、戻り対応のレコードは作成されません。

機能 管理番号 工数区分 対応工数(時間)
機能A 0001 調査 5.0
機能A 0001 初期対応 10.0
機能B 0002 調査 2.0
機能B 0002 初期対応 20.0
機能B 0002 戻り対応 5.0

ここまでは既にできているけど、じゃあこの情報を基にどう分析したらいいかってのがリーダーがイメージできていなかった模様。なので、ここはリーダーになった気分で「どういう情報があると嬉しいか?」っていうのを考えてみました。


実践

とりあえず、(機能・管理番号)×(工数)という集計が見たいなと。どのタスクにどれくらい工数がかかっているかを把握しておくのは、基本だろうと考えて。

よく分からないままに「Excel」「集計」とかで検索。ピボットテーブルを使うと、望みのものが実現できるっぽい。Excel豆知識:ピボットテーブルを参考に、ごにょごにょしてみる。ごにょごにょした結果は↓。

機能 管理番号 調査 初期対応 戻り対応 総計
機能A 0001 5.0 10.0 15.0
機能B 0002 2.0 20.0 5.0 27.0


フィードバック

ある程度形になった段階で、リーダーに見せてみます。「今皆に入力してもらっている情報から、こんな分析資料が作れますよ」と。

結果は・・・思いのほかいい反応♪「こんなこともやって欲しいけど、できそう?」と聞かれました。

  • 総計の人日・人月単位表示
  • 見積工数の表示

人日は1日8時間、人月は1ヶ月20日という計算で。見積工数は現状管理台帳上に入力する箇所がないので、新たに列を追加します。「工数区分=調査」の場合のみ入力されるという前提(その他のレコードに入っていても、無視する)。

修正後の管理台帳は、こんな感じ。

機能 管理番号 工数区分 見積工数(時間) 対応工数(時間)
機能A 0001 調査 15.0 5.0
機能A 0001 初期対応 10.0
機能B 0002 調査 20.0 2.0
機能B 0002 初期対応 20.0
機能B 0002 戻り対応 5.0

リクエストされた情報を、ピボットテーブルの横に表示。この際、条件付書式を用いて「総計>見積工数」だったら該当のセルを赤くする機能も。

機能 管理番号 調査 初期対応 戻り対応 総計 人日 人月 見積工数
機能A 0001 5.0 10.0 15.0 1.9 0.1 15.0
機能B 0002 2.0 20.0 5.0 27.0 3.4 0.2 20.0


そういえば、かのJoelもピボットテーブルの使い方は知っておけって言っていたような気が。そのときはまったくピンときませんでしたが、今ならちょっとは分かる気がします…

Joel on Software

Joel on Software

*1:ドキュメント作成とか、他にもExcelが不向きな用途はいっぱいあるでしょうが。

*2:まずはともかく、導入することに気を取られていたので