GPT, Technology

システム開発の非機能要件定義をGPT-4にやらせたら効率の良さに度肝を抜かれた→SIer要らずに?
非機能要件、考えるのメンドクセー!

とあるスタートアップでCFOをしています。実質PM的なところもあり、今はシステム開発の要件定義の取りまとめをしています。

みんなどんな会社でも「何作ろうか?!」という議論は好きなんですよ。
ただ、「それを下支えする『非機能要件』として何が必要か?」という議論や特にドキュメンテーションは、正直システム開発の中で詰まらないので、あんまり関係者好きじゃありません(T_T)

ただ、特にSIerの方はご存知と思いますが、高負荷になってシステムが止まっちゃう、などの事態は非機能要件定義不足から来るものが多く、めちゃくちゃ大切なんですよね。

とはいえ、どんなシステムでも結構非機能要件は同じようなものでして、今回も特段変わった非機能要件は思いつかず、それでも絶対に包括的に書きたい。どうしたもんか。


ということで、「みんなが嫌がるドキュメンテーション」「考えるのに時間を要する」「MECEに考えるのに骨が折れる」という作業はGPTが得意ですから早速やってもらいました!

結果として、今回は本当に目からウロコ、かつ実質的に本当に助かりました!

もちろん経験者やPM、PdMがちゃんとチェックしなきゃいけませんが、ざっと見たところ、下手な若手が書くより全然網羅的!

これが進化していくと、SIerは要らなくなる!?←これはまた別の機会に。


一点だけ、難点とそれを克服するtipとしまして、

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