システムは運用(Operation)するもの
システム開発が終了すると、システムの運用が始まる。運用は開発とは別で、システムを実際に稼動させ続けることである。システム運用の代表的な業務として、以下の3点があげられる。
ユーザ問い合わせ対応 | ユーザが利用するシステムでは、システムの操作方法など、使い方に関する問い合わせが発生する。実際はコールセンターなどのユーザ対応専門の組織を用意し、必要なオペレータを常時待機させておく。 |
システムの監視 | システムはマシン上で動作する。システムが稼動する時間帯によって、システムの利用率に変動が生じ、それに伴ってマシンへの負荷も変動する。CPU利用率やメモリ使用量、起動プロセスなどを監視し、障害が発生する前兆を事前に察知する。 |
障害対応 | 何らかの原因で障害が発生したとき、システムを迅速に復旧させることが求められる。どれほど堅牢に開発されたシステムでも、障害はいつか必ず発生するといって良い。障害によって販売機会の損失や、障害の拡大につながってしまうため、システムの回復作業と恒久的な対応策を投じる必要がある。 |
システムの運用は、システムが稼動し続ける限り続く。システム開発とは違って、運用手順があらかじめ存在し、定期的なデータを常に記録していく作業が行われる。したがって、ルーチンワークのような作業が続くことを敬遠するエンジニアもいる。一方で、運用こそが最上流の工程であるという考え方もある。システム開発の一環として、最終的なゴールがシステム運用であるという観点から、もっとも重要な業務の一つであるという考え方もある。エンジニアとしてのキャリア形成を考えるとき、運用業務は確かに技術的な成長が望めるものではない。運用テクニックは存在するものの、ものづくりを醍醐味とするエンジニアにとっては、やりがいを感じ取れる業務ではないかもしれない。しかしながら、システムの運用がシステム開発のゴールであることは一つの解であり、運用を軽視したシステムなどは破綻の一途を辿る。
システムの保守
システムが稼動し、一定期間が経過すると、システムに対する別の要求が発生する。開発の段階では要件定義の通りで良いが、実際に運用してみれば、システムのある部分に対する仕様変更の要望が発生してくる。これらのシステムの改造対応が、システムの保守作業である。システムの保守は、一般的には保守契約を結んで、システム開発チームが対応する。システム開発の費用に含まれているものとして扱うと、保守要件が発生するたびに対応を強いられるため、作業スコープがあらかじめ見えていない状況を保障することはかなりのリスクが生じる。具体的な作業内容としては、改造要件の明確化を行い、あとは設計から製造、テストまでを行う流れで、システム開発の開発フェーズと同じ手順を踏む。システム開発ほど大規模な保守作業はあまり発生せず、ほとんどは少人数で対応する。