業務品質とは│ソフトウェア開発における業務品質(プロセス品質)の重要性

私たちの日常は、意識しないと気づかないレベルでソフトウェアがビジネスや生活に浸透しています。
毎日スマートフォンを手放すことはないですし、買い物に使用する自動車は見た目からは想像できないくらいほとんどの機能がソフトウェアで制御されています。

つまり、私たちの日常は日々何らかのかたちでソフトウェアに関わりながら、ソフトウェアの品質に左右されるような生活を送っています。
このように現代においては、ソフトウェアは必須であり、ソフトウェア開発に携わる私たちはよりソフトウェア品質を学ぶ必要性があります。

今回の記事では、ソフトウェア開発で高品質を確保する方法として、業務品質(プロセス品質)という側面から紐解いていきたいと思います。
どうぞ最後までお付き合いください。

ソフトウェアとは

まずはソフトウェアとは何か?から確認していきたいと思います。

ソフトウェアとは物理的なハードウェアと対比され、コンピュータや電子機器に搭載されたプログラムのことという説明が一般的です。
ソフトウェア開発ではそのプログラムを正しくコーディングするために様々なことを行う訳ですが、ソフトウェアを定義する際に以下のものも含めて考えると、ソフトウェアと品質との関係性がよりわかりやすくなります。

  • ドキュメント・・・開発計画書、設計仕様書、テスト仕様書、各説明書
  • 手順と技法・・・開発の概念と手順(作成方法とツール)

ソフトウェア品質とは

次にソフトウェア品質について確認していきます。
ソフトウェア品質については規格や文献などに多くの定義がされていますが、一例を取り挙げてみます。

  • 有用性(機能、心理特性など)、信頼性、安全性を示す
  • 製品の有用性を定める性質、または製品の使用目的を果たすために必要な性質
  • ある“もの”の明示された又は暗黙のニーズを満たす能力に関する特性の全体
  • 製品又はサービスが使用目的を満たしているかどうかを決定するための評価の対象となる固有の性質・性能の全体

文章が固いせいもあり、言わんとしていることは何となくわかるようなわからないような感じになりますが、これらのソフトウェア品質の定義を紐解くと、詰まるところ使用時の必要性に関わる性質であることが共通項として浮かび上がってきます。

つまり、顧客(使用者)の満足度合いがソフトウェア品質と直結しているということです。

ソフトウェア品質の特徴

次にソフトウェア品質の特徴を確認していきます。ソフトウェア品質の特徴は、以下の4点にまとめることができます。
「目に見えない」ということがソフトウェアの最大の特徴ですが、他にもいろいろあります。

  • 特徴1:論理の集合である
    ・論理の正確な設計が困難
    ・論理の信頼性の高いテストが困難
  • 特徴2:目に見えない(実態が掴みにくい)
    ・品質管理が困難
    ・工程管理が困難
  • 特徴3:人への依存度が高い
    ・個人差が大きい
    ・多人数での共同開発
  • 特徴4:自由度が高い
    ・仕様が決まらなくても先に進めることができる
    ・ソースコードの変更が容易にできる

ソフトウェア品質管理の必要性

これまでソフトウェアやソフトウェア品質について基礎となる部分を確認してきましたが、この章ではソフトウェア品質はなぜ管理する必要があるのか?ということを説明したいと思います。

『ソフトウェア品質とは』で、ソフトウェア品質は顧客の満足度合いに直結していることを確認しましたが、言うまでもなく企業が存続するためには顧客に支持されるソフトウェアを開発する必要があります。
開発したソフトウェアへの顧客の満足度合いがその企業への支持となり、次のソフトウェア開発へとつながります。
このように、品質の良いソフトウェアを提供するためのマネジメントがソフトウェア品質管理と言えます。

もし開発したソフトウェアがリリースされてから問題を起こした場合、金銭的な損失だけでなく企業の信頼にも大きな損害をもたらす恐れがあり、
企業の存続自体も危ぶまれます。
このようなことを未然に防ぐためにも、ソフトウェア品質管理は必ず実施すべきことなのです。

プロセス品質とプロダクト品質

ソフトウェア品質管理においては、ソフトウェア品質を的確に把握するためプロセス品質とプロダクト品質の両面から分析することが重要です。

プロセス品質(業務品質)

上図を見ながら説明していきたいと思います。

プロセス品質は、設計や開発などソフトウェア開発の各工程における業務のやり方や手順の品質を指し、開発の各工程で実施すべき業務を確実に実施することで品質を作り込む術のことです。

要するに、プロセス品質は効率よく正確なソフトウェアを作れるようにする土台という位置づけであり、ソフトウェア開発の各工程での業務実施状況の十分性を評価します。

プロダクト品質(成果物品質)

一方プロダクト品質は、ソフトウェアの内部品質に着目し仕様書や設計書・ソースコード等、各工程における成果物の品質を指します。
プロダクト品質ではソフトウェア開発の各工程の成果物の出来栄えを評価します。
(最終成果物である製品やサービスについては、外部品質の検証・妥当性確認を行うことでソフトウェア品質を評価します)

ソフトウェア開発におけるプロセス品質(業務品質)向上の方法

ここからはソフトウェア開発におけるプロセス品質(業務品質)を向上する方法について順を追って説明していきます。

可視化

まずは、プロセス品質における問題の可視化を検討します。
そのためにはソフトウェア開発プロセスを業務フローとして書き起こし、プロセス全体の流れや問題点・課題点などを目で見てわかるようにします。

標準化

可視化により明確になったプロセス品質の問題や課題に対して改善を施しつつソフトウェア開発プロセスを標準化します。
もとよりプロセスには人によるバラツキがつきものですが、標準化したソフトウェア開発プロセスを定着化させることにより、誰でも同じ手順で同じように業務が行うことが可能となり、属人化の解消にもつながります。

なお、標準化については一回実施して終わりではなく、標準化したソフトウェア開発プロセスは定期的にモニタリングを行い、状況や環境の変化に合わせて常に最適化(更新)することが重要です。

定量化

標準化までが進むと次は定量化を目指します。各工程でのプロセスやプロセスのアウトプット(成果物)に対して、品質に影響するデータを収集して数値化し、測定・分析を行います。

ソフトウェア開発プロセスの標準化により、誰でも等しく開発業務をこなすことが可能となりますが、「同じ結果につながる業務内容であったか」や、「同じ結果であったか」についてはまた別問題となるため、品質目標を設定し品質を分析・評価できるようにすることが定量化の目的となります。

これからのソフトウェア開発ではプロセス品質の重要性が増す

本記事ではソフトウェア開発におけるプロセス品質(業務品質)について見てきましたが、いかがでしたか?
プロセス品質(業務品質)の重要性についてはご理解頂けましたでしょうか?

それでは、最後にプロセスとプロダクトに関係性を確認して終わりにしたいと思います。
プロセスとプロダクトは、以下のようにループするような形で成り立ちます。

  • よいプロダクト(成果物)は、よいプロセスから生まれる
  • 結果を制御するには、プロセスを制御するしかない
  • プロセスをよくしなければ、結果はよくならない

品質は本来、プロセスで作り込むものであるため、そのプロセスの可視化・標準化・定量化の相乗効果が結果的に高品質なソフトウェア開発を可能にします。

これは開発手法がウォーターフォールであろうがアジャイルであろうが、重要性に変わりはありません。
結論、プロセス品質(=業務品質)の可視化および標準化は、ソフトウェア開発における品質改善の糸口であり、高品質実現に向けての最善策となります。

さいごに

弊社ではソフトウェア開発のプロセス標準化や定着化のご支援が可能です。また、定量化については、クオリティゲートのご活用をおすすめしております。

詳しくは弊社コーポレートサイトのサービスページプロダクトページにてご確認ください。
また、ご質問や無料相談会も常時受け付けておりますので、お気軽にお問い合わせください。

Twitterでフォローしよう

おすすめの記事