受託開発成果物の品質向上への取り組みについて

インタークエストの主力事業の一つであるWeb開発事業において、受託開発成果物の品質向上は大きな課題となります。
特に昨今のインターネットを取り巻く環境において、開発アプリケーションのセキュリティ脆弱性による個人情報流出事故が相次いでおり、堅牢性が担保されたシステム成果物の納入は開発ベンダーにとって重要な責務となっています。
インタークエストでは、19年の受託開発業務の経験から策定した品質管理のPDCAサイクルによる継続的な施策の検討と実施を繰り返すことで、お客様から受託するシステムの品質向上に取り組んでおります。
本サイトでは、弊社が取り組む品質向上の施策を記載していますが、その具体的な内容を認識いただくことで、弊社受託開発事業におけるシステム成果物の品質をご理解いただく一助になれば幸いです。
2014年3月10日
株式会社インタークエスト

開発業務の品質管理におけるPDCAサイクル

開発業務の品質管理におけるPDCAサイクル Plan(計画) Do(実行) Act(評価) Check(改善)

Plan(計画)

1.品質管理ガイドライン作成

システム開発において一定の品質水準を維持するためには、組織的な準備や計画、品質管理の方法や品質の測定・分析、品質管理の見直しなどが必要になります。また、目的を開発者全員が正しく理解していないと、品質報告そのものが目的化し、形骸化しがちです。
品質管理に関して継続的な活動を行い、個々の案件から情報や教訓を吸い上げ、蓄積管理し、新しい案件に生かすために指針とする
品質管理ガイドラインを作成します。

2.開発標準の作成

開発成果物の品質水準維持のため、弊社開発業務に関する様々な作業おいて各々基準や手順を設け、遵守します。
・コーディング標準
・開発ワークフロー
・セキュア・コーディング標準
・Webアプリケーション設計・開発セキュリティ標準
・サーバー構築標準
・データベースセキュリティ標準
・OSセキュリティ標準
・セキュアスマートフォンアプリケーション設計・開発標準

3.品質管理計画

品質管理ガイドラインに基づき、品質管理に関する活動の計画を立て、実行します。
計画では、品質管理に関する教育や点検、見直しに関して実施時期を明確にするとともに、必要な教育内容や点検の方法、ガイドラインや社内標準の見直しの方法など、具体的な内容についても決定します。
また、品質管理を行うために必要な人員や予算などの資源の確保や責任や権限などの社内の体制や環境の整備も行います。

Do (実行)

1.品質管理に関する教育

Do (実行)イメージ

品質水準を確保するためには、そのためのガイドラインや標準プロセスなどを準備するだけでは不十分であり、運用するためには開発者全員が品質管理の考え方を理解し実行することが必要です。
そのため、品質管理計画に従って、開発者に品質管理の重要性や品質管理の体制や役割、責任、品質管理の方法について目的意識をもって品質管理に取り組めるように教育します。また、品質が属人的にならないように標準化した開発手法やテストについても教育します。
教育実施後には、理解度を測るためにテストを実施し、開発者全員が一定水準以上の理解を得るように努めます。

2.社内標準に則った設計・開発・テスト

ガイドラインおよび社内標準に則った設計や開発、テストを実施し、一定の品質を維持できるようにします。
ガイドラインや社内標準はまずはパイロットプロジェクトに適用し、目標や適用範囲を定め、その結果に応じて適用範囲を広げて
いきます。
また、個別の案件ごとの状況を考慮し、最適化して開発を実行します。

3.ライブラリ・モジュールの管理

開発作業においては、弊社がこれまでの業務の中で開発・改善してきたライブラリやモジュールを利用することで一定の品質水準が担保できるように、ライブラリやモジュールをバージョン管理システムを使って常に最新版を共有し、随時必要に応じて機能追加や不具合の修正、セキュリティ対策等のバージョンアップを行っていきます。
外部のライブラリやモジュールについても、開発業務での利用に適しているかを検討し、利用が認められたものについてバージョン管理システムを使って共有して利用します。

Check (評価)

1.ガイドライン等の運用状況チェック

Check (評価)イメージ

品質管理に関する活動全般について定期的にミーティングを行い、品質管理計画の実施状況やガイドライン等の運用状況のチェックを行います。
また、個別の案件に関しても案件完了後には担当者を集めてレビューを実施し、開発作業においてガイドラインや社内標準が適切に運用されていたかをチェックし、問題があった場合は経緯や原因を分析し、施策の内容や運用の見直しの必要性も検討し、定期ミーティングで報告し、共有します。

2.設計・開発・テストのレビュー

各工程での成果物について社内標準や要件に照らし合わせてレビューを実施します。
設計工程では、設計書の誤りや各機能の完成度や整合性、全体の整合性の確認をします。
開発工程では、開発作業がコーディング標準などの社内標準のそって開発されているかを確認します。
テスト工程では、テスト項目の妥当性や網羅性の確認をします。

3.ツール等を使った品質チェック

静的コード解析ツールや自動テストツール、カバレッジツール、ウェブアプリケーションセキュリティスキャナ等を使ってコーディングの
社内標準との適合確認やデグレード、テストの網羅性、脆弱性対策等について機械的にチェックを行います。
また、社内標準から外れた成果物とならないよう、継続的インテグレーションツールを使って日常的に自動でチェックを行うようにします。
また、必要に応じて外部セキュリティ診断会社に依頼し、成果物にセキュリティ上の問題がないかチェックを行います。

Act (改善)

1.ガイドライン等の運用状況チェック

Act (改善)イメージ

品質管理の運用の際に不都合が見つかった場合には、その経緯や原因の特定、対策の検討を行い、解消できるように対応します。
人の相性やスキル不足などの体制の見直しやガイドラインの説明不足や理解不足などの教育の見直しも行います。
今後の案件で効率化が図れるよう、ガイドラインや社内標準の見直しも行い、必要に応じて改訂します。
見直し実施後には、見直しによる対策の効果も確認します。
また、時間をかけて対応が必要な場合は、改善計画を作成します。

2.インシデントの共有

開発作業や保守作業など、開発業務で発生した品質に関するインシデントについて一括管理し、社内で情報共有し、検討・分析結果をフィードバックすることで再発防止を心がけています。
インシデントは、システムの障害のみならず、案件進行上の問題や開発手法の問題など、レビューや開発時に見つかったものについても対象とします。

3.新たな知識・情報に基づく施策の検証

日々、最新の技術動向やセキュリティ動向、脆弱性情報について情報を収集します。それらの情報を元に、ガイドラインや社内標準などの施策が十分かどうかを検証します。
また、ライブラリ等のアップデート情報についても最新版を利用できるように定期的に確認し、必要に応じて社内で管理しているライブラリ・モジュール群をアップデートします。