保守開発・システムの運用体制の最適化とは?外注を検討するべき企業の特徴も紹介
目次[非表示]
- 1.開発・保守体制を最適化する流れ
- 1.1.業務の見える化をする
- 1.2.各工程の分析・切り分けをする
- 1.3.分析に基づいてそれぞれの業務を最適化していく
- 2.システム運用内容
- 2.1.定型化されたオペレーションを行う
- 2.2.システム稼働状況の常時監視
- 2.3.アクセスが増加した際のキャパシティ管理
- 3.システム保守内容
- 3.1.データのバックアップの復旧計画を立て実行する
- 3.2.周辺機器のリプレース
- 3.3.システムのアップデート・メンテナンス
- 4.運用・保守業務や開発は社内の負担になることが多い
- 5.保守開発を外注化した方が良い企業の特徴
- 5.1.社内リソースが足りていない
- 5.2.社内の人材ではノウハウに不安がある
- 5.3.大きなプロジェクトを担当している
- 6.まとめ
開発・保守体制を最適化する流れ
最初に、開発・保守体制を最適化する流れをご説明します。特に保守業務はルーティンワークが多いため、最適な業務設計を行うことで日々の業務が円滑になります。
業務の見える化をする
現状の開発・保守体制の課題や非効率な部分を改善するためには、最初に業務全体を把握する必要があります。業務が不透明になっている部分は無駄が生じている可能性があり、また属人性が高いとコミュニケーションロスによるトラブルが生じやすくなります。
人材の入れ替わりがあった際にも手間が発生するので、業務の棚卸しや業務の見える化は複数の観点からメリットがあります。また、業務全体が見えてきたタイミングでざっくりと問題部分と問題ない部分が分かってきます。
この時点で評価基準を明確にすると、後の工程がスムーズです。
■関連記事:
各工程の分析・切り分けをする
業務を見える化し、評価基準が明確化されたら、各工程の分析・切り分けを行います。業務を細分化することでピンポイントに分析しやすくなり、分析することでさらに細分化しやすくなります。一回ですべての工程を整理できるわけではないので、分析と切り分けを繰り返して現状を分かりやすくまとめていきます。
まとめ方は自由ですが、簡単な方法だとフローチャートにまとめていくと分かりやすいでしょう。各部署・担当者と業務内容の二軸でチャートにしていくのが一般的です。そうすることで部署・担当者間の連携も見えるため、業務単体で考えるのではなく誰がいつやるのかも可視化することが重要です。
また、ボトルネックになっている部分を洗い出すと後の最適化がスムーズです。ボトルネックの解消がもっとも業務最適化に対して費用対効果が高いからです。
分析に基づいてそれぞれの業務を最適化していく
一度全ての業務の棚卸しを行った上で業務内容を細分化し、フローチャートや図にまとめることができれば、課題と解決策が見えてきます。具体的にどのような解決策を取るかはケースバイケースですが、例として以下のようなものが挙げられます。
- 業務をマニュアル化し、属人性の排除、経験の浅い人員でも対応できるようにする
- 業務の振り分けを変える
- システム化、ツール導入をする
業務のマニュアル化、属人性排除は業務最適化において重要な要素です。よく現場では既存システムが属人化しすぎてその人が退職後、後任が基幹システムをさわれないなどの問題も発生します。企業で即戦力になる人材をキーマンと呼ぶことがありますが、キーマンに依存している状態や、キーマンでなくてもできる業務をキーマンが担当している状態は、好ましくありません。
キーマンの時間が奪われるだけでなく、キーマンが抜けた際に業務が滞ります。後継者が育たないことも問題です。そこで業務をマニュアル化することで、経験の浅い人員でも業務対応できるように最適化していきます。スポット対応や保守プロジェクトで増員あるいは要員入れ替えで新規加入エンジニアを迎え入れた場合に、新しく入った人が困ることは少なくなるでしょう。
業務の振り分けという点でも同様で、経験の浅い人員に業務を割り振れる仕組みを作る必要があります。またコミュニケーションロスをなくすため、連携の工数が減るように業務を割り振ることも重要です。
システム化、ツール導入はすでに多くの企業が力を入れている部分ですが、人間がやらなくて済む業務はシステム、ツールに任せた方が業務が効率化されるだけでなく、ミスも減ります。
■関連記事:
システム運用内容
次に、システム運用の内容をご説明します。「運用保守」「保守運用」という言葉もあるように、現場ではセットで語られることも多くありますが、厳密には少し作業内容が異なります。
システム運用は、システムが正常に稼働するための「監視」を担い、作業の対象はリリースしたシステム(ハードウェアやネットワーク等のインフラ面)が多いです。
スマホのゲームアプリアプリは一時的な利用者の増加により障害が発生する場合や、サーバーが悪意を持ったユーザーから攻撃を受けることもあります。
昨今では特に、セキュリティ対策の重要性が問われていますが、システムの停止や破壊のリスクを未然に防ぐための監視や障害の特定を行います。システムに障害が起きた場合、ソフトウェアのバグなどではなく、インフラに起因した障害である場合は、復旧作業も重要な任務です。そのため管理業務のシステムの運用では、インフラ関連の豊富な知識とトラブル時の対応力が重要になります。
定型化されたオペレーションを行う
システム運用の業務は基本的に定型化されています。正常に稼働させることが目的なので、そのための監視が基本業務になるためです。システム運用現場では、オペレーションがマニュアル化されている場合が多いでしょう。基本的にはオペレーションを実行し、責任者(システムの修繕作業に携わるスタッフ)に報告する流れになっています。レポートでまとめたデータを基にシステムの不具合やリスクを探し、トラブルの防止やシステムの強化をします。
システム稼働状況の常時監視
定型化されたオペレーションの中にシステム稼働状況の常時監視が含まれています。具体的には、CPU・メモリ・ストレージなどのリソースやキャパシティの負荷状況やネットワーク機器の稼働率、データ伝送率や帯域利用率、障害の発生件数や発生状況などです。
モニターを通して稼働状況を確認したり、マニュアルに従ってコマンド入力してログを確認したりするような業務内容になります。マニュアルに従ってコマンドを入力するだけでなく、コマンドの意味や実行ファイルのコードの意味を理解していくと勉強になります。
アクセスが増加した際のキャパシティ管理
急激なアクセス増加などが起因となり、システム障害が発生してしまうことがあります。システム稼働状況を監視した結果、キャパシティに余裕がない場合は追加作業が必要です。サービスの種類にもよりますが、アクセス数が増加した場合などにキャパシティが不足します。
サーバー増設や検索速度の高速化などが必要な場合、運用チームではなく開発チームが担当する場合もあります。明確に線引きがあるわけではありませんが、少なくとも状況を監視して報告するのは運用チームの役割のため、大きなシステム障害が起こらないように、アクセス状況や負荷状況を常に確認できる体制を整えておく必要があります。
これまで述べてきた3つ以外にも、「外部からの攻撃などのセキュリティ対策」もあります。
サービスをインターネット上で提供している場合、攻撃の標的になることは日常茶飯事です。例えば、不正アクセスやサイバー攻撃によるプライバシー情報の盗難や、システムに悪影響を与えるウイルスの送付など、攻撃内容も多種多様です。昨今では従来のセキュリティ対策では突破されてしまうことも珍しくなくなっているため、セキュリティ対策はなるべく常に新しいものになるようにアップデートしていく必要があります。
システム保守内容
次にシステム保守の内容をご説明します。運用とセットになっているのですが、保守の方がシステムの「改善とメンテナス」といった能動的な作業になります。定型業務というよりは、その場で必要な対策を行います。
外注先に開発してもらったシステムのサポート業務のことを指す場合もあります。システム管理運用していても避けられないトラブルが生じた際に早急にトラブルに対応するための業務がシステムの保守です。
身近な例をいうと、スマホアプリは定期的に不具合修正や機能改善などでアップデートを行っているかと思いますが、それは既存の不具合解消やステージ増設や新コンテンツのリリースのために行われます。
アプリはリリース後も、さらにより良いアプリにするために改善が繰り返されています。
これは他のシステムも同様で、稼働する時点での最新の環境やOSバージョンに合わせて、アップデートを行う必要があります。
特に、改修頻度の高いソフトウエア業界ではこの保守性が品質の高さを保つために重要になってきます。
データのバックアップの復旧計画を立て実行する
何らかのイレギュラーで、システムが使いものにならなくなるケースもあるかもしれません。その事態に備えデータのバックアップは、システムで自動化しておくのが一般的です。ただし定期的にシステムの全体像が変わるため、バックアップの対象も変わります。このような変更が発生した場合は、保守業務としてシステムのバックアップ設定を変更します。
周辺機器のリプレース
データやシステムだけでなく、周辺機器にあたるハードウェアなど物理的な機器も保守業務の対象です。ハードウェアが故障したり老朽化したりすることもあるので、新しいものに取り替えます。リプレースはトラブルが発生した際にも必要ですが、トラブルが発生する前に定期的に行います。
大規模なリプレースを行う場合、他部署の作業に影響しないように夜間作業が発生する場合もあります。
システムのアップデート・メンテナンス
保守業務は主にサーバーを対象としていますが、サーバーのシステムも定期的にアップデートが必要です。アップデートの目的は、新たなシステムとの互換性担保やセキュリティ攻撃への対策などです。基本的にはパソコンと同じ考え方になります。
また、サーバーだけでなく他部署の社員のパソコンを預かってアップデート作業を行うような場合もあります。この場合も夜間作業になる場合が多いでしょう。
上述の3つ以外にも「セキュリティ管理」も必要となるでしょう。
セキュリティ状況を監視しシステム内に異常がないか確認するまでがシステムの運用業務とすると、セキュリティの異常を発見した場合の対応は保守業務に当たります。異常を検知しそのままにするのではなく、措置まで行う一連の連携でセキュリティ管理を行っていくことが大切です。
運用・保守業務や開発は社内の負担になることが多い
運用・保守、開発をすべて社内で行うと、多くの労力、人員が必要になります。自社ですべてカバーできる企業もありますが、難しい場合も多いでしょう。
前提として、システムの運用や保守には専門的な知識が必要です。特に保守作業は24H体制で監視する環境が必要であり、専門知識を持つエンジニアが自社に在籍していても、保守業務までを内製化する場合は、知識のあるIT人材だけで監視し続けられるチーム体制を整える必要があります。
一方エンジニアを抱えていない企業の場合、その体制を整備することは困難かもしれません。コストが大きくかさむか、システムの運用や保守は業務負担が大きい分、自社だけで完結させようとすると、他の業務に人員のソースが割けず、業務効率の悪化や離職の原因を招く恐れもあります。
これらの点から、運用・保守業務は運用保守サービスを利用しアウトソースするのも手です。最近は外注先も充実しているので、自社の社員がより重要度の高い業務に専念するためにも外注する選択肢は有効です。
■関連記事:
保守開発を外注化した方が良い企業の特徴
では具体的にどのような企業は開発・運用・保守を外注化した方が良いのでしょうか。概ねご想像の通りかと思いますが、改めて特徴をまとめていきます。
社内リソースが足りていない
社内にスキルのあるエンジニアが在籍していてもシステムの規模的に人員が足りない、自社でサーバーを保有しておらず外部のクラウドサーバーなども契約していない、といったケースが考えられます。
このようなケースでは、外注した方が安全でしょう。自社サーバーがなくてもサーバーを契約して自社メンバーで開発・運用・保守を行うことは可能です。しかし、今からリソースを用意するなら、すべて外注した方が効率的といった場合もあります。
社内の人材ではノウハウに不安がある
社内にエンジニアが在籍していない、もしくは在籍していても自社システムに近いスキルや経験を有していない場合、自社のエンジニアだけで開発・運用・保守を行うのは不安です。特に業務の根幹となるようなシステムは不具合や不安定な稼働を絶対に避けるべきなので、外注した方が確実です。
外注の選択肢は複数あり、すべてを外注するケースや、開発や重要な運用・保守業務のみを外注し、平常的な運用は自社で賄うといったケースもあります。外注は0か100かではないので、自社にとって最適な選択を取ることが可能です。
大きなプロジェクトを担当している
自社のエンジニアが大きなプロジェクトを担当している場合、さらに負担を増やすことは避けた方が良いでしょう。エンジニアにとって、新たにシステムの開発や運用・保守を行う場合、実作業だけでなく状況の把握や計画の策定から始める必要があります。
エンジニア間や他部署との連携作業も発生するため、単に手を動かしてシステムを構築する、黙々と運用・保守作業を行うだけではありません。業務の重役を担うようなシステムだと責任も伴うので、さらに負担は大きくなります。
外注した方が、自社エンジニアが目の前のプロジェクトに集中でき、結果的に自社の利益につながるでしょう。
まとめ
システムの開発、運用・保守を外注化すべきかどうかはケースバイケースです。ただし、多くの企業ではリソース、ノウハウ、自社エンジニアの稼働状況などから自社だけですべて賄うのは難しいでしょう。
そして外注する場合、0か100かの選択だけではありません。自社にエンジニアが在籍している場合は特に、日々の運用は自社で行うといったことも可能です。細かな設定変更などは自社で対応できるようにしておいた方が利便性が高いといった事情もあります。
何が最適かは企業ごとに異なるので、まずは現状のシステム課題を洗い出し、計画を立て、社内の体制や外注先の選定を行う必要があります。
また、システムの運用や保守サービスの探し方としては、企業に直接接触する、クラウドソーシングを利用する、マッチングサービスを利用するなどが挙げられます。
ぜひ一度外注依頼を検討して、業務効率の悪化を防ぎつつ質の高いシステムの運用や保守をしてもらうことをおすすめします。
最後に
「コウェル」はベトナムと日本に拠点を置いており、高品質なオフショア開発サービスを提供しています。
コスト・スピード・品質には自信があり、上流工程から開発、テストまでワンストップでサービスを提供しており、国内大手企業様からも開発依頼を多くいただいています。
開発実績としてはWebシステムの開発や業務システム・越境EC開発などが豊富です。
さまざまなニーズに応えた実績もあり、経験豊富なソフトウェア開発会社です。
「なるべくコストを抑えてソフトウェアを開発したい」
「納期が短いから国内のエンジニアだけでは難しい」
このようなお悩みがあれば、オフショア開発を検討してみてはいかがでしょうか。
■関連記事:
なお、コウェルに関する詳細資料は以下でダウンロードすることが可能です。
このほか、弊社の具体的なサービスや導入事例については以下をご覧ください。
コウェルのサービスメニュー>>>
コウェルは、日本とベトナムから世界中のお客さまへ高品質なソフトウェアテスト・品質保証・オフショア開発サービスを提供しています。
コウェルの開発導入事例>>>
コウェルは情報通信、金融、流通・小売サービス、医療・ヘルスケアなど、さまざまな業界のお客様の導入を支援しています。