イオンスマートテクノロジー CTO室QA の show_chan です。
この記事は、AEON Advent Calendar 2024の8日目です。
はじめに
皆様のプロジェクトにおいて非機能要件を定義できてますか?
非機能要件といえば、やはりIPA非機能要件グレード2018ですよね。
これには可用性、機能・拡張性、運用・保守性、移行性、セキュリティ、システム環境・エコロジーの項目でチェックすべき、機能以外の側面を定義する要素が記載されています。
イオンスマートテクノロジーではこの非機能要件グレードを参考に、非機能レビュー観点を再編したのでその作成方針をご紹介します。
非機能要求グレードとは
「非機能要求グレード」は、「非機能要求」についてのユーザと開発者との認識の行き違いや、互いの意図とは異なる理解を防止することを目的とし、非機能要求項目を網羅的にリストアップして分類するとともに、それぞれの要求レベルを段階的に示したものです。重要な項目から順に要求レベルを設定しながら、両者で非機能要求の確認を行うことができるツール群です。
なぜ?
さすがIPA!。活用シートの内容は非機能要件の完全版です。
さて、これを既に安定稼働しているシステムやサービスに改めてチェックを行いインフラ構成から見直すか?と言われるとプロダクトオーナー、エンジニア、ベンダーのみならず、総務やその他いろんな部署を巻き込んで埋めていくこととになります。ちょっと大変。
内製化開発というお題を持つ弊社で非機能要件としてこの活用シートを全てのプロダクトに導入していきたいと思っています。が、まず要件定義を行うタイミングで機能要件と対になるチェックとして利用できるものを作成することにしました。
必須の非機能要求6項目
非機能要求グレードで分類される6つの項目は非機能の根幹です、ここを外してしまうと何をやってるんだっけ?という感じになってしまいますので、改めてこれらの項目について何を必要とするのか?を確認しておきます。
可用性
システムを継続利用するため稼働時間や停止運用の要件。IT-BCPも含まれています。大部分をAzureで運用しており機器関連に関しては不要にできます。
性能・拡張性
システムの処理性能や拡張の要件。構築するシステムの利用ユーザー数、アクセス負荷を定義します。通常時、業務量増大時などでも確認が必要です。イオンではお客様感謝デーという業務量増大時があるため非常にわかりやすいです。
運用・保守性
システムの運用・保守に関する要件です。システムの監視方法やバックアップ方法、問題発生時の体制などを決めておきます。これらは既存で存在しているものを利用します。
移行性
現行システムからの移行に関する要件です。新システムへ移行が直近にない場合は優先度としては高くないです。
セキュリティ
システムのセキュリティ確保について定義します。これらは社内規定、ルールが存在してるためにそれらの洗い出しが必要となります。また規定などがないものは独自に確認を行うようにします。
環境・エコロジー
システムを設置する環境・エコロジーに関する要件を定義します。環境負荷を低減する構成や、電気設備・規格の適合性について定義します。ここは会社方針だったり各種法令順守に関連するため、専門の方々に入っていただく必要があります。
社内の既存ルール洗い出し
非機能要求6項目をチェックすると共に社内規定や運用状況を確認し、既に存在しているもので要件に合っているのかの確認を行います。また作成するプロダクトの方向性が、会社が掲げる方針やビジョンと異なっていないか。という事もチェック項目に追加します。
非機能レビュー観点シート
再構成した結果約100項目のレビュー観点シートにまとめました。
これは要件定義実施時に非機能要件の確認としてプロジェクト内でプロダクトオーナーなどとレビュー観点として活用を推進していくものとなります。
全ては記載できませんが分類と観点の一部を抜粋してご紹介します。
分類 | 観点 | 補足 |
---|---|---|
機能適合性 | システム機能の正当性確認 | |
性能効率性 | 対向先、連携システムのキャパシティーの考慮 | サーキットブレーカー制限 |
セキュリティー | 関連部署、関連法令の確認の実施 | |
セキュリティー | 不正アクセスやアタックへの対策 | WAF設定、DDoS対策、脆弱性診断実施 |
使用性 | 想定ユーザーに適した性能・機能であるかの確認 | |
保守・移植性 | 使用するOSSやライブラリの確認 | アーキテクチャレビュー実施 |
移行 | サービス停止、閉塞を確認 | 影響するステークホルダーへの通知 |
リリース | 強制アップデートの有無 | |
サポート | サポートOS、動作保障環境 | |
分析 | SEO要件、分析連携情報の確認 | |
制約 | ビジネス制約、業界ルールの準拠 | |
満足性 | 要求元の目的達成、費用対効果 | ステークホルダーとの認識確認 |
CSR | フェアトレード、ダイバーシティ |
おわりに
改めて詳細に確認するほど非機能要件グレードが非常によくできているな。と思いました。
これからレビュー観点の見直しなどに向けて、非機能要件項目の内容の理解を深め、機能品質とともに非機能の品質を向上させていきたいと思います!