システム開発の現場で上流工程を担当するようになると、実際に手を動かしていた時とは違った能力が必要になってきます。顧客と直接接する機会も増え、顧客側により近い立場で仕事をするようになるものです。そこで今回は、上流工程を担う際に必要とされるスキルや能力を考えていきます。
■目次■
上流工程に必要なスキル1 顧客の要望を引き出すヒアリング力
上流工程を担当するようになれば、顧客へのヒアリングの機会が発生します。ヒアリングは打ち合わせ形式であったり、インタビュー形式であったりと形式はさまざまですが、基本的に要望を引き出して整理することが目的です。
ヒアリングの段階では、顧客も具体的なシステムのイメージを確立できていないことが多いため、要望を一つ一つ引き出しながらイメージしやすい形にまとめていくことが必要になります。
また、顧客の要望の中からシステム的に実現可能なもの、不可能なものを選別しつつ、その内容を説明していく能力も問われます。
このとき、なるべく平易でわかりやすい表現を使いながらシステム化の可否を伝えることが大切です。エンジニア同士の会話だけで意味が通じるような表現は控え、よりビジネス的な表現を使った言い回しを心がけましょう。
以前の記事で、効果的なヒアリング手法として、アクティブリスニングやクローズド・オープンクエッションついても具体的に紹介していますので、合わせて参考にしてみて下さい。
上流工程に必要なスキル2 ドキュメンテーションスキル
上流工程では数多くのドキュメント作成が待っています。
特に要件定義書は顧客要件とシステム要件を取りまとめた、開発現場における最重要書類の一つといっても過言ではありません。
この要件定義書の内容ひとつで、後々の開発工程が大きく変わることもあり得るのです。
要件定義書に記載する内容は、逐一しっかりとチェックし、曖昧な表現はできるだけ省くようにしましょう。
さらに定義書全体が階層構造になるよう、見出しの優先度をはっきりさせておくことも大切です。
このとき、見出しの数が多すぎることのないよう注意すると、よく整理された印象を持たれる可能性が高くなります。
要件定義書の内容として必須の項目としては、「システム概要」「機能要件」「性能要件」「セキュリティ要件」「システム開発の目的・背景」などがあります。
これらの項目を過不足なく盛り込みながら、作成とチェックを繰り返しながら練り上げていくことで内容が充実していくのです。
この要件定義の必要性についても、以前の記事で事例を挙げて解説をしていますので合わせて参考にしてみて下さい。
上流工程に必要なスキル3 設計書作成スキル
要件定義フェーズが終わると、出来上がった要件定義書をもとにより具体的な基本設計などを行います。
上流工程ではこの基本設計フェーズまでを担当することが多く、プログラマは基本設計をもとにシステムを具現化していくことになるでしょう。
つまりプログラマにとっての指針ともいえるのが基本設計書であり、この基本設計書と要件定義書にズレが発生しないよう注意することが大切です。
万が一要件定義書と異なる基本設計を行ってしまうと、当然のことながら出来上がったシステムは顧客が求めているものとは全く違うものになってしまいます。
さらに下流工程まで進んだプロジェクトを軌道修正することは非常に困難で、デスマーチと化してしまう原因にもなりかねません。
基本設計書は、プログラマと顧客の要望を橋渡しするための重要な書類であると同時に、システム開発の成否を握る鍵でもあることを認識しておきましょう。
上流工程に必要なスキル4 チームをまとめるマネジメント力
上流工程を担当するということは、自分が支持する立場になる可能性が高くなるということです。
幾人かのプログラマやチームメンバーを従えて、小さなチームのリーダーを務める機会が増えてきます。システム開発は複数人のチームで行うことが多く、チームがうまく機能していれば大抵の困難は乗り越えられるのです。
一方、メンバーとの確執があったり、意思疎通がうまくとれていなかったりすると、途端につまらないバグを生み出してしまいます。
常日頃からチームメンバー全員としっかり意思の疎通がとれるような環境をつくり、定期的に打ち合わせや面談をおこなってメンバーの状態を把握しておきましょう。
チームマネジメント、プロジェクトマネジメントを行う上で重要となってくるチームビルディングをする際に重要なことを、PMに必要なチームビルディングの秘訣という記事で詳しく紹介しています。合わせて参考にしてみて下さい。