当たり前品質及び魅力的品質の実現

当たり前品質及び魅力的品質の実現

この記事では、クロス・コミュニケーションにおける品質の考え方をご紹介しております。


クロスコミュニケーションでは、テスト(検証試験)の工程だけではなく、マネジメントのプロセスやプロダクトそのものを統括して品質と捉えております。

開発・制作・コンサルティングを
無料でお見積もりをいたします。

品質を高めることのメリット

品質を高めることのメリット

システム開発では、システム構築後の保守・運用期間が長くなるにつれ、追加・改修コストやリスクが増える傾向が多く見られます。


計画段階から、品質計画を立て、結果として品質が向上すると中長期でコストを抑えられ、使いやすいシステムになります。


これが弊社の考える「品質」の目的です。

コスト削減を可能にする主な理由

  • シンプルな設計により追加開発や改修が容易になる
  • テスト自動化によりコスト削減とヌケ・モレ・人的ミスを防止
  • レビューを通して双方の認識齟齬を防ぐ
  • 属人化を排除
  • ビルド・デプロイ・リリースを自動化し人為的ミスを減らし、余計なコストを削減

ビジネススピードの向上やリスク削減が不可能な品質が悪いシステムとは

追加・改修にコストがかかる

経年劣化してしまってコストがかかるということが多々あります。減価償却期間がだいたい5年ですが、それを目途にだんだん保守費用や同じような追加開発/改修にコストがかかってしまうようになります。


陳腐化によるリスクの増加

特にフレームワークやプログラミング言語そのものもバージョンが古くなってしまうと陳腐化してしまいます。ライブラリやサービスも陳腐化してしまって、そのセキュリティリスクも投下してしまいます。


リリース時のトラブル

リリース時にライブラリが入っていない等、自動化できないことによって手作業が増えてしまってリリース時にトラブルが発生するということも考えられます。


使いにくい、ユーザー評価が低い

ビジネススピードの向上やリスク削減を可能にする品質が良いシステムとは

追加、改修がしやすくビジネススピードを加速

追加や改修がある程度の年数が経っても同じようなコストで対応でき、かつ改修期間も保守性を高めることによって、縮められることができるのでスピード感を持った開発ができます。


リスクが少ない安定したシステム

セキュリティ的にリスクが少なければ追加投資をしていただいて、開発を進めていくことによってサービスを向上させるということにも繋がります。


スムーズにリリース

リリースは、どうしても時間かかってしまったり、ミスが怖くて勇気が要る作業だったりします。自動化などをしてリリースをスムーズに進めることができます。


魅力的品質が高い(使いやすく、ユーザ評価が高い)

単純にUI/UXのところで使いやすいっていうところにフォーカスできるので開発がしやすくなるというようなメリットがあります。


「品質」を上げるということがテストでバグがない・少ないというだけではなく、使いやすさや、未来の開発のコストを抑えてある等、中長期的に考えると利点があると思っていただけると幸いです。

システム品質にまつわる課題とシステム品質にまつわる3つの改善施策

弊社で調査した結果、以下のようなシステム品質にまつわる課題があがってきました。

  1. 開発を委託したが、不具合が多く品質に不満足な結果になった…
  2. 要求に対して意図していないシステムが出来上がってきて困っている…
  3. 機能は要求どおりだが、システムにあった性能になっていないため、結局使い勝手が悪い…
  4. コミュニケーションがうまくいかず、開発が進んでから認識違いが発覚し、大幅なロスが発生してしまった…
  5. 開発がベンダー任せになっており、開発プロセスや納品物の品質レベルが見えず不安だ…
  6. 事業として新たな領域のアプリ開発を依頼したいが、どうすれば望む品質になる要求を出せるのかがわからない…
  7. 開発側とのレビュー会を開き、事前に品種をチェックしていきたいが、どうレビューするのかの観点・ノウハウがない…
  8. QCDのバランスがわからない…開発側でコントロールしてほしい
  9. 自社開発のシステムを検証・試験しているが、効果的な方法がわからず、余計なコストが増えと困っている…

そこでこれらを解決していくために、弊社では3つの施策を実施しております。

改善施策

プロジェクト計画

円滑なコミュニケーションの徹底

テクノロジーの部分だけではなく「コミュニケーション」は重要になってきます。


そのコミュニケーションがなされているか、コミュニケーションの抜け漏れがないか、 ところもマネジメントプロセスの監査の項目に入れ、チェックするようにしています。

課題に対する対応

例えば冒頭にあった課題のところで思ったものと違うものができてしまったっていうところを防ぐために

  • 一番最初の段階では、XDやプロット等のツールを使用し、ステークスホルダー間で発生する認識齟齬を早期に無くす 。
  • なるべく早い段階α版を提示し、イメージを実際に操作してもらう といったことに取り組んでいます。

出荷判定基準を定め・レビューを実施

品質保証グループが顧客視点でレビューを実施し、フェーズごとに品質に影響を及ぼすリスクを含んでいないかの確認を徹底し、経営者を含めた結果判定をしています。

品質監査

監査とは

見積り段階からキックオフのプロジェクト計画の部分と要件定義、設計、製造、テストそしてリリース納品と一気通貫でマネジメントプロセスがCCの標準に沿って正しく行われているか、監査でチェックしています。


具体的には、170項目程度の監査項目があります。それを担当者が一個一個エビデンスを見て以下を確認します。

  1. マネジメントプロセスが効いているか
  2. 計画がきちんと立てられているか
  3. ドキュメントの粒度は正しく設定されているか
  4. ソースが綺麗にかけているか
  5. サーバのシステム設定ファイルがどうなっているか

その監査でNGになった場合

  • クリティカルでないもの:様子を見たり、状況確認
  • クリティカルなもの:改善をしないといけないため、クオリティコントロールの方が改善に走る

こういった枠組みをとっており、これがマネジメントプロセスの観点です。

品質計画施策例

レビューなどを通しプロセスの教育を実施し、組織として本プロセスの周知・徹底を図っています。


これにより、開発チーム全員が同じ認識のもとでプロジェクトに参画できるため、品質を安定させることができます。


品質向上を効率的に実現するためには、メトリクスを用いた「品質の見える化」をします。


メトリクスを用いた不具合分析を行い、不具合対策や不具合発生の抑制をします。

テスト計画

テスト計画に関しては、単体試験、結合試験、総合試験という一般的なテスト計画に加えて、 負荷試験、性能試験、他端末試験、脆弱性試験、ランダム試験、回帰試験をクロス・コミュニケーションのテスト計画では実施します。


テスト計画の妥当性を確認し、試験で各フェーズでの「品質チェック」を行い、リリース後の不具合抑止に努めています。

お客様視点の早期確認

誰が見ても理解できる内容になっているか、必要なものを必要なだけ作成しているかを お客様視点で品質保証というところが監査に入って、クオリティコントロールしています。


ドキュメントの整合性や仕様の認識齟齬がないかをお客様と早期に確認を取りながら共通認識として開発を進めていきます。

開発資源の一元管理

  • ソースコード管理がうまくいかないとデグレーションが起こってしまったりするのでGitを使ってソースコード管理をしていっていいます。 Gitフローに基づいてクロス・コミュニケーションの標準を定義し、管理することで 複数のメンバーが参加するプロジェクトにおいても、レビューなどが容易に行えソースコードの品質を保てます。
  • クロス・コミュニケーションでは、万が一障害が発生した場合も、開発資源のバックアップを取っているため、迅速にシステムを復旧させることが可能です。
  • Redmine などでチケット管理を行い、必要に応じてお客様とも直接共有させていただき、課題の共有を実現しています。

ソースコード管理と自動化

Git-flow とは開発担当者の役割を明確にし、同時並行で担当する開発を進め、最終的に開発したソースコードを統合する運用ルールです。


また、ソースコードのビルド・デプロイ・リリース時に人為的なミスにより不具合や遅延が発生します。


CI/CD ツールでこれらを自動化することで人為的ミスが減り、品質が安定し、納期・コストが削減できます。

非機能要件

品質とは?品質特性と非機能要件の比較

機能要件だけではなく非機能要件(セキュリティや保守・運用)を考慮しています。


品質特性であるISO のIEC25010と非機能要件で比較してみると セキュリティ、性能効率性、互換性、信頼性、保守性、移植性に関しては非機能要件に入る部分なので品質に大きく密接になっていると考えています。

品質特性 概要 対応する非機能要件
使用性 利用者の使いやすさ
UI / UX
機能適合性 実装された機能がニーズを満たす度合い
セキュリティ 不正にアクセスされることなく、情報やデータが保護される度合い セキュリティ
性能効率性 システムや実行時の性能や資源効率の度合い 性能・拡張性
互換性 他製品やシステムと性能や資源効率の度合い 性能・拡張性
信頼性 必要時に実行することができる度合い 可能性
保守性 効果的、効率的に保守や修正ができる度合い 運用・保守性
移植性 効果的、効率的に他のハードウェアや実行環境に移植できる度合い 移行性

これらを弊社ではどのように実現しているかというと、 品質保証ディビジョンというグループの 監査の機能とクオリティコントロールの機能の二つで品質を保証しています。

インフラ環境

インフラ環境に関してはお客様からも特別な要求がない限りはAWS使うようにしています。

  • インフラ環境の信頼性
  • システムダウン対策
  • システム監視

の事項に取り組み、お客様が安心してシステムを利用するための環境構築に努めています。

データの安全性・保全性

データの安全性・保全性というと比較的当たり前の話になってしまいますが、 セキュリティを担保するために暗号化した個人情報や pci dss クレジットカードの要件に合うような開発を弊社の方でもさせていただいています。


普段の運用から障害時の対応まで考慮した利用時品質の実現に努めています。

セキュリティ対策について

ファイアウォールやIPS( 侵入防止システム) によって、外部の不正アクセスから保護し、データの改ざん・破壊を防止しています。


また、構築についてはテンプレートを用い、属人的な作業・運用ミスを徹底的に排除し、更にリリースのセキュリティチェックを徹底することによりセキュリティの確保に 努めております。

まとめ

上記の通り品質向上に向けた各種取り組みを促進しております。


これまで多くのシステム開発にてえたノウハウをもとに、さらに品質を安定化させ、より多くの方に安心して利用していただけるモノづくりを目指します。

サービス資料をダウンロード お問い合わせはこちら

執筆者

株式会社クロス・コミュニケーション編集部

Cross Communication 株式会社クロス・コミュニケーション編集部

株式会社クロス・コミュニケーションのコンテンツ編集部。
アプリ開発やWeb開発に関するナレッジやIT業界のトレンド情報などをご紹介しています。