上記業務についてはこちらにお問い合わせください

ソフトウェア開発技術の向上をどう実現するか?  -プロセスとは何か、どう取組むか


小社は、次のような観点から、ソフトウェア・プロセスの改善と有効性高度化への支援、コンサルティングを進めています。

(前代表社員 伏見 諭)


ソフトウェア・プロセスとは、ソフトウェアを、利用者にとって有効なものとして、開発・統合・運用・改良・組換え等していくための、すなわちソフトウェアを有効活用するための、継続的な諸活動の仕組みを意味しています。


かつては、ソフトウェア・ライフサイクル・プロセスという言葉があり、ソフトウェアそのものの生成・稼働に至る過程で必要な手順・作業に注目しようというとらえ方がありました。もっと遡ると、「ソフトウェアは『コンピュータ・プログラムとしてとにかく作成すれば足りる』というのではなく、目的にあうようにきちんと設計し、また思わぬ欠陥がないようにきちんとテストする必要がある」という、設計ー>実装ー>試験という流れをソフトウェア開発の流れとみるべき、という考え方もありました。これらの考え方は、ソフトウェア・プロセスというコンセプトが成立する過去のステップにおける考え方としては重要ですが、現在では不十分なとらえ方です。もっと確実、積極的ななソフトウェアプロセスの推進が求められています。

どこが過去の考え方と違うのでしょう。また、なぜそのような考え方が重要なのでしょう。

ソフトウェアは現代社会の人々の生活(消費生活と生産活動)を支える重要な要素となっています
  1. ソフトウェアは、それを作る人の立場から見るだけでは困ります
  2. 人々の生活に役立つものを作り、連係させ、改良していくという視点が重視される必要があります
  3. ソフトウェアは、人々の生活の質の向上、安全と安心、快適な社会関係を支えるものである必要があります
しかし、ソフトウェアには不安定な要素がいくつもあります
  1. 形のあるものを大量生産する工場とは、品質・生産性・納期に対する原理が異なり、確実性・高度化動機に不安定性があります
  2. ソフトウェアの品質・生産性・納期のエンジニアリングに十分な敬意が払われていません
  3. しばしば、供給体制の多重な階層構造が見られ、小規模企業では人海戦術的な形相がよく見られます
ソフトウェアは継続的に責任を持って維持・供給(開発、連係、運用、改良、組換え等)される必要があります
  1. 利用されているソフトウェアに供給者として責任を持てる組織・人は誰でしょうか
  2. 利用者が安心できる継続的かつ前進的な供給体制とはどのようなものでしょうか
  3. ソフトウェアを供給する体制は持続可能なものでしょうか
ソフトウェアの維持・供給は人々の意欲、創造性、連帯感を向上させる必要があります
  1. ソフトウェアの供給、それ自体も重要な人間活動です
  2. 供給活動自体に人々の創造的な努力が結実していく必要があります
  3. ソフトウェアは利用者の社会活動を快適に支え、有効にし、確実性を増し、新しい利便性を提供し、創造的な活動の幅を広げる必要があります。
  4. ソフトウェアの供給者と利用者がお互いに相手の活動を理解でき、敬意を払えるような製品とサービスが提供される必要があります
ソフトウェア維持・供給の場では、経験・知識・仕組みの改良・改善・革新を、継続的・系統的に積み重ねていく必要があります
  1. 一過性のプロジェクトの成否に一喜一憂するばかりでなく、仕事の智恵と仕組みの積み重ねが重要です
  2. ソフトウェア開発での組織の重要な責任は、智恵と仕組みの積み重ねを確実なものとすることです
  3. すべての人が主体的にこのような仕事に参加するためには、智恵の共有と、仕組みの明晰化・容易化・柔軟化が必要です
  4. この、整理され、確実なものとされた仕事の仕組みのことをソフトウェア・プロセスと言います
プロセス改善の方法とツール
  1. プロセス改善の推進は、「プロセスという考え方の確立」と、「改善を推進するモティベーション」が大きなファクターとなります
  2. そのためには、効果的な手法での、プロセスのモデル導入やそれに伴うプロセス診断(アセスメント)の実施も手がかりとなる可能性があります(国際標準もあります)
  3. また、IPA/SECで開発されたスピナッチキューブ自律改善メソッドのように、現場の気付きと自律性を重視した改善推進ツールの活用も非常に効果的です
  4. 弊社では、これらのツールを駆使してプロセス改善を推進する上での助言と診断を行います