見出し画像

プロジェクトマネジメントとシステム開発の話

 今回は、プロジェクトマネジメントとシステム開発について、過去の経験等を思い出しながら、少しは皆さまの暇つぶし(ではなく、参考)になりそうなことを徒然なるままに記載しようと思います。

 システム開発というと、モノづくりがメインになるわけですが、一人で開発することは少ないと思います。一般的にはプロジェクトチームとして活動し、プロジェクトを成功させるために一人ひとりが役割を全うする必要があります。プロジェクトチームに含まれるメンバの役割と主な仕事は以下のとおり。
・プロジェクトマネージャ…成功したプロジェクトを納める。
・プロジェクトリーダ…プロジェクトメンバの方向性がズレている場合の軌道修正及び問題解決の手助け
・プロジェクトメンバ…プロジェクトにおける自身の担当機能の開発を実施

 「プロジェクト」とは、始まりと終わりがある、つまり有期的なものです。「プロジェクトの成功」とは、端的に言うとQCD(品質・コスト・納期)を満たすことです。そして、「計測できないものは管理できない」と言います。何が言いたいかというと、QCDのうち、意識すべきはQ(品質)であるということです。安かろう悪かろうでは意味が無いですし、納期を守っても品質が悪ければやはり意味がありません。つまり、システムエンジニア(SE)がやらなければならない仕事は究極的には2つしかありません。 
 ①正しいものを作ること。
 ②作ったものが動くこと。
 正しいものを作っても、動かなければ意味が無い。誤解したものを作って動いても意味が無い。よって、正しいものを作って、それが動くことが必要だということです。正しいものとは、顧客が何を意図してその機能・非機能を要求しているのか、背景にある目的や理由を把握するということです。

 上記を踏まえ、プロジェクトを成功させるためのSEの武器である以下の項目について、5W1Hの観点で検討・整理します。
 WBS(ワーク・ブレークダウン・ストラクチャ)、ガントチャート、UML(特に有用なものはユースケース図、シーケンス図、状態遷移図、コンポーネント図、クラス図)、ネットワーク図(NW機器、セキュリティ器材、端末、サーバ、NWセグメントを整理したもの)、システム構成図(HW,OS,MW,APL等を整理したもの)、コーディングルール、名称付与基準、テスト技法(同値分割、境界値分析、オールペア法、状態遷移の関係行列等)を活用して上流工程と下流工程の成果物のトレーサビリティを確保しつつ各種試験項目抽出、テストカバレッジ(C0,C1,C2,MC/DC等)の決定、ツール(プロジェクト管理、バージョン管理、SDK、テストカバレッジ・メトリクス測定、CD/CI等)の選定

 また、最近はアジャイルという開発プロセスが人気のようですが、他にもV字モデル、プロトタイプ、スパイラル等様々な開発プロセスがあり、システムの開発規模やリスクを考慮し、適切な開発プロセスを選択する必要があります。大規模開発にアジャイルを適用しようとすると、バグ修正に関する影響範囲を抜け漏れ無く掌握することが難しいため適切とはあまり思えません。未経験の新規システム開発ではプロトタイプを作って実現性を担保し、顧客の要求との認識ズレが無いことを確認しながら前に進める必要があります。

 上記を踏まえ、開発計画書にスコープ、タイム、コスト、品質、資源、コミュニケーション、リスク、調達、ステークホルダの観点で必要事項を整理します。開発計画書に関して上司決裁を経て、プロジェクトチームを編成し、キックオフミーティングでプロジェクトメンバの合意を得ることにより、言った言わないのトラブルを回避します。詳細については、PMBOKに関する書籍等をご確認願います。

 以上のように、Q(品質)を意識すると、最小限のコストと最短の納期を設定することが可能になります。これは私の独自理論ではなく、インターネット上で知り得た情報や書籍を活用し、実践して納得しているものですので、参考になれば幸いです。

では、また。

いいなと思ったら応援しよう!