品質とは

品質とは、顧客の満足度に対する評価だと思います。システム開発においては、依頼されたシステムに対する顧客満足度が大半をしめると思われます。
システム開発としての品質は、大きく3つのカテゴリーに分けることができます(サービスの品質はここでは省いております。)、プロセスの品質、商品の品質、そして管理の品質です。

プロセスの品質

プロセスの品質とは、曖昧な状態を、どれくらいわかりやすく、関係者で共有できる状態に近づけたかで、品質を評価できます。

要求仕様の品質

要求仕様の品質は、顧客からの要求を聞きだし、どれだけ共有できる状態に持ってきているかを表します。顧客には色々なタイプの方が存在し、システムに詳しい方から、パソコンに触ったことがない方までさまざまです。聞き出し、提案などの色々な手法を使って、意識を統一し、品質を上げていくことができます。想定外に納期が延びる原因のほとんどは、要求の聞き出しのまずさにあるのでしょう。

システム仕様の品質

システム仕様の品質は、顧客からの要求をシステムに置き換え、どれだけ共有されているかを表します。この品質が悪いと、継ぎはぎのようなシステムになってしまいます。

商品の品質

商品の品質とは、私達開発会社においては、システム自身の顧客評価です。その中には、保守性、安定性も含まれます。

アーキテクトの品質

アーキテクトの品質とは、開発での共有化、柔軟性の高さ示します。この部分のレベルが低いと、車輪開発的な効率の悪いシステム、保守性の低いシステムになってしまいます。

コーディングの品質

コーディングの品質とは、開発者のコーディング技術の高さ、低さの現われです。この部分がまずいと、保守性が低く、イレギュラーな処理に対しての不具合が増えるシステムになってしまいます。

テストの品質

テストの品質とは、アウトプットされる結果のチェックによる、不具合を見つける力の評価です。テストをおざなりにすると、不具合の多いシステムになってしまいます。また、補足として、テストという行為自体は品質を上げるものではなく、見つけるだけの行為です。

管理の品質

管理の品質とは、プロジェクトを管理し、効率化を図る度合いを見る品質です。

効率管理の品質

効率管理の品質とはコミュニケーションの最適化、情報を手に入れるための効率化、開発環境の整備状態など、潤滑油的な度合いを表します。品質が悪いと、待ちが多々発生したり、無駄な時間を費やしたりなどの問題が目立つようになります。

リソース管理の品質

リソース管理の品質とは、最適な人材の割り当が行われているか、いないかの品質です。各担当のレベルが低いと、品質の悪さ自体に気づくことができません。また、各担当の負荷、調子をみて、作業を分散できなければ、長期的な品質を維持するのは難しいでしょう。

品質を上げるということ

残念ながら、品質を上げるために、品質だけを考慮することはできません。財務とスケジュールという邪魔な存在が必ずいます。要求を共有するためだけに、90%の財政は使えません。要求を共有するのに、リリースの前日までかけることはできません。逆に、要求を共有する工数が0.0001%にして、まったく違うものを開発しては、身もふたも開けれません。つまり、品質を上げるということは、各品質を上げるためだけではなく、うまくバランスを取るための戦略を持たなければならないということになります。また、品質の悪さは上の階層が下に影響します。その影響力は高く、右斜め直線上がりではなく、右上がり曲線であがっていきます。

要求仕様 > システム仕様 > アーキテクト > コーディングという順になります。効率管理、リソース、テストは、別のベクトルに存在します。