「運用」と「保守」の違い
自分はソフトウェア開発者であり、要件定義~総合試験に関わることが多く、よって周囲からは「運用保守」というようにひとまとめで聞こえてきます。ただ、運用が始まってからが本番であり、運用や保守を見越して設計・構築しなければならないはず。しかし、実際のところ「運用」や「保守」が具体的に何なのかを把握できていません。
そこで、システム開発作業でよく聞く「運用」と「保守」という作業について、現場によって定義や作業内容がいろいろ異なるので、自分なりにまとめてみようと思います。
「運用」「保守」の違いは何か?
以下のページを参考にしました。
- 素朴な疑問◆Q&A - 「運用」と「保守」って何が違うの?:ITpro
- 【システム運用Q&A】システム運用と保守の違いとは? |ReSM
-
[システム運用・保守の改善 株式会社データ総研](http://www.drinet.co.jp/consulting/mainte)
以下のように理解しました。
- 運用…システムを稼働させるために必要な日々の作業。システム自体に変更は加えない。
- 保守…運用に含まれるが、予定外の作業。改修、不具合修正など、システム自体に変更を加える。
ただ、やはりキレイに分類できるものではないようです。
「運用」作業とは例えば?
- システム稼働監視
- 障害が発生した場合は、復旧、報告を行うが、それは保守作業にカウントすることが経験的に多い。
- 利用統計の収集、レポーティング
- 設計時から組み込まれている、計画的なバッチ処理実行
- 計画停止、再開
運用作業は、システム設計段階から組み込まれており、よって作業計画が作成しやすいです。ただ、業務PDCAや改修によって運用作業は変化していくので、常に同じ作業であるとは限りません。
「保守」作業とは例えば?
- 障害対応、報告
- 要望によるシステム改修
- 計画外のバッチ処理実行
- 計画外の統計情報収集、レポーティング
保守作業は、計画外に発生した事象に対する対応作業であり、作業計画を作成しづらいです。運用を続けるうちに保守作業の発生パターンのようなものができてきて、徐々に計画の精度が増すかもしれませんが、基本的には計画できないものと考えたほうが良さそうです。
運用・保守作業を依頼された場合の見積りは?
自分は開発側なのであくまで想定ですが、依頼する側としては、システム運用・保守費用は固定の予算として組まれているはずで、運用作業も保守作業も基本的には予算内で収まるように調整します。また、運用費用は運用作業が計画的にであるために予測がしやすく、残りの予算内で保守作業を行うことになります。
依頼される側としては、運用はともかく保守作業について2パターンの見積り方法が考えられます。(1)単位期間(例えば毎月)の工数上限を定義してその範囲内で保守作業を行うか、(2)保守作業の発生都度に契約を行い作業を行うか。
運用・保守を見越した設計は、具体的に何に気をつければ良いか?
運用作業は、要件定義時に業務要件の一部として定義するため、運用業務を低コストで達成可能な機能を設計します。運用業務要件の実装は「管理機能」として表現されることがありがちで、しばしばテキトーに実装されがちですが、やはりユーザーに見える機能と同じようにちゃんと設計すべきと、個人的には考えます(現実はそうもいかないという意味で)。
しかし、発注側が定義できる運用業務要件は、基本的に「業務」の要件であり、システム稼働品質を維持するための、つまりシステム屋観点での運用業務要件ではないことに注意が必要です。サーバーリソース監視、エラー監視、レポーティングなどはシステム屋観点でないと出てこないので、それは開発側からの提案で設計することになります。
次に保守作業は、障害対応や改修作業など計画外の作業となるため、要件定義時に定義できるものではありません(レポーティング作業などは定義できると思いますが)。しかし、要するに「システムに変更を加える作業」であるので、システム仕様・設計を素早く把握、変更できる仕組みで設計し、資料もそれらを素早く把握できるものを作成する必要があります。