SEの開発・保守・運用のメリット・デメリット。一番成長できる業務内容は?

記事更新日: 2020/12/31

ライター: せかぺん

SE(システムエンジニア)の募集要項によく載っている開発・保守・運用のキーワード。各業務内容のメリット・デメリットについて紹介します。

 

システムエンジニアの業務内容は開発・保守・運用とありますが、それぞれのメリット・デメリットはどんな内容になるのでしょうか。メリット・デメリットを抑えた上で就くべき業務内容を紹介していきます。

 

ライタープロフィール
名前:せかぺん

東京に上京してせかせか働くWebエンジニア → 開発保守プロジェクト主任。
java、C#、Python、Swiftの開発現場を経験。
各現場のエンジニアと関わってきた経験を生かし、エンジニア視点の情報を発信します。

プログラミング初心者

システムエンジニアの業務内容によって取得できるスキルは全然違いそうだね。

 

せかぺん

システムエンジニアといっても色々な業務内容があるからね。就いてから後悔しないよう今のうちからしっかり把握しておこう。

システムエンジニアの「開発」業務とは

開発とは、システムを作り本番に導入・稼働するまでの業務をいいます。

開発を行う上のメリット・デメリットはどのようなものがあるのでしょうか。

 

「開発」業務のメリット

【現場の開発言語に特化してプログラミングスキルを取得することができる】

システムエンジニアを目指して開発希望の方は、このメリットを狙っていることがほとんどです。

 

プログラミングスクールに通ったり、独学で勉強するより圧倒的に効率よく開発スキルを取得できるのは「開発」業務を実際に行うことです。自分で考え、業務経験を積んだ先輩からアドバイスをもらうことで圧倒的に早く成長することができます。

 

早期にスキルが定着すれば、同現場の次の管理者や、他の現場で更にレベルの高い業務を行うことができます。

自分のスキルの上達を実感しながら取り組める業務のため、「開発」業務に人気がある理由にもなっています。

 

プログラミング初心者

やっぱり早めにスキルを付けた人が自由に仕事を選べる構図になっているんだね。まさに実力主義。

 

せかぺん

実力があれば、年齢関係なく様々な仕事を任せてもらえるため、自然と年収アップが見込めます。

 

【開発過程でプログラムの性能分析を行い分析能力が向上する】

システムには必ず情報をやりとりするためのデータがあります。

 

個人ではなく企業の利用規模になると、システムの利用者が何百万人となることもあり、膨大なデータを効率よく処理できるかデータ処理を分析する必要があります

 

データを分析する能力がつくとデータサイエンティストというデータ分析特化型の職にも繋がるため、興味がある人にはやりがいのある業務内容になります。

 

プログラミング初心者

現業務に止まることなく、キャリアパスとして次の仕事を目指す方法もあるんだね。

 

せかぺん

早く実力アップを目指したければ中小企業の就職がおすすめだよ。大手と比較し任せてもらえる業務範囲は広い傾向にあり、上手く活躍できれば次のキャリアステージにスムーズに進むことができるんだ。

 

【管理者としては「保守」・「運用」と比較し、管理が明瞭化しやすい】

開発はお客様の要件単位でプロジェクトが発足され、システム開発に取り組みます。

 

プロジェクトの管理者は主にWBS(Work Breakdown Structure)と言われる、開発スケジュール・担当の割り振りを体系化した資料を元にプロジェクトの進捗を管理します。

 

見積もりが間違っていなければ基本的に各開発担当者はスケジュール通り、目の前の開発に集中することができるため、横槍のタスクが入る「保守」・「運用」と比較し、計画を再度見直す頻度は比較的少ないです。

 

プログラミング初心者

開発業務のスケジュールをWBSで進捗管理をすることはIT業界では有名だよね。

 

せかぺん

WBSは体型的にスケジュールを管理することができるからね。新人のうちから管理職の仕事内容に興味を持つことでプロジェクト全体として求められていることに早期に対処することができるよ。

 

「開発」業務のデメリット

【現地試験のため、開発現場だけでなく、お客様先に向かうことがある】

開発では必ず現場で開発したシステムを本番稼働させる前にお客様の開発環境(本番とほぼ同一の試験環境)で試験をする必要があります。

 

試験をしない場合、開発した現場では問題なかったが、本番環境でのみ起こる環境の違いによる不具合を見つけることができないためです。

 

プログラミング初心者

環境差分による不具合なんてあるんだね。全く気づかなかったよ。

 

せかぺん

最初はわからないのも無理はないよ。1つ1つ着実に身につけて行こう。

 

開発現場でシステムを完成させた後、お客様の環境へ出向き、試験が完了するまでずっと試験をすることになります。

 

せかぺんの現場から150km離れたお客様の環境に出向いて、3ヶ月間試験を実施していたよ。平日はホテル宿泊、休日は家に帰宅することを毎週繰り返していたね。期間が長い人だと他の現場で半年間以上お客様環境で試験をしていた人もいました。

 

通いなれた職場以外で働くのが嫌いな人にとってはデメリットになりえる内容です。

 

プログラミング初心者

え!お客様先に3ヶ月も泊まり込みなんて大丈夫かな。。

 

せかぺん

ホテル暮らしも1週間あれば慣れるから、行く前から不安にならなくて大丈夫だよ。

 

【開発作業後半で仕様変更があると多くの手戻り作業が発生する】

最初にお客様と決めた要望でシステムを開発していたが、途中でお客様の仕様が変更になることも珍しくはありません。

 

仕様変更があると、それまで開発してきたシステムの影響がある箇所は全て再度改修する必要があります。

「保守」や「運用」は短期間で完結する作業が多いため、「開発」は比較的手戻りが起こりやすい業務内容といえます。

 

プログラミング初心者

開発は詰まるとずっと進捗が上手く進まなそうだけど、保守・運用であればすぐ作業できることから気持ち的に楽な面もあるのかな。

 

せかぺん

決してそんなことはないよ。短期間でも早急に対応を求められることもあるから、常に緊張感が必要な業務であることはどちらも変わらないんだ。

 

【インフラのスキルが取得できない】

ITでインフラとはハードウェアなど物理的機器を表します。開発業務はプログラムを主に作成するため、ハードウェアなどの外部の制御を意識する必要はほとんどありません。

 

そのため、DNS(Domain Name System)やメールサーバなどインフラに関わるスキルが身に付きません。

 

プログラミング初心者

スキルが身につかないのは残念だね。エンジニアなら何かしら自分しかできないスキルでプロジェクトに貢献したい。

 

せかぺん

スキルを求めないエンジニアならいいけど、ものつくりにこだわるエンジニアであれば間違いなくスキルを取得できる業種を選ぶだろうね。

 

インフラ系のスキルを取得したい場合は「運用」業務につく必要があります。

 

システムエンジニアの「保守」業務とは

保守とは、システムが本番稼働(お客様が実施に利用し始めた)後、システムに問題がないか防止・障害となった場合、即時対処する業務となります。

 

「保守」の業務のメリット

【お客様から直接、対応評価を頂ける】

保守の仕事は基本的にお客様からのお問い合わせスタートで始まる仕事です。「システムの使い方がよく分からない」「操作でおかしいところがある」「データが思ったように更新されない」など、保守では様々なお問い合わせを受け、対応を始めます。

 

緊急であれば直接電話がかかってくることもあれば、メールで確認するなどお客様と保守業務の担当者は直接やりとりを行うため、問合せを解消できた際、直接お客様からお礼を言われることは「開発」と比較すると圧倒的に多いです。

 

プログラミング初心者

なるほど、お客様と直接やりとりすることは保守でも悪いことばかりでなく、お礼を直接言われるのは嬉しいね。

 

せかぺん

初対面のお客様は緊張するけど、ずっと紳士的な対応を継続することで信頼感は築けるからね。

 

【短期間で終える作業が多いため、作業途中の方針変更が少ない】

保守の作業は「開発」と比較するとゼロからシステムを作るわけではないので、1つのタスクの対応期間は短期的です。

 

数10分で終わる作業もあれば、準備に2週間かかる作業もありますが、保守の業務は1ヶ月以内で完結する作業がほとんどです。

 

そのため、1度お客様と決めた対応方針が対応途中に変更されることが少ないため、予想外の手戻りはほとんどありません。

 

プログラミング初心者

エンジニアの先輩からも聞いたよ。仕様変更は今までの開発が一部作り直しとなるからエンジニアにとっての負担も大きいって。

 

せかぺん

エンジニアはお客様が未来的に何を求めるか予知するまでは難しいからね。その場合はしっかり仕様変更するスケジュールや予算の再調整を行う必要があるよ。

 

【作業スケジュールを自分で決められる】

保守業務は規模の小さいタスクが多いため、慣れれば自分でスケジューリングすることができます。

 

チーム内でスケジュール感の認識合わせができれば、緊急時以外は自分のタスク順序で作業をすることができます。

 

プログラミング初心者

自分でスケジュールを決められるのはいいね。作業に慣れれば仕事も自分の手の内で計算することができる。

 

せかぺん

なんでもという訳にはいかないけどね。開発と比較してスケジュールの調整はしやすいかな。

 

【直接お客様とやりとりする機会が増え、メール・電話応対能力が上がる】

前述の通り、お客様からの問合せに直接応対するため、コミュニケーション能力が上がります。

 

お客様が本来聞きたい内容のヒアリング能力や聞きたいことに対して簡潔に答えられる能力など他の現場でも円滑にコミュニケーションできる能力が身につきます。

 

プログラミング初心者

最初の電話・メール応対かなり緊張するだろうな。僕だったら連絡する前に先輩に必ず確認したくなる。

 

せかぺん

最初はそうかもね。でもそのうち自分で考えて応対できるようにならないといけないから、電話・メールの応対もしっかり慣れてもらうからね!

 

「保守」の業務のデメリット

【開発と比べ特化したスキルが身に付かない】

保守は障害復旧やメンテナンス、システムの説明に関する業務になるため、スキルとしては説明スキルやお客様へのコミュニケーション応対スキルなど、身に付くスキルが抽象的です。

 

そのため、保守を担当する場合、いち保守の担当者ではなく、チームをまとめるマネジメント系の業務内容をやることをおすすめします。

 

プログラミング初心者

保守ってどんなスキルがつくか具体的に表現することは難しいそうだ。

 

せかぺん

開発と異なり、これを作りました!っと結果で伝えられることが少ないからね。これは課題だね。

 

【対応内容が煩雑化するため原因分析に時間がかかる】

保守の忙しい現場では、何十回もお問い合わせがあります。

 

お問い合わせ内容によって対応もばらつきがあるため、このタスクはもっと早く終わらせることができたと判断する基準が確立しずらいです。

 

そのため、業務の生産性をアップさせるためにどこの作業が短縮化できるか判断するためには、お問い合わせの全量と対応内容と対応時間を細かく記載し、各対応内容を1つ1つ解析するため、膨大な時間を要することになります。

 

プログラミング初心者

1日にお問合せ10件とすると、1ヶ月(20営業日)で200件もお問合せを分析することになるのか。

 

せかぺん

通常の保守業務を行いながらだから、時間を上手く作る努力は大変だけど欠かしてはいけないよ。

 

【緊急度が高い問い合わせが優先となるため、1日のタスクの変動が激しい】

保守はお客様と直接やりとりしているため、緊急度が高い連絡があれば、連絡を受けたタイミングで対応する仕事順序が変わります。

 

障害が発生しシステムが利用できない状態となってしまうとお客様は販売の機会損失となってしまうため、保守の対応が遅くなるほど損失が大きくなってしまいます。

 

最悪の場合は責任問題となってしまうこともあるため、保守はチーム内のタスクを全体で共有しながら、常にタスクスケジュールを問合せがくるたびに最新化する必要があります。

 

プログラミング初心者

怖いね。いきなり緊急対応となると早く解決しないと自分の責任ってプレッシャーがすごいよ。

 

せかぺん

致命的な問題が発生した場合は両者の責任者で話すことになり得るため、保守はそういった事態を未然に防ぐことが必要なんだ。

 

【開発時の問題で障害が起きても、お客様からのクレーム対応は保守】

システムが本番稼働した後、問題が生じた場合、クレームは保守に来きます。

 

システム開発担当者が保守も担当している場合は別ですが、ほとんどの場合はシステム開発担当とシステム保守担当は別々となります。

 

開発の段階で不具合があった場合でもクレームは保守に連絡があるため、保守担当者からすると「それは何の件だろう?全く身に覚えがないのに自社の製品の不具合のため、謝らなければならない」といった状況が起こりえます。

これも保守の大切な役目となります。

 

プログラミング初心者

自分のせいじゃないのに、過去の担当者のことについても謝らないといけないのは切ない。。

 

せかぺん

システムを利用している企業からすると、内部事情関係なく1つの会社として見られるからね。

 

【メンテナンス作業により一部シフト勤務となる】

システム提供元のホスト端末のメンテナンスにより、サービスを利用できない時間帯が発生してしまう場合はお客様への業務影響を極力少なくするため、営業時間外に対応が必要なこともあります。

 

早朝作業や夜勤作業などに伴い、必要に応じて可変的にシフトを調整します。朝型で夜起きていることが苦手という方には身体の負担になるシフトになりえるので注意が必要です。

 

システムエンジニアの「運用」業務とは

運用とは、システムが動いている状態を継続・更新していく業務となります。

ディスク容量やログ、データの監視などシステムの状態を監視し、システムが常に利用できる状態にする必要があります。

 

「運用」の業務のメリット

【インフラの知識を深く取得することができる】

運用はインフラ整備の業務がメインとなります。システムを取り巻くハードウェアの構成や仕様に関するサービス要求をお客様からもらうことが多いため、常にハードウェアやロードバランサー、DNSなどシステムを取り巻く外部システムに興味のある方が担当を希望する傾向にあります。

 

プログラミング初心者

スキルが身に付くのは開発業務だけだと思っていたよ。

 

せかぺん

そのイメージは大きく間違ってはいないけど、開発だけとは限らないといろんな業務内容を知っていこう!

 

「運用」の業務のデメリット

【障害原因を調査した結果、限られたリソースでは原因を特定できないことも】

運用メンバの調査範囲は有限です。システムから出力されるログやシステムを取り巻くハードウェア(メールサーバやネットワークを構築するVPNなど)の出力されたログが調査範囲となります。

 

プログラミング初心者

せっかく頑張って調べたのに、原因が特定できないのは切ないね。

 

せかぺん

システムはネットワーク、データ量、操作制御など様々なケースが無限に想定されるため、限られたログだけでは特定できないことも珍しくないよ。

 

その内に問題となるログが発見されない場合は、推測となり検証を行う必要が出てきます。検証でも確認できない場合、障害の原因は不明または推測となるため、運用内で解決できないケースがあることはデメリットに上がります。

 

【早急な対応が求められるケースがあるため、1日のタスクが頻繁に変動することがある】

前述でも述べましたが、運用はシステムを止めてはいけない責務を負っています。

 

そのため、システム障害になりえる事例は早急に対応する必要があるため、予定していた作業を後倒しにし、お問合せタイミングにより優先順位を常に見直す必要があります。開発と異なり、頻繁に予定を見直す必要があることは手間となってしまいます。

 

プログラミング初心者

常にタスクの優先順位を見直す必要があるのか。こまめな人でないとできなそうだね。

 

せかぺん

性格上の問題もあるかもしれないけど、最初からできなくても課題を自分で見つけて改善する性格であれば誰でも改善することができるよ。

まとめ

開発・保守・運用とそれぞれのメリット・デメリットを解説してきました。

一番スキルを取得しやすいのは、横槍タスクがなく、スキル取得に集中できる開発業務がおすすめです!

 

インフラのスキルを取得したい場合は、運用業務がおすすめ!

1人1人どんなスキルを取得したいか見直し、未来的に自分が取り組みたい業務内容を具体的に決めておく必要があります。

 

この記事を書いたライター

せかぺん

東京に上京してせかせか働くWebシステムエンジニア → 開発保守プロジェクト主任。日々、効率的に生きる方法を模索中。生活の中で有意義だと感じる情報をシェアしていきます。極度の暑がり。

この記事に関連するラベル

ページトップへ