連載ALM(1)ソフトウェアの価値を考慮した開発ができているか?

あらゆるものがソフトウェアで成り立っている

 自動車、携帯電話、ゲーム、インターネットなど、私たちの身の回りの多くのものには、必ずといってよいほどソフトウェアが利用されています。一見ソフトウェアとは関係のないようなもの、例えば、食料の調達や製薬の製造といった普段の生活を支えるプロセスにおいても、ソフトウェアは欠かせないツールとなっています。

 企業システムのような情報システムは、その大半がソフトウェアであることは言うまでもないことですが、自動車、携帯電話、家電製品などの機器においても、ソフトウェアの搭載量は増え続けています。

 経済産業省の調査では、機器に組み込まれたソフトウェアの開発コストは、ハードウェア開発なども含む総開発コストの49%を占めるとされています(経済産業省2009年度組み込みソフトウェア産業実態報告書より)。

 また、金融システムや社会基盤システムのようなクリティカルなシステムが動かなくなることは、私たちの生活に直接的に影響を及ぼす重大事です。要するに、私たちの日々の生活はもとより、身体や財産の安全までもがソフトウェアに委ねられているというのが現代社会なのです。

ソフトウェアがビジネス成功のカギを握っている

 ビジネスの成功もソフトウェアがカギを握っています。

 例えば、近年における証券取引の売買スピードを維持するためには、超高速のスーパーコンピュータ技術が不可欠となっています。また、オンライン経由で本やCDを購入するといった昨今のライフスタイルの実現にもeコマース・サイトのシステムや宅配業者の配送システムが大きく寄与しています。さらに、ハイブリッドカーにおいては、そのエコロジーのメカニズムの大半はソフトウェアによって実現されています。すなわち、今日における製品やサービスの競争力は、ソフトウェア活用が上手くいくかどうかにかかっていると言えるのです。

ソフトウェア開発の成功をどう判断しているか

 このように、生活のあらゆる場面で必要不可欠であり、また、ビジネスの成否も握っているのがソフトウェアです。そう考えれば、ソフトウェアの価値は生活を豊かにし、製品やサービスの競争力を高めることが出来たかどうかで判断できるはずです。

 ならば、ソフトウェア開発の現場では、開発が成功したか否かをどのように判断しているのでしょうか。

 一般的に、ソフトウェア開発の成否は品質とコスト、そして納期の3つの観点(QCD)から判断されており、それらを評価するために定量的な尺度が用いられることも少なくありません。

例えば、コストであれば、売上げの何%以内で開発が完了した場合には成功と見なされ、納期ならば期日からの遅れがなければ成功と判断されます。さらに、品質については、大抵の場合、テストやレビューを行っていく中で検出された問題の数で良否が計測されます。テストとレビューの繰り返しによって、当然、問題カ所(つまり、欠陥)の数は減っていきますが、その減り具合を計測していき、一定基準よりも欠陥が少なくなった場合に成功と判断されるわけです。

 ここで、上述したソフトウェアの利用シーンを改めて思い起こしてください。果たして、ソフトウェア開発の成否は、QCDだけで判断されてよいものなのでしょうか。ソフトウェアの価値は、これら3つの指標だけで測れるものなのでしょうか。

品質は誰かにとっての価値

 「品質は誰かにとっての価値」とは、著名なソフトウェア開発コンサルタントであるG.ワインバーグ氏の言葉です。

この言葉が意味するのは、ソフトウェアの価値を判断する「誰か(人)」や、その人が利用する「場面」が、ソフトウェアの品質を決めるということです。ワインバーグ氏はこれを「品質の相対性」と呼んでいます。

 前述したQCDの要件をすべて満たすこと――すなわち、「欠陥がない低コストなソフトウェアを適切な時期に利用可能にする」というのはとても意味あることです。ただし、それに固執しすぎると、本来ねらっていた価値を持たないソフトウェアが出来上がってしまうおそれが高まります。「価値あるソフトウェア」であるかどうかは、価値の背後にある「人や場面」についての考察がないと判断できないはずなのです。

 価値あるソフトウェアを開発できるかどうかを決めるのは、品質の相対性を考慮できるかどうかにかかっています。とりわけ、開発の入り口である「要求を獲得」する際、また出口である「テスト」において、品質の相対性を考慮した判断が必須になると言えるでしょう。

 次回からは、価値あるソフトウェアを開発するためには、どのような考え方があるのか、また現実的にどのように適用していくのかを紹介していく計画です。

※ これは2011年にCIOオンラインにて「【HP特別連載コラム】探求!ビジネス成長とIT革新

 シリーズ3:ビジネス成果をもたらすソフトウェアを開発するために(1)」として連載したものを転載したものです。

カテゴリ: