■プロジェクトマネジメントの応用 2(ソフトウェア開発編)
◆企画性能を先行検証する
@要求仕様を満足できる性能確保が可能か?
要求仕様はあくまでも顧客要望であり,求められている性能確保が判っていて,開発すれば良いだけのものはそれでよいが,性能要求を満たせるかどうか不明な事項が含まれている場合がある。
こうしたケースでは,開発着手してある程度進んでから,やはり性能の出せる見通しが立たないと判って,その時点になってプロジェクトが中断するようでは困る。そこで,先ず,求められている性能が実現できるか否かの見極めを先行して検証しておくと云うのもである。プロセスが確立して,経験豊かな組織では直観的にどこが危ういか見極めできる人がいるが,未熟な組織では,この見極めが困難で誰も出来る人がいないことが多い。そうした場合には,先行して性能要求を満たせるかどうかを確認しておくことが勧められる。
A実現の目途は立っているか?
同じように要求仕様は抽象的なもので,実現可能かどうかの判断に迷うケースがある。或いは,要求仕様の代替仕様として違った方式や尺度で提案されることもある。こうした場合は,気になる部分をやはり先行して確認する方が結果的に期間が短くなったと云うケースが多い。
ソフトウェアの開発プロセス(標準V字型プロセス)は,できるかどうか判らない開発プロセスではなく,期間の長短はあるにしても,できることが明らかな設計プロセスであるため,真の開発(できるかどうか判らない部分)は,企画性能として,早い企画段階で,先行して検証しておくべきである。
そうすることで,開発の手戻りなどのロスを最小限に抑えることが可能になる。
B規模見積が可能なレベルにブレークダウンできているか?
システム仕様の作成,機能仕様の作成に続き,開発規模の見積が計画されているが,この一連の流れが,順次スムーズに行える段階になっているか?まだ,未知な部分で,検証しておくべき項目は無いか?
つまり,プロジェクトでは,計画が立てられることが必須要件で,開発規模が判らないままプロジェクトを進めることはあり得ない。少なくともソフトウェアの機能設計する段階では大凡の規模が,詳細設計する段階では,確実な規模予測ができていなければ,プロジェクトそのものを成功裡に終える保証がされない。そうしたことから,未知な部分はできるだけ早く,明らかになるような取り組みをしておくことが重要である。
C大規模なシステムでは,要素開発モジュールを先行して開発する
大規模なシステム開発では,どこか一部のモジュールが性能仕様を満たさず,全体のプロジェクトが遅れてしまうようなことになると,被害が大きくなってしまう。したがって,未知な部分は極力無くした上で,設計としてのプロジェクトとして進められる。
このように,大規模なソフトウェアの開発プロセスでは,できるかどうかも判らない未知な部分の開発を含んだものは普通一般には組み込まれていない。しからば,そうした開発はどのように行われているかと云うと,それは部分的に分割して規模を小さくして,性能が十分発揮できるかなどの先行開発(呼び名はいろいろあるが)が行われるのが通常である。このような,モジュール化した部分の確認を先行させ,その結果を踏まえて,それらモジュールの組み合わせたものをシステム全体として設計することになる。
このようなサブシステムとしてのモジュール開発を専門に行う部門(ハードウェアで云えば,研究開発部門に相当)を設けている会社もある。そこでは,商品開発と云うより,要素開発的な色彩が濃くなる。
D先行検証が安心感になる
未知な部分が残っていることは,設計者にとっても何となく不安がつきまとう。つまり,未知な部分,或いは不安と感じている部分を先に検証を済ませることがどれだけやりやすいプロセスになるかは設計者なら誰しもが感じることである。先の見えない不安感を持ちながら仕事を進めるのと,確実性が見えたかなりボリュームのある仕事を進めるのでは,明らかに後者の方がやりやすいし,モチベーションも高められる。人の仕事の効率は,こうした不安の無い仕事をする方が確実に上がる。
[Reported by H.Nishimura 2011.04.15]
Copyright (C)2011 Hitoshi Nishimura