Before Next Index
開発方法論は星の数ほどある
 
 一言でソフトウェアシステムと言っても、顧客の販売管理システム、生産管理システム、事務処理系パッケージソフト、技術系パッケージソフト、携帯電話などの組込みソフト、コンピュータのオペレーティングシステム、コンパイラ、RealTimeシステム、Webコンテンツサービスソフト、バンキングシステム、・・・ など多岐多様です。これらのシステム毎に、必要とする技術・技能・知識、体制・組織、人数、管理方法、などは異なります。その規模や複雑度、必要とする背景知識、業種/業務ノウハウなども異なります。このように、余りにも異なるソフトウェアシステムの開発を、1つや2つの開発方法論で片付ける訳には行かないだろうということは、専門家でない人達にも想像がつくことだと思います。

 プロジェクトの要員数に注目しても、数人でこなせるプロジェクト、数十人のプロジェクト、数百人かけるプロジェクトでは管理方法はかなり異なってきます。数人のプロジェクトの場合には技術面で優れた人材は、リーダとしての能力を発揮できます。なぜなら、管理力そのものにさほど力がなくても、周りのみんなからリーダとして認めてもらえ、皆がついてきてくれさえすればプロジェクトは旨く行きます。しかし、数十人以上のプロジェクトになると、技術面のリーダが必ずしもプロジェクトのリーダとして務まるとはかぎりません。お客様との折衝、仕事の配分、スケジュール管理、動機付け、理解力、判断力、事務処理能力など、組織をまとめる力が必要となります。

 また、オペレーティングシステムとWebコンテンツサービスプログラムの技術的難易度には雲泥の差があります。オペレーティングシステムは技術の塊ですが、Webコンテンツサービスプログラムは使用する技術はそれほど難しいものではありません。一方、Webコンテンツサービスプログラムの作成者は顧客のニーズをしっかり把握していなければなりませんが、オペレーティングシステムの作成者はハードウェアや上位のシステムが必要とする機能について把握していなければなりません。

 技術系パッケージソフトの作成者は計算アルゴリズムに詳しくなければなりませんが、事務処理系パッケージの作成者は業務・業種ノウハウに詳しくなければなりません。

 業種システムの開発は顧客と一緒に開発しなければなりませんが、オペレーティングシステムやコンパイラ、パッケージソフトは開発者側の意思で開発します。業種システムの開発には要求仕様がなかなか定まらないという宿命があります。

 これほど異なるソフトウェアシステムの開発を1つの方法論でまとめきれることなどできるわけがありません。CMMI、PMBOK、XP、・・・などがあって当然です。それぞれ狙いが異なるのです。これらは著名なものですが、実際はプロジェクトの数だけ方法論があります。独自の方法論を実践しているプロジェクトはいくらでもあります。著名でないからと言って卑下することなどありません。実際にプロジェクトをリードしている人達にとって、著名であるかどうかなどはどうでも良いのです。自分達のプロジェクトが成功しさえすれば良いのです。そのためには、これらの方法論は参考になることは間違いありませんが、決してその通り実践しようなどと考えてはいけません。そのようなことをすると、考えることを止め、型に嵌っているかどうかに気が向いてしまい、プロジェクトを失敗に導きます。

 プロジェクトを成功させる秘訣はプロジェクトリーダがプロジェクトの現状をよく把握し、多くの対処法を心得ていて、問題を起こさないよう、コストを最小に抑えるよう、考える能力をもち、プロジェクトメンバが協力して実践することに尽きます。

 そして、企業が同様のシステム開発プロジェクトをいくつも抱えているならば、その企業にとって最も相応しい方法論を構築し、企業内の開発者全員あるいは協力してくれる発注先の企業の開発者とがその方法論を共有して、全体として最高の生産性を追求することが大切です。