ソフトウェア開発における3つのプロセス(1)
最近のソフトウェア開発は、ひと時のように長期間にわたる大規模な開発案件は珍しくなり、これに代わり短期間で中小規模の開発案件が主流となっています。開発に従事する技術者も数名となり、なかには他の開発プロジェクトと兼務しながら開発する例もあります。
このように小規模チームが短期間で開発作業を行わなければならない状況は、プロジェクトマネジメントからの視点で見るならば、大規模開発とは違ったマネジメントの難しさがあります。増してや開発するソフトウェアが複雑化し、高い品質を要求されていればなおさらです。
プロジェクトマネジメントの歴史は、1917年米国ヘンリー・ガント氏が考案したガントチャート(バーチャート)から始まり、既に100年近い歴史を持っています。ご存知のように、プロジェクトマネジメントの手法は、1950年以降飛躍的に進み、PERT/CPM手法、アーンドバリューなど考案されました。このなか、PMBOK(Project Management Body of Knowledge)の策定により様々な業界で普及しています。
ソフトウェア開発へのプロジェクトマネジメントの普及状況を見ると、業界全体では必要性が認識され、様々な取り組みをしています。PMI(米国プロジェクトマネジメント協会)が認定しているPMP資格の取得をはじめ、プロジェクトマネージャの育成やPMO(Project Management Office)の設置など、組織上の取り組みが多く見受けられます。しかしながら、冒頭であげたソフトウェア開発の状況の変化のなか、他業界に見られるようなプロジェクトマネジメントへの取り組み効果が得難いのは事実です。
プロジェクトマネジメントでは、次の2つのプロセスによってソフトウェアなどの開発が進められています。
(1)マネジメントプロセス:開発プロジェクトをマネジメントするプロセス
(2)プロダクトプロセス:ソフトウェアを開発するプロセス
ソフトウェア開発プロジェクトにプロジェクトマネジメントを導入しようと、この2つのプロセスを規定し、多くの開発プロジェクトに適用してきました。
なぜ、ソフトウェア開発プロジェクトでは効果が得難いのか、この理由の1つとしてソフトウェア開発にはもう1つのプロセス、ソフトウェア開発の成否を決めるほど重要にも関わらず、あまり意識されなかった「開発チームを動かすプロセス」があることがわかりました。このプロセスを「オペレーションプロセス」を名付けました。
情報化社会の発展により、ソフトウェアに対する要望が高度化・複雑になるにつれ産官学を挙げてソフトウェアをいかに効率的に開発するか、さまざまな取り組みが行われてきました。これからも行われるでしょう。
この連載ではこれらの取り組みとあわせて、新たな3つめのプロセス「オペレーションプロセス」を紹介します。