プロジェクト管理を行う上でリスク管理はかなり重要と考えています。
リスクとは、「顕在化していないが問題に発展する可能性のあること」と思っています。NOW時点では、問題・課題になっていない状況です。
分かりやすいリスクでは、
・メンバーがインフルエンザにかかってしまい、数日間業務ができなくなる
・ドキュメントやソースコードを保存していたストレージが壊れる
・・・などがありますが、今回の投稿で取り扱うものは、設計におけるリスクの想像力について記載します。
私が考える設計におけるリスクの想像力とは、システム化もしくはプログラミングにおいて、小さなミスが大きな障害・問題に発展する可能性を想像することを指します。
たとえば、
・テーブルのレコード削除時に、リレーションしているテーブルの影響。
リレーションしているテーブル処理が不完全な処理をしてしまう人的な不具合混入リスク
・権限に関わる情報を含むIF仕様の影響
ログインユーザーがアクセスできてはいけない情報を指定するパラメータが定義されている(たとえば、API仕様において、”権限”を指定するパラメータや”ユーザー”を指定するパラメータがある。→アクセス者の権限を越えたパラメータやユーザーパラメータに他者を指定できる)
などです。
いずれも、設計の意図通りに作成できれば全く問題はありません。しかし、実際の設計では、不具合や思い違いが発生する可能性があることを考慮しなければいけません。つまり、設計にリスク対策を反映する必要があります。
設計において、不具合が発生する可能性を考慮してリスク対策は絶対に必要です。また、そういった考慮ができているシステムほど、シンプルで障害耐性が高いものとなります。
(本記事にたいする質問やお問合せ・IT改善のご相談はこちら)