とあるスタートアップでCFOをしています。実質PM的なところもあり、今はシステム開発の要件定義の取りまとめをしています。
みんなどんな会社でも「何作ろうか?!」という議論は好きなんですよ。
ただ、「それを下支えする『非機能要件』として何が必要か?」という議論や特にドキュメンテーションは、正直システム開発の中で詰まらないので、あんまり関係者好きじゃありません(T_T)
ただ、特にSIerの方はご存知と思いますが、高負荷になってシステムが止まっちゃう、などの事態は非機能要件定義不足から来るものが多く、めちゃくちゃ大切なんですよね。
とはいえ、どんなシステムでも結構非機能要件は同じようなものでして、今回も特段変わった非機能要件は思いつかず、それでも絶対に包括的に書きたい。どうしたもんか。
ということで、「みんなが嫌がるドキュメンテーション」「考えるのに時間を要する」「MECEに考えるのに骨が折れる」という作業はGPTが得意ですから早速やってもらいました!
結果として、今回は本当に目からウロコ、かつ実質的に本当に助かりました!
もちろん経験者やPM、PdMがちゃんとチェックしなきゃいけませんが、ざっと見たところ、下手な若手が書くより全然網羅的!
これが進化していくと、SIerは要らなくなる!?←これはまた別の機会に。
一点だけ、難点とそれを克服するtipとしまして、
- 字数制限があるので、一度には全部書いてくれない
- 表形式にした際に、複数回コピペすると、うまく表として張り付かない
- それだとドキュメントとして格好が悪いので(特にお客さんに納品する場合)、全部コピペした後、改めてスプレッドシートに貼り付けてきれいな表にすることが出来る
- (下記はWordPressの制限で表として美しくないですが、もちろんスプレッドシートに貼り付ければ体裁は整えられます)
タイトル | 内容 |
インフラ要件 | |
可用性 | システムが継続して稼働し、ダウンタイムが最小限に抑えられる。 |
スケーラビリティ | システムが拡大・縮小に対応でき、成長に適応する。 |
ロードバランシング | システム負荷が均等に分散され、過負荷の状況を回避する。 |
クラウド対応 | システムがクラウドベースで動作し、容易にスケールアップ・ダウンが可能である。 |
デバイス独立性 | デバイスの種類に関係なく、システムが一貫した機能とパフォーマンスを提供する。 |
ネットワーク最適化 | ネットワークの品質が最適化され、システムの応答速度やデータ転送速度が向上する。 |
セッション管理 | セッションが適切に管理され、ユーザーの認証情報が安全に保持される。 |
ハードウェア最適化 | システムがハードウェアリソースを効率的に利用し、パフォーマンスが向上する。 |
パフォーマンス要件 | |
レスポンスタイム | システムの応答速度が速く、ユーザーがストレスなく利用できる。 |
処理速度 | システムが高速で効率的に動作し、ユーザーのタスクを迅速に処理する。 |
キャッシュ最適化 | キャッシュが適切に管理され、システムのパフォーマンスが向上する。 |
エネルギー効率 | システムがエネルギー効率に優れ、消費電力を最小限に抑える。 |
セキュリティ要件 | |
機密性 | システム内のデータが適切に保護され、不正なアクセスから守られる。 |
完全性 | データが正確であり、不正な変更や破損から保護される。 |
可用性 | システムおよびデータへのアクセスが必要なときに利用できる。 |
認証・認可 | システムが適切な認証および認可機能を持っている。 |
セキュリティ監査 | システムのセキュリティが定期的に監査され、脆弱性が検出される。 |
データ暗号化 | システムがデータの暗号化に対応し、データの安全性が保たれる。 |
ネットワークセキュリティ | ネットワーク上でのデータのやり取りが安全に行われ、外部の脅威から保護される。 |
コンプライアンス | システムが関連法規や業界基準に準拠し、違反のリスクが最小限に抑えられる。 |
ユーザビリティ要件 | |
ユーザインターフェース | システムのUIが使いやすく、直感的である。 |
アクセシビリティ | システムが様々なユーザーに対応し、障害のあるユーザーも利用できる。 |
カスタマイズ性 | システムが個々のユーザーのニーズに合わせてカスタマイズできる。 |
マルチデバイス対応 | システムが複数のデバイスやプラットフォームに対応し、一貫したユーザ体験を提供する。 |
テスト要件 | |
テスト容易性 | システムがテストしやすく、問題の特定と修正が迅速に行える。 |
自動テスト | システムが自動テストに対応し、継続的な品質保証が行われる。 |
テストカバレッジ | システムのテストカバレッジが高く、バグや問題が最小限に抑えられる。 |
レグレッションテスト | システムが変更点に対する影響を検証するためのレグレッションテストに対応する。 |
パフォーマンステスト | システムがパフォーマンステストに対応し、性能が継続的に監視される。 |
機能拡張・連携要件要件 | |
拡張性 | システムが柔軟に拡張できる構造であり、新機能の追加が容易である。 |
モジュール性 | システムがモジュール化されており、部品を追加・変更・削除が容易である。 |
API対応 | システムがAPIを通じて他システムと連携し、データのやり取りが容易である。 |
クロスプラットフォーム対応 | システムが複数のプラットフォーム間で連携・共有ができる。 |
インタープリタビリティ | システムが異なる●●●●●●●●間での相互運用性をサポートする。 |
データ管理要件 | |
データバックアップ | システム内のデータが定期的にバックアップされ、復旧が容易である。 |
データ整合性 | システム内のデータが一貫性を保ち、矛盾が発生しない。 |
データアーキテクチャ | システム内のデータ構造が効率的であり、データ管理や処理が容易である。 |
メタデータ管理 | システム内のメタデータが適切に管理され、データ分析や検索の |
メタデータ管理 | システム内のメタデータが適切に管理され、データ分析や検索の効率が向上する。 |
データマイグレーション | システム内のデータが簡単に移行でき、新旧システム間のデータ整合性が保たれる。 |
運用・保守要件 | |
モニタリング | システムの動作状況が監視され、問題が発生した場合に迅速に対処できる。 |
ロギング | システムが適切なログを生成し、問題の特定や解決に役立つ情報が提供される。 |
アップデート容易性 | システムが容易にアップデートでき、新機能やセキュリティパッチの適用がスムーズに行える。 |
ドキュメンテーション | システムのドキュメンテーションが充実しており、運用・保守が容易に行える。 |
サポート | システムのサポートが整っており、問題発生時に迅速に対応が可能である。 |
トレーニング | システムの利用者や運用担当者に対するトレーニングが提供され、効果的な利用が可能である。 |