開発者を活かす

ソフトウェアプロジェクト・マネジャーができる最善のことは、ビジョンを設定し、優先順位を付け、邪魔をしないことです。これからお話するのはティムという人物に関する実話です。

あるとき私たちは、プロジェクトにもうひとつ別のチームが必要であることがわかりました。そこで欠員があることを公表して、候補者面接を始めました。やがてある人物が候補者リストのトップに浮上しました。

彼の名前はティム。ティムは候補者のなかでも抜きんでていました。彼を雇うことに決めるのは「考えるまでもない」ように見えました。ところが反対意見が出たのです。私たちの部門で雇った人員はみな、3 つあるプロジェクト・マネジャーのポストを持ち回りで担当する可能性があります。そのプロジェクト・マネジャーのひとりが以前ティムと仕事をしたことがあり、彼にはモチベーションが欠けていると述べたのです。ティムの業務態度について、彼女は「仕事中いつもWeb サーフィンをしていて、やる気がないように見えた」と説明しました。

これは判断の難しい状況でした。雇うかどうかを判断するときには、客観的な面接よりも候補者とプロジェクト・マネジャーの個人的経験に重きが置かれるものです。しかし技術的観点から見ると、ティムのスキルはほかの候補者を大きく上回っていました。反対意見があったにもかかわらず、結局のところ、私たちはティムを雇うことにしました。プロジェクトはアジャイル開発によって運営されており、イテレーション†の最初にはミーティングをします。

このミーティングには大きな目的がいくつかあります。

  1. ストーリー††を作成して、ユーザー要求に基づいた優先順位を付けて、お互いに理解する。
  2. ストーリーからそのプロジェクトスコープにおけるチームのビジョンを作成し、適切な受け入れ基準を設定する。
  3. ストーリーをタスクに分解して、タスクを担当する開発者が見積もりをする。

ミーティングが終わると、これらのタスクはタスクトラッキングシステムに投入されます。タスクトラッキングシステムの重要性については、よく誤解されています。これは開発者がどのタスクに着手しているのかを調べるために使われます。開発者が自分のタスクを早く完了させた場合には、本来アサインされていた開発者がまだ着手していないタスクを「盗んで」(もしくは完了して)先に進んでも構いません。

やがてティムを雇ったのは大成功だったとわかりました。彼はチームのだれよりも多くのものを生み出したのです。彼の評価が一番はっきりとわかるのは、ほかの開発者から「盗んだ」タスクの数でした。より多くのタスクを完了させたということは、プロジェクトをすばやく完了させるのに貢献したことを意味していました。

ここで不思議なのは、なぜプロジェクト・マネジャーのひとりがティムを非生産的だと考えたのかです。よく調べていくと、ティムを非難していた人は、過度にコントロールするマネジメントスタイルをとっていることがわかりました。彼女は開発者にタスクを「与える」と、チームの仕事場を離れてミーティングに参加していました。ティムは仕事がはやいので、アサインされたタスクをすぐに仕上げてしまいます。そして、プロジェクトの優先順位や次に着手可能なタスクについて指示がなくなると、ひとり暇にしていたのです。

ひとりのソフトウェアプロジェクト・マネジャーが決めたものではなく、チーム全員によって周知され、文書化され、管理された、明確なビジョン、明確な受け入れ基準、共有されたプロジェクト優先順位があるとき、すぐれたチームは本当に驚くべきパフォーマンスを発揮します。時としてプロジェクト・マネジャーができる最善のことは、邪魔をしないことです。あなたはティムをうまく扱えますか?