システム開発を検討している関係者の方は、「QCD」という言葉を耳にしたことがある方も多いのではないでしょうか。
QCDは、システム開発に限らず、ものづくりをする際に押さえておくべき重要なポイントです。
「システム開発を成功させるにはどうすれば良いか」といった課題をお持ちの方でも、大抵QCDを達成するための目標が明確に立てられていないことがままあります。今回はそのような方々にお役に立てるような情報となっています。
この記事では、QCDとは何なのか、システム開発におけるQCDを達成するためのコツ、QCDを管理するためのポイントについてわかりやすく解説していきます。
QCDとは
システム開発において、欠かすことのできないのが、「QCD」です。
Qとは「Quality(品質)」を、Cとは「Cost(コスト)」を、Dとは「Delivery(納期)」を指します。あらゆるプロジェクトには人、モノ、金、情報といった資源があり、これらは優先度を考えて作業を進めることが必要です。
システム開発におけるQCDは、以下3点が重要です。
【システム開発におけるQCD】
・Quality(品質)
➤自社の課題解決に役立つシステム
・Cost(予算)
➤できるだけ低価格でパフォーマンスの良いものを提供
・Delivery(納期)
➤スケジュール通りの稼働
システム開発は、発注者へのヒアリングをベースとした要求定義から始まり、要件定義、設計、実装、テスト、リリースというプロセスを踏むのが一般的です。QCDを達成するには、設計のときだけQCDを共有しておけばよいとか、リリース前にQCDをチェックすれば問題ないというわけではありません。
システム開発を進める際は、発注者とシステム開発者がQCDを意識してプロジェクトを進めることが重要です。
発注者側が開発者にシステム開発をすべて任せるわけではなく、常に途中段階のプロセスで、QCDを達成するという意識が大事になります。
お互いにその意識を持って進めていく上でのポイントをお伝えします。
Quality(品質)
Q(品質)の満足度向上には、「画面数」「機能数」「障害時の動作」など細部まで基準を整え、明確にすることが大切です。
例えば、「画面描画にかかる時間は2秒です」というように、設計の段階で発注者側と合意が出来ていれば、開発後に品質面で認識の齟齬が発生することはありません。
Cost(予算)
C(コスト)の満足度向上には、開発範囲(スコープ)を明確にしておくことが大切です。
その他の要望や、テスト時に発生した課題をどこまで対応するかなども具体的にしておく等、あらかじめ開発範囲を決めておき、コストに関してのクレームを減らしましょう。
Delivery(納期)
D(納期)の満足度向上には、スケジュールを詳細に分けておくことが大切です。
「A機能は○月○日からリリース」「B画面は○月○日から表示可能」など、誰が見ても分かるようにするとともに、可能な限り細かく設定しましょう。
またスケジュールを組む際、詳細まで決めておき前倒しで進めていくようなやり方もオススメです。
システム開発におけるQCDの重要ポイント
QCDの何を重視すべきかという問題は、常に付きまとう重要なポイントと思いますが、要はバランスよく管理するということに尽きます。
品質が上がれば、それだけコストが発生します。コストを抑えれば、品質が下がります。スピーディーな納期を求めれば、品質が下がる可能性も高くなります。
ここで重要となってくるのが、QCDにおける優先順位です。一般的にはシステムを開発する前に品質・コスト・納期の優先順位を付けますが、最も優先すべきものは「品質」です。なぜなら、品質が低ければ、もともと目指している目的を達成出来ないかもしれないというリスクを孕むからです。
QCDの優先順位は、実際にシステム開発に活かしてこそ価値が生まれるのです。
それでは、QCDを実際に管理するための具体的なポイントについて解説していきます。
Quality(品質)を管理するための3つのポイント
QCDの中で、最も重要視されるのは品質です。
・レビューを実施する ・不具合を洗い出すためにテスト実施する ・上流工程のリスクを把握しておく |
レビューを実施する
1つ目のポイントは、「レビューを実施」することです。
品質が現時点でどのくらい担保されているか、第三者としての目線から定期的にレビューを実施する必要があります。
そして、レビューを実施する上で大切なのが「レビュー頻度」と「誰がレビューするのか」ということです。完成間近になってレビューを実施したとしても、何か問題が発生した際、納期に間に合わない可能性もでてきます。納期も視野に入れながら、定期的にレビューを実施しましょう。
誰がレビューするのかについては、実際にサービスを利用する発注者側の方にレビューしてもらうのが最も望ましい形です。システム開発者やその他の関係者がレビューを行なっても良いのですが、レビューを実施する目的は、発注者のニーズを満たすという一択です。
不具合を洗い出すためにテスト実施する
2つ目は「不具合を洗い出すためにテスト実施する」ことです。
テストに関しては1つでも多く不具合が検出できるように、網羅性の高いテストを効率的に行うことが重要となります。
また、検出した不具合は不具合管理表などにまとめて管理することも重要なことです。なぜなら、不具合管理として記録した内容は、そのシステム開発のみならず次のシステム開発時の品質向上にも役立てることができるからです。
なぜその不具合が発生したのかという原因と対策を記録しておけば、次からは同じようなミスが減少します。また、メンバーの入れ替えなどが発生した場合においても、知識共有としてその情報を活かすことが可能となります。
上流工程のリスクを把握しておく
3つ目のポイントは「上流工程のリスクを把握しておく」です。
上流工程とはシステムを開発するための前段階として、具体的には要求・要件定義や基本設計が該当します。
ここで重要なのは、開発段階で品質を低下させる可能性のあるリスクを明確にすることです。あらかじめリスクを把握することで対策を立てることが可能となります。
Cost(コスト)を管理するための3つのポイント
品質を担保しなければならないとはいえ、コストを管理しなければ、無駄な費用が発生してしまいます。
・事前に予算を設定する ・見積りを正確に行う ・コストコントロールを行う |
事前に予算を設定する
予算というのは、使用可能な金額の上限額を決めることです。
システム開発計画から必要なコストを算出し、予算を抑えられるのか、足りないのか比較する際、具体的な金額が必要となります。
予算が足りない場合は、機能に優先順位をつけて、縮小を図るか、予算を増やすことを検討しなければなりません。
それとは反対に予算が余る場合は、他に拡張できる機能はないか、または余った予算を他に回すなど検討事項が増えます。
見積りを正確に行う
2つ目のポイントは「見積りを正確に行う」です。見積りとは、事前に発生する可能性があるコストを予測して算出することです。
見積りはあくまで概算なので、実際にかかる費用と誤差が発生する可能性があります。
仮に開発が間に合わなかった場合、必然的に納期も間に合わなくなります。
そうなった場合、開発期間を延長せざるを得ないのですが、人件費によるコストも加算されることになります。
上記のようなケースを避けるためにも、正確な見積りを行いましょう。
コストコントロールを行う
さいごは「コストコントロールを行う」です。コストコントロールとは、予算に対してコストがオーバーしないようにコストを管理することで、システムの開発段階で定期的に行う必要があります。
開発中に想定外のことが起これば早急に対処すると思いますが、定期的にコスト管理を行っていれば、コストが超過しないような対処を検討できるかもしれませんし、もしコストが超過した場合でも即時に把握することができるので、次の対策に活かせます。
Delivery(納期)を管理するための3つのポイント
納期を早めることができれば、コスト削減につながります。
・WBSを実施する ・進捗管理を徹底する ・マイルストーンを明確にする |
WBSを実施する
WBSとは、Work Breakdown Structureの略で、作業工程を細かく分解することを言います。
あらかじめどのような作業が発生するのかを細かに把握することで、開発時に発生する無駄な時間を削減することができます。
また、さまざまな作業にどのくらい時間がかかっているのかを把握できれば、進行中でも納期に間に合うのか予測でき、進捗把握にも役立ちます。
進捗管理を徹底する
開発者の中には、自分のタスクを少しでも早く進めたいと考え、どんどん前倒しにタスク実行をする方もおられます。しかし、システム開発は1人で行うものではなくチームで行うものですので、部分的に完成していたとしても、他の部分が欠けてしまっていては意味がありません。全体が今どうなっているのかを把握する意味でも、最低1日1回はプロジェクトメンバー内で進捗報告を実施しましょう。
マイルストーンを明確にする
マイルストーンとは、今、プロジェクトがどの地点にいるのかを把握するために役立ちます。
特に長期的なプロジェクトであれば、設定する価値があります。実際にプロジェクトが進んでいるという実感が湧いたり、いつまでに何をやらなければならないのかプロジェクトメンバー内でも明確に把握できます。
システム開発のQCDを達成するためのコツ
システム開発においてQCDを達成することは必須事項です。
品質の悪い製品や、納期に間に合わない製品が欲しいと思う人はいません。また、プロジェクト終了後に「費用が足りませんでした」と言われてもどうしようもありません。システム開発の発注者と受注者(システム開発者)が、プロジェクト完了時にお互い納得のいく結果となるよう、QCDには常に気を配っておく必要があります。次はQCD達成のコツをご紹介します。
QCDを達成するためのコツ1:発注者が積極的に関わる
【QCDとは】でもお伝えしましたが、システム開発者にQCDのすべてを任せていては、システム開発完了時に発注者が求めるものが出来上がる可能性は低くなります。繰り返しになりますが、QCDに関しては発注者も積極的に関わっていきましょう。
QCDを達成するためのコツ2:目的を明確化する
システムの機能が多く、品質の良いシステムをなるべく安く短期間で手に入れたい、と考えるのが発注者側です。
品質を担保するためには、それなりの期間が必要になります。システム開発において、期間が伸びれば費用もその分増えます。QCDの関係性をきちんと理解し、QCDの達成すべき目的を明確にしてシステム開発者と発注者で共有しておくことも、QCDを達成するためにとても重要です。
QCDを達成するためのコツ3:課題を明確にする
QCD満足度にはまず課題を明確にし、解決していくことをおすすめします。
なぜなら、QCDとは3つの項目に分かれていますが、深く関連し合っているため、一項目が伸びていたとしても、他の項目のバランスが取れなくなってしまうからです。良い項目を伸ばすよりも課題から解決した方が効果的なのです。
システム開発をより効率化していきたいのであれば、まず課題の明確化からはじめることを頭にいれておきます。
まとめ
システム開発を行う際は、QCDを達成することが必要不可欠です。プロジェクトを進めていく上で、発注者とシステム開発者が、プロジェクト完了時にお互い納得のいく結果となるよう、QCDには常に気を配ることが達成するカギとなるでしょう。
弊社は株式会社QualityCubeは上流工程を得意とする、品質向上のプロフェッショナル集団です。要求・要件定義の代行など、幅広くサービス展開しております。その他、システム開発に関わるご課題やお悩みごとがございましたら、まずは相談ください。