PR

なぜ機能だけではシステムは完成しないのか

システム

はじめに

システム開発では、「検索できる」「注文できる」といった機能に目が向きがちです。
もちろん、利用者が目的を達成するために機能は欠かせません。しかし、機能が完成しただけでは、安心して運用できるシステムになったとは言えないのです。

 実際に問題になるのは、運用が始まってからです。障害が発生したり、データが壊れたり、不正なアクセスを受けたり、複数人が同じデータを更新したりと、運用が始まると開発中には見えにくかった問題が少しずつ表面化してきます。

この記事では、なぜ機能だけではシステムは完成しないのか、その理由を設計という視点から解説します。

システムには「機能」と「運用品質」の両方が必要

 システムは「何ができるか」と「安心して使い続けられるか」の二つで成り立っています。前者が機能、後者を支えるのが非機能要件です。
 例えばECサイトなら、商品を検索できることや注文できることは機能です。一方で、障害が発生した際に原因を調査できるログ、データを守るバックアップ、不正利用を防ぐ権限管理、同時更新による不整合を防ぐ排他制御などは、利用者には見えない仕組みです。

利用者が意識することはほとんどありません。しかし、システムを継続して運用するためには欠かせない仕組みです。このような利用者からは見えない品質や運用面の要求は、一般に非機能要件と呼ばれます。本記事では、これらをまとめて「運用品質」と表現します。つまり、機能だけではシステムが完成しない理由は、運用品質もシステムを構成する重要な要素だからです。

非機能要件は「問題が起きたとき」のためにある

非機能要件は、正常に動いている間は、その価値がほとんど見えません。
ログは障害が起きて初めて役に立ちます。バックアップはデータを失って初めて必要になります。排他制御も、複数人が同時に更新して初めて重要性が分かります。

つまり、非機能要件は問題が起きてから追加するものではなく、問題が起きることを前提に準備しておくものです。そのため、リリース直後は問題なく動いていても、運用を続けるほど設計の良し悪しが表れます。

障害の原因を特定できない。データを復旧できない。更新履歴を追跡できない。こうした問題の多くは、機能ではなく、運用品質の設計不足によって発生します。設計では、正常時だけでなく、問題が起きたときの振る舞いまで考える必要があります。

だから設計段階で考える

運用品質は、後から追加できないわけではありません。
しかし、システム全体に関わる仕組みが多いため、後から対応するほど影響範囲は大きくなります。
ログの出力方法が機能ごとに異なれば、障害調査は難しくなります。権限管理の考え方が統一されていなければ、思わぬ抜け漏れが発生します。

設計段階で全体方針を決めておけば、各機能を同じ考え方で実装できます。そのため設計では、「どんな機能を作るか」だけでなく、「安心して運用するために必要な仕組みに抜け漏れはないか」という視点が重要になります。

まとめ

利用者が評価するのは機能です。
しかし、利用者が安心して使い続けられるかどうかは、運用品質によって決まります。機能は価値を提供し、運用品質はその価値を維持します。

システムとは、この両方がそろって初めて完成するものです。
だから設計では、画面や機能だけを見るのではなく、運用が始まった後まで見据えて考える必要があります。機能を実装することはゴールではなく、その機能を安心して使い続けられる状態を実現してこそ、本当のシステム開発と言えるのです。

一覧へ【


コメント

タイトルとURLをコピーしました