システム開発は、システム開発・システム保守・システム運用の3段階に分けることができ、それぞれのフェーズごとに作業内容や必要なスキルが異なります。
今回は、システム開発後の保守業務について、開発運用との違いや保守に必要なスキルを詳しく解説します。内製と外注のメリット・デメリットや外注する際に確認すべきポイントも紹介するため、ぜひ最後までチェックしてください。
目次
システム開発・保守・運用とは
システム開発は、開発・保守・運用の3つの段階に分けられます。それぞれのフェーズが異なる役割を持ち、各工程のエンジニアに求められるスキルもさまざまです。
1.システム開発の担当業務・内容
システム開発を担当するエンジニアは、要件定義・設計・プログラミング・テストの順序でシステムの開発・構築を行います。開発前のクライアントとの要件確認からプロジェクトに携わることで、開発フローの全体を把握でき、プログラミング以外のコミュニケーションスキルや文書の作成スキルも得られます。新たなシステムを1から創造する経験ができるため、エンジニアとして初期経験を積むのに適した環境といえます。
2.システム保守の担当業務・内容
システム保守を担当するエンジニアの業務は、リリース済みのシステムに対して発生する不具合の修正や仕様変更への対応、法改正やセキュリティ更新への適応作業が中心です。すでにリリースされたシステムを対象とした業務のため、エンドユーザーの反応を直接確認できる機会が多く、ネットワークやデータベースなどのインフラにまつわる専門知識が深まります。一方、トラブル発生時や通常作業時の拘束時間が長く、場合によっては深夜に保守作業を行わなければなりません。
3.システム運用の担当業務・内容
システム運用を担当するエンジニアの業務は、導入済みのシステムが日々正常に稼働できるように監視・管理をする作業です。具体的には、サーバーやネットワークの稼働状況の監視・障害時の一次対応・アカウント管理・ログの確認・定期的なバックアップ作業などを行います。ほかの開発フェーズと比べてルーティンワークが多く、慣れればスムーズに対応できるようになりますが、24時間体制で運用するシステムの場合は、夜間や休日に拘束されるケースが増えます。
保守系SEに求められるスキル・知識
保守業務は地道な作業が多く、技術力と対応力の両面が求められます。ここからは、保守系のエンジニアに欠かせないスキルや知識を解説します。
保守を行う既存システムへの理解
保守業務では、既存システムの構造や処理のフロー、過去の修正履歴などを深く理解していることが求められます。古いシステムの場合は仕様書が残っていないケースも多く、実際のソースコードやログなどから仕様を把握しなければなりません。保守系のエンジニアには、さまざまな場面で迅速に対応できる判断力や経験が欠かせません。
インフラの知識
システム保守では、使用するアプリケーションだけでなく、OS・ネットワーク・データベースなどのインフラ全般の知識も必要です。特にクラウド開発環境に対応する場合は、仮想サーバー・ストレージ・セキュリティ設定などの構成も理解しておく必要があります。ITインフラに関する広範囲な知識が、スムーズな保守業務に活かされます。
クライアント・ユーザー目線での対応能力
システム保守業務は、単に技術的な対応を行うだけでなく、エンドユーザーやクライアントとのやり取りも発生します。そのため、ITの専門知識がない人でも納得できる説明能力や、さまざまな関係者とスムーズにコミュニケーションを取る能力も必要です。保守系のエンジニアには、技術力と対人スキルの両方が求められるといえるでしょう。
トラブル時における柔軟な解決能力
保守作業中に予期せぬトラブルが発生した場合、状況に応じた適切な判断が必要です。トラブル時にはマニュアル通りに進まない作業が多く、エンジニア1人ひとりの思考力や柔軟性が求められます。また、過去の類似事例の対応経験もトラブル時に役立ちます。
システム保守・運用の仕方
納品されたシステムの保守・運用の体制は、企業によってさまざまです。社内のリソースで保守・運用を進める方法と外注のどちらが適しているかを見極め、最適な保守・運用体制を整えましょう。
自社で保守を行うか、外注するかを判断する際には、以下のような視点で検討するのがおすすめです。
- 保守に必要なスキルやナレッジを社内で確保できているか
- 24時間365日対応などの体制が必要か
- 一時的な保守か、長期継続的な保守か
- コスト重視か、品質・安定性重視か
自社で内製するメリット・デメリット
自社でシステムの保守・運用を行う最大のメリットは、システムへの前提知識や理解がある社内のエンジニアに保守・運用を任せられることです。長期的な保守・運用によって社内にノウハウが蓄積されやすく、開発部門との連携もスムーズに行えます。
一方で、保守業務に専任できる人材の確保はなかなか難しく、リソース不足や属人化といったリスクがともないます。中小企業や人的リソースが限られる環境では、自社で内製すると運用負担が重くなる可能性があります。
専門会社に外注するメリット・デメリット
保守・運用を専門会社に外注すると、24時間体制の安定した稼働を叶えられます。社内のリソースを割かずに保守・運用を行えるため、小規模な企業でも負担が少なく、自社では対応が難しい領域も安心して任せられます。
一方で、外部のエンジニアと自社のエンジニアでは、前提知識やシステムへの認識に齟齬が生まれる可能性があります。また、一定期間の定額契約が一般的なため、実稼働量に対してコストが割高になりやすいのも難点です。
システム保守・運用の外注先
システム保守・運用の外注先には、システム開発会社、MSP、フリーランスなど、多様な選択肢があります。外注化する目的や規模に応じて、適切な委託先を選びましょう。
システム開発会社
システム開発会社に依頼すれば、開発段階からの一貫したサポートを受けられます。複雑なシステム構造も理解してもらいやすく、トラブル時の原因究明や対応もスムーズです。また、セキュリティに関するノウハウも豊富なため、安定して運用しやすいというメリットもあります。ただし、開発と保守の契約が分離している場合、新たに契約を結び直す必要があります。依頼を検討する際は、保守業務の委託に追加費用が発生するかどうか事前に確認しておきましょう。
マネージド・サービスプロパイダ(MSP)
マネージド・サービスプロパイダ(MSP)は、システムの保守や運用を専門としている企業です。システム監視・障害対応・アップデート作業などを一任することができ、365日24時間体制で運用・監視を行ってもらえます。24時間監視の必要があるシステムの運用は、自社のリソースを活用するよりもMSPに依頼した方が効率的です。
フリーランス
フリーランスへの外注は、契約内容の柔軟性やコスト面でメリットが大きいといえます。特定の分野に強いスペシャリストと直接やり取りができるため、小規模な保守案件やスポット対応に最適です。ただし、長期稼働の安定性や対応範囲には個人差があるため、長期的な運用には不安が残るでしょう。フリーランスに依頼をする場合は、信頼できる実績を持つ人材かどうかを見極め、事前に細かく契約内容を取り決めておくことが大切です。
>>システムの保守・運用について、Sun Asteriskに相談する
システム保守・運用を外注する際に注意するポイント
システム保守・運用の外注化を成功させるためには、業務範囲・費用・契約期間などを明確にし、信頼できる相手と適切な関係を築くことが重要です。
依頼する業務内容・範囲を明確にする
保守・運用の外注契約では、「どの作業をどこまで任せるか」を明確に定めることが重要です。開発から保守・運用まで一貫して依頼する場合は、対応時間・緊急時の連絡体制・対象システムの範囲などをあらかじめ決めておく必要があります。保守・運用の契約内容が不明確だと、導入後のトラブルや追加費用が発生するリスクが高まるため注意しましょう。
費用の妥当性を確認する
保守・運用の外注費用は開発費用に比べて安価に思えるかもしれませんが、範囲外の対応やトラブルが発生した場合は追加で費用が発生する可能性があります。妥当な費用を支払うためにも、必ず見積もりの段階で月額費用・初期費用・追加対応費用などの内訳を確認しておきましょう。金額の妥当性が判断しにくい場合は、複数社から相見積もりを取って比較することをおすすめします。
>>費用の妥当性が確認できる|「見積もりガイド」をダウンロードする
契約期間を明確にする
外注先と契約を結ぶ際は、契約期間や更新・終了の条件について明確にしておくことが大切です。保守・運用の作業は長期にわたることが多く、更新のたびに契約条件が変わったり途中解約が発生したりすると混乱を招くおそれがあります。契約を結ぶ場合は、最低契約期間や自動更新の有無、契約を途中終了する場合の手続きなどをすり合わせておきましょう。
まとめ
システム開発は開発・保守・運用の3つのフェーズに分けられます。なかでもシステム保守の業務は豊富な経験やインフラ知識が必要なため、自社システムの保守・運用を行う際は、必要に応じて外注を検討するのも1つの方法です。
また、システム保守・運用では、対応範囲が広く、突発的な作業が発生しやすいため、WBSなどを活用して事前に対応内容を把握しておくことが重要です。保守業務を見える化し、作業漏れや属人化を防ぐためにも、プロジェクト管理手法の活用をおすすめします。Sun Asteriskでは「WBS 基本と実践」を展開しており、WBSの基本から実践的な作成方法までを網羅可能です。プロジェクトの計画精度と実効性の向上を目指せるため、効率的なシステム開発を推進したい人は、ぜひご利用ください。
>>作業漏れゼロ!プロジェクトを完全管理!WBS 基本と実践(無料資料)を見る
WBS(Work Breakdown Structure)について、基本の解説と、作成方法を具体的にご紹介いたしました。
アジャイル開発で最低限抑えておきたいポイントをチェックリスト化いたしました。