ソフトウェア開発のPM(プロジェクトマネージャー)が日々頭を悩ませることと言えば、「どのようにしてプロジェクトが回る開発体制を作るか?」だと思います。
近年では投資対効果を最大にするため、短期間でのソフトウェア開発を要求されることも少なくありません。
そうなると開発体制の構築はさらなる頭痛の種となって、PM業務を圧迫するでしょう。
しかしふと隣のプロジェクトを見てみれば、円滑に進んでいて開発体制もしっかりと取れている。
「なんで!?うちと大した違いはないのに!」と疑問に思う方も多いのではないでしょうか。
確かに基本的な開発体制は変わっていないのでしょうが、問題は「どんな開発体制を組んでいるか?」ではなく「プロジェクトを円滑に進めるために何を実践しているか?」です。
そこで今回は、開発体制に悩むPMに向け“プロジェクトが回る開発体制の作り方”を紹介していきます。
1.ビジョンを明確しなければ、プロジェクトは回らない
目的地を決めずにフラフラとするのは自由気ままでいいものですが、ソフトウェア開発においては絶対的にしてはならないことです。
ビジョンがなければ「何のためのプロジェクトなのか?」という疑問さえ生まれ、チームに混乱を招きます。
ビジョンなきプロジェクトが意外と多い
しかし実際に、ビジョンを明確に定めないままプロジェクトを進行しているケースが少なくありません。
理由の一つとして「ソフトウェア開発は自由に変更がきく」ということが挙げられます。
建築物は一度建ててしまえば、設計にミスがあたっとしても「取り壊して、作り直す」といったことはまず可能です。
作るために多額のコストや資材を投入している上に、実体があるため取り壊すためにもコストや手間がかかります。
だからこそ建築前に明確なビジョンを持ち、寸分の狂いもないよう設計を行います。
よくビルやマンションの建築現場において、“完成予想図”と称された建築物のリアルなイラストがあると思います。
あれが建築業界におけるビジョンです。
ビジョンがあるからこそ、皆同じ方向を向いてプロジェクトを推進することができるのです。
もちろんソフトウェアは実体のないものなので、建築物のようなビジョンを持つことは難しいと思います。
そこで有効的なのが“KPI”の設定です
KPIを設定しよう
「Key Performance Indicator」の略であり、日本語では「重要業績評価指標」となります。
ビジネスに身を置く者としては一度くらい耳にしたことがあるでしょう。
KPIとはいわば「最終的な目標に対し設定するいくつかのハードル」であり、プロジェクトの進捗度や達成度を明確にするために用いられます。
主に企業経営やマーケティングの分野で使用されている指標ですが、最近ではソフトウェア開発においても有効的とされ活用しているPMが増加中です。
プロジェクトの節目に設定するマイルストーンと混同されがちですが、「マイルストーン=中間ポイント」「KPI=ハードル」と考えると違いがわかりやすいと思います。
例えば最終的な目標が「120人月のプロジェクトを1年間で完遂する」であれば、KPIには「プロジェクト開始1ヵ月前までにエンジニア最低10人は確保」や「半年経過時点でプロジェクト全体の70%を完了」といった具合に“明確な期間と数値”を持って詳細に定めます。
このようにKPIを設定することで、KPI自体がプロジェクトのビジョンとなってくれます。
KPIというビジョンに合わせて開発体制を組むことでプロジェクトを回す基盤が作られるのです。
2.プロジェクト名がなければ、意識を共有できない
ソフトウェア開発に限らず、プロジェクトを成功に導くためにはチーム全体で意識を共有しなくてはなりません。
ベクトルを合わせると言ってもいいですね。
しかし、プロジェクトが大規模になればなるほど自然と人員も膨大になるため、コミュニケーションパスが増加して意識の共有が難しくなります。
そこで効果的なのがプロジェクトや製品に対し“愛称”を付けることです。
愛称は効果が高い
例えば航空宇宙局のNASAでは、プロジェクト発足時に必ず愛称をつけます。
これには愛称を付けることで「チームの意思統一を図る」という目的と、「プロジェクト自体に愛着を持ってもらう」という2つの狙いがあります。
例えばプロジェクト名が「2017年リリース予定グループウェア開発プロジェクト」だったとします。
チームメンバーからすればプロジェクトに愛着を持つことは難しく、故に意思統一が図れないということもあるでしょう。
ではもしもプロジェクト名が「“グルッポ”開発プロジェクト」であったらどうでしょう。
“グルッポ”が開発予定のグループウェアの愛称であり、これをそのままプロジェクト名にします。
なんとなく、このプロジェクトに愛着が持てる気になるのではと思います。
このように、架空のプロジェクト名に愛称をつけただけで愛着が湧きそうになるくらいなので、プロジェクトに参加しているメンバーからすればその影響力は非常に大きなものとなります。
ただし、公序良俗に反する愛称や覚えにくいものは逆効果なので注意しましょう。
ソフトウェア開発でも始めたい“ペルソナ”
もう一つ、愛称とは若干違いますがチームの意識を共有するために有効的な手法があります。
それは“ペルソナ”を作成することです。
これはマーケティング界隈でよく用いられる手法であり、主に顧客のニーズをピンポイントで捉えるために用いられます。
そして二次的に「チーム内で意識を共有することができる」という効果があるのです。
まずペルソナを簡単に説明すると、「自社製品のターゲットとなる、詳細まで作り上げた架空の人物像」です。
ソフトウェア開発におけるターゲットとは業務ソフトウェア開発なら顧客そのもの、一般ユーザー向けのソフトウェア開発ならば利用するユーザーです。
つまり、「このソフトウェアを使ってほしい顧客orユーザー」を架空に作り上げてみるのです。
ポイントは性別や年齢といった基本的な情報だけでなく、役職や年収、家族構成や休日の過ごし方、口癖などあらゆる情報を定めることです。
作り方は理想とする顧客(あるいはユーザー)にインタビューを行ったり、グループディスカッションなどを行うことでぺルソナを作り上げていきます。
様々な情報を設定したら名前を付け可能であれば写真も用意しましょう。
このペルソナをチーム内で共有することで、チーム全体が同じターゲットを意識してプロジェクトにあたることができます。
ソフトウェア開発におけるペルソナの作り方に関しては、また別の機会に解説したいと思います。
3.キーパーソンを専任しなければ、頓挫することが多い
キーパーソンとはいわゆる組織の中心人物であり、強い発言力と影響力を持っている人物です。
しかし必ずしも管理職とは限らず、一般社員の中にもキーパーソンになっている人物が存在します。
プロジェクトへの影響力
キーパーソンは周囲に影響力があるだけでなく、実務にも詳しいのがほとんどです。
このためプロジェクト初期の段階が巻き込んでおかなければ、要件定義で無駄な機能が発生していたり、必要な機能が欠けているといったケースが発生します。
また、プロジェクトが終盤に入った段階でキーパーソンが反対派に回るといったケースも少なくありません。
こうなるとプロジェクトが頓挫していまう可能性が非常に高くなり、かなりのリスクを背負っていることになります。
だからこそ、キーパーソンはプロジェクト初期の段階で巻き込んでおく必要があるのです。
しかし問題は「誰がキーパーソンなのか?」を見極めるのが難しいということでしょう。
現場に足を運ぶ
キーパーソンを見極めるためにまず必要なことは、現場に足を運ぶことです。
人事システムから組織を俯瞰して見てみても現場の状況を把握することはできず、キーパーソンを見極めることは不可能に近いと思います。
だからこそまず現場に足を運び、各社員からヒアリングを行ってみてください。
周囲の人物でPL(プロジェクトリーダー)として適任なのは誰か?
どんなPLなら安心してついていけるか?
どんなPLなら仕事がやりやすいか?
などなど、色々とヒアリングを行うことで見えてくるものがあります。
人間は周囲の環境に影響されやすいものなので、ヒアリングをしていくうちに自然とキーパーソンが誰なのかが浮かび上がってきます。
「ここは誰、あそこは誰」といったように、チームごとにキーパーソンを把握することができれば、プロジェクトへ巻き込むのもそう難しくはありません。
まとめ
最後に、今回の要点を簡単にまとめておきます。
- プロジェクトのビジョンを明確にする
- KPIを設定する
- プロジェクトやソフトウェアに愛称をつける
- ペルソナを作成してチームの意識統一を強める
- キーパーソンを初期段階から巻き込みプロジェクトの成功率を高める
- 現場に足を運んでヒアリングをし、キーパーソンを見極める
いかがでしょうか?今回は“プロジェクトが回る開発体制の作り方”を紹介しましたが、これが皆さんのプロジェクトを今後スムーズに運ぶ手助けとなれば幸いです。
最後に、プロジェクトが迅速化し、属人化などを防止する開発体制を構築するポイントとして「超高速開発ツール」の導入を挙げておきたいと思います。
例えばインテリジェント・モデルが提供する「ODIP(オーディップ)」ではプログラムの自動生成や可視化により、開発工数を削減し担当エンジニアごとにブラックボックス化していたプログラムを全体で共有可能にします。
今回紹介した開発体制の作り方だけでなく、超高速開発ツールといったソリューションを導入することで、より効率的にプロジェクトを回すことができるでしょう。