プロジェクト実行計画2~開発プロセス~

こんにちは!おおはしりきたけです!
今回はプロジェクトの「過程」として大切な開発プロセスやプロジェクトチームについてについて書いていきます。

■開発プロセス


開発プロセスといえば、「ウォーターフォール」とか「アジャイル」とか色々ありますが、対象のプロジェクトに対し、どのようなプロセスで開発していくのかを計画していく必要があります。 プロジェクト実行計画においては、どのプロセスを使うかは重要ではなく、そのプロセスでどのように開発を進めていくのかに注力しましょう。 どのような期間でどのように進めていくのかを、しっかりと決めその作業での成果物が何になるのかまで決める必要があります。 今では、アジャイルだからと言って、特に何も決めなくて始めてしまったりすることはないでしょうが、計画が立っていない開発プロセスは、カオスです。テスト計画が立っていないのにテストファーストでやろうとしても、無駄なテストコードだけが増えてしまいます。 開発プロセスは、今計画しているプロジェクトにおいて、「どのようなプロセスが適切か」、「作業の進め方をどうするか」、「作業を始めるための入力情報は何か」「作業終了時の成果物は何か」をしっかり計画していきましょう。開発プロセスを決めることにより以下のようなメリットがあります。

1.安心感を与える
プロジェクトに参画した担当者が、開発プロセスがあることにより、どのような作業が必要で、インプット、アウトプットが何かを事前に知っておくことにより安心感が出ます。毎回同じメンバーでプロジェクトを行うということは、まれだと思いますしお客様、社員、パートナーを含めてのプロジェクトチームです。プロジェクトチームのメンバーが安心感を与えるためにも開発プロセスは有効です。

2.コミュニケーションの手段として
上記にもあったようにプロジェクトメンバーが同じということはあり得ないです。何社もの協力会社が参画することもあります。そんな中「要件定義」「基本設計」などという表面的な合意ではなく、それらの作業によって生み出される成果物が何なのかを明確にすることにより、コミュニケーションの齟齬がなくなります。

3.管理を可能にする
管理がうまくできていないプロジェクトは、共有されている開発プロセスが無いことが原因になっていることが多々あります。開発プロセスが明記されることにより、管理対象も決まってくるため管理を行いやすくなります。管理者はスケジュール%の進捗管理だけではなく、成果物の品質もしっかりと管理し、プロセスのモニタリングをしっかり行いプロセスの改善を継続的に行っていきましょう。

■開発環境


システムが動く環境というのは、「開発用PC」「開発サーバー」「ステージングサーバー」「本番環境」など色々あります。 今回のシステムが、どのような環境でどのような用途で動かされるのかをまとめておく必要があります。 特に本番環境のOSや文字コードの違いなどで、想定していない不具合などがギリギリで発生することもありますので、システムで使用する開発環境をすべて纏めておきましょう。

  • 環境名
  • 使用者
  • 使用目的
  • 使用期間

プロジェクトが進んでいくうちに詳細も決まってくると思いますので、OSのバージョンやインストールしているミドルウェアなども含めまとめておきましょう。

■開発支援ツール


主に開発者用の内容になりますが、開発時に使うソフトウェアやツールなどは統一しておく必要があります。特に大規模開発になってくると、Eclipseの設定などの環境構築だけで1日かかってしまう場合もあります。Eclipseなどは、各自ダウンロードして設定していくよりも、必要なPluginなどを入れてしまえば環境構築の手間も省けるためそのような情報も載せておいた方が、後から参画してくるメンバーに無駄な工数かけずに済みます。プロジェクト実行計画時から、開発のことも考えて計画していきましょう。

■プロジェクト体制


お客様、ステークホルダー、開発チームを含めプロジェクトにどのような人がかかわっているのかを図にすることにより、プロジェクトの全体巻がわかります。大規模な場合、さすがに個人名まではかけないでしょうが、担当するチーム、役割を明記しましょう。プロジェクトの期間同様、プロジェクトの全体が見えることでメンバーの意識も変わっていきます。

■役割と責任


なんとなくプロジェクトチームに参加しているのと、自分の役割が明確な状態でプロジェクトチームに参加しているのでは、どちらが効果を発揮するでしょうか?もちろん後者だと思います。 プロジェクトチームというと、自社だけを思い浮かべてしまいますが、プロジェクトチームというのはお客様も含めます。お客様も含めそれぞれどのような役割でどのような責任があるのかを明記しておきましょう。

■まとめ


今回は開発プロセスとチームメンバーについて書かせていただきました。開発プロセスとは誰のためのものなのかをしっかり考えて定義しましょう。アジャイルに理解のないプロジェクトチームに対してアジャイルプロセスで進めようとしてもうまく行くわけがありません。開発プロセスが決まったら、しっかり必要な知識の教育を行いましょう。教育にもコストがかかることを忘れずに!

さて、最後に大好評のなぞかけでしめたいと思います。

プロジェクトの成功と掛けまして結婚とときます。

その心は

どちらも過程(家庭)が大切です

プロジェクトは成功で終了させたいですが、家庭は終了させたくないですねっ!
さて次回は、「管理対象」についての実行計画を書きます。