ITエンジニアに興味あるけど、結局何をする職種なのかイマイチわからない…プログラムを書くの…?
実は、IT業界未経験の人には、「ITエンジニア」が具体的に何をするのかわかりづらいです。
- そもそもITの仕組みか何なのかわからないから
- 「プログラマー」「システムエンジニア」「インフラエンジニア」等、ITエンジニアと似た言葉があり混同するから
この記事では、IT業界未経験の人でも完全に理解できるよう、具体例を使いながらITエンジニアの業務内容をどこよりもわかりやすく解説しています。
この記事を読めば、ITエンジニアの業務について圧倒的に理解度が上がり、ITエンジニアへの転職可能性が高まります。
ITエンジニアとはどんな仕事・何をする?
ITエンジニアの仕事は、クライアントの要望を把握してシステム設計を行ったり、システム開発プロジェクトが円滑に進むよう管理したりすることが主な内容です。
尚、クライアントは以下の2パターンあります。
クライアントに該当する人物 | |
---|---|
社外の顧客からの依頼に基づきシステムを開発するケース | 社外の顧客 |
自社の製品としてシステムを開発するケース | 自社の製品企画部署の担当者 |
ITエンジニアの仕事は、多岐に渡ります。
クライアントの要望を聞き、実現するためには何が必要で、何を行えばいいかを考えて設計を行い、色んな人と協力しながら形にしていきます。
システム開発は自社のエンジニアだけで完結するケースもあれば、社外の協力会社と一緒に開発するケースもあります。
ITエンジニアはクライアントや協力会社と綿密なコミュニケーションを図りながら、プロジェクトが滞りなく進むように牽引していくイメージです。
ITエンジニアのキャリア
最初は担当者として、スケジュールに沿ってシステム開発を行うことで、プロジェクト推進の流れを覚えます。
その後は、プロジェクトリーダーとして、協力会社に指示を出したり、進捗を管理したり、様々な調整を行います。
実際は、管理だけではなく自ら開発作業も行いながら、プロジェクトがスケジュール通りに進むように動くことも多かったです。
プロジェクトリーダーとして経験を積んだ後は、プロジェクト全体を管理するプロジェクトマネージャーとして、活躍することになります。
ITエンジニアとプログラマーの仕事内容の違い
ITエンジニアとプログラマーは同じ職種と考えられがちですが、IT業界ではそれぞれ役割が違います。
ITエンジニアは、クライアントとのヒアリング内容や調査を元に設計をする人です。
プログラマーは、ITエンジニアの設計内容を元に開発をする人です。
ITエンジニアの仕事内容 | プログラマーの仕事内容 |
---|---|
・クライアントへのヒアリングや調整 ・委託先との調整 ・現行環境の調査 ・スケジュールの作成と進捗管理 ・システム設計書を作成 ・テスト計画やデータ移行計画の立案と実施 | ・ITエンジニアが設計した内容を確認 ・プログラム作成 ・プログラムテストの実施 |
ITエンジニアの仕事内容 | プログラマーの仕事内容 |
---|---|
・クライアントへのヒアリングや調整 ・委託先との調整 ・現行環境の調査 ・スケジュールの作成と進捗管理 ・システム設計書を作成 ・テスト計画やデータ移行計画の立案と実施 | ・ITエンジニアが設計した内容を確認 ・プログラム作成 ・プログラムテストの実施 |
ITエンジニアはどんなものを作るか考える人、プログラマーは作る人と考えると分かりやすいです。
また、ITエンジニアはクライアントと密接に関わっているのに対し、プログラマーはITエンジニアから指示を受けてプログラミングを行います。
ITエンジニアの仕事内容・業務内容①要件定義
要件定義は、クライアントに対してヒアリングや調査を行い、どんなシステムを作るのかを決める工程です。
打合せでは、ITエンジニアだけではなく営業も一緒に参加します。
ITエンジニアは、主に以下の内容のヒアリングを行い、どんなをシステム開発するのかを文書に書き起こしてクライアントと合意します。
- システム導入の目的
- 要望
- 納期
- 現行環境の詳細
- システムの機能要件と非機能要件
- 実現性
- プロジェクト計画
- 委託先(どの協力会社を活用するか)
家づくりで例えると「どんな家を建てるのか」、「予算内に収まるのか」等の内容を確認して、ハウスメーカーの担当者が発注主と合意するイメージです。
要件定義が不十分な場合、後々の工程で後戻りが発生したり、クライアントとトラブルになったりすることもあるため、とても重要な工程です。
ITエンジニアの仕事内容・業務内容②設計
新しく開発するシステムの詳細を検討し、設計する工程です。
クライアントの悩みを解決するためのシステムを、他のシステムとの影響を考慮しながら、具体的にどう実現するかを考えて設計します。処理の流れを明確にするために、フローチャートを用いて設計書を作成します。
画面や帳票等の外部仕様についても設計します。
家づくりで例えると、建築士さんが家の設計図を描くイメージです。
テスト計画や、古いシステムからデータを移行する計画も、設計工程の中で考慮します。
ITエンジニアの仕事内容・業務内容③製造(コーディング)
設計した内容を元に、実際にプログラムを書いてシステムを製造する工程です。基本的には、プログラマーが担当します。
設計書に従ってプログラミングを行い、作成したプログラムのコンパイル(コンピュータが実行できる形式に変換)の完了までを実施します。
家づくりで例えると、大工さんが実際に家を造るイメージです。
大手のIT企業の場合、製造工程は協力会社へ依頼することも多いです。
なぜならば、製造は基本的には設計書に記載されている通りにプログラミングする作業であり、プログラムを書ける人に外注してしまった方が早いからです。実際に筆者も、色んなIT会社の方と一緒に作業分担をして取り組んでいました。
ITエンジニアの仕事内容・業務内容④テスト
開発したシステムが、設計書通りに正常に動作するかを確認する工程がテストです。
第三者検証として、専門知識を持つテストエンジニアに依頼したり、別の部署のエンジニアに依頼したりすることもあります。品質を保証するために、漏れなく多角的な視点からテストを行う必要があるためです。
色々なパターンの入力を行い、データが正しく処理されているか、集中した処理にサーバーが耐えられるか等をテストします。
家づくりで例えると、工事が完了した後の検査をするイメージです。
ITエンジニアが一通り動作を確認をした後は、クライアントに操作研修を行い、実際の運用を想定したテストである「受入テスト」の実施を依頼します。
また、個人情報や金銭が関わるシステムでは、誤りがあると多方面に影響が発生しクライアントに多大な迷惑をかけてしまいます。
医療システムにおいてはシステムの誤りが人の命に関わることもあります。
ITエンジニアの仕事内容・業務内容⑤インフラ設計・構築
インフラ設計・構築は、ITエンジニアの中でも専門知識を持った「インフラエンジニア」が担当することが多いです。
インフラエンジニアは、システムの基盤を作るITエンジニアです。
インフラエンジニアは、開発するシステムが正常に動作するために、どのサーバーを何台手配して、どう設定するかといった知識・技術が必要になります。
家づくりで例えると、大工さんが家を造る上で必要となる材料の手配をする人や、基礎工事を行う基礎屋さんのイメージです。
インフラ設計・構築は、システム設計と同時並行で進めることが多いです。
サーバーの構築に不具合があると、対応に時間を要し、実際の機器での操作ができないためテスト工程の遅れに繋がることもあります。
実際に、私が参画していたプロジェクトでも、インフラ環境の不具合により進捗に影響がでてしまった事例があります。
ITエンジニアの仕事内容・業務内容⑥リリース
システムのテスト完了後、実際にユーザーが利用できる状態にする工程がリリースです。
家づくりで例えると、家を完成させて引き渡しをするイメージです。
開発した新しいシステムへ古いシステムから切り替える場合は、データ移行といった切り替え作業も必要となります。
切替えを行う際は古いシステムを停止する必要があるため、いつ切り替えるかをクライアントと要件定義の段階で決めておきます。
大規模なシステムや日中の停止が難しいシステムの場合は、作業が深夜になることもあります。
切り替え作業の際、筆者はクライアントのオフィスの近くのホテルに泊まることもありました。
ITエンジニアの仕事内容・業務内容⑦運用保守
システム稼働後も安定したサービスを提供するために、質疑応答やメンテナンスをするのが運用保守です。筆者の場合、毎月必ず運用保守状況を報告していました。
家づくりで例えると、定期的に行う住宅点検のイメージです。
システムは、構築して稼働させたらお終いではなく、状況に応じて修正をしたり、トラブル時には早急の対応が必須になります。
ITエンジニアは縁の下の力持ちとしてシステムの運用保守を行います。
トラブル対応以外に、クライアントからの要望への対応も発生します。
例えばクライアントから定期的に「この形式のデータがほしい」、「この操作方法が知りたい」等の依頼・相談を受け、調査を行い回答します。
また、開発したシステムの中に部品としてパッケージ製品を導入している場合は、製品メーカーからバージョンアッププログラムの提供を定期的に受けます。
iPhoneを使っているとiOSの新しいバージョンが提供されるのと同様です。
バージョンアップしないとセキュリティ上の脆弱性が生まれて外部からの攻撃に対して防御できなくなってしまうため、必ずバージョンアップする必要があります。
しかし無暗にバージョンアップしてシステムが止まってしまったら大惨事です。事前に検証した上で、バージョンアップする時期をクライアント合意してから作業します。
ITエンジニアの仕事内容・業務内容⑧バグ修正
システムに不具合(バグ)があった場合に、修正対応を行います。
日々システムを運用をしていると、テストの時には表面化しなかったバグが見つかることがあります。
家づくりで例えると、建築後に見つかった家の不具合を補修工事するイメージです。
バグが見つかった場合は以下の対応を行います。
バグによって誤ったデータが生成されてしまっていた場合、クライアントのビジネスに影響が出てしまいます。 どのようなバグなのかを正確に特定し、影響範囲を確認します。
バグは修正しなければなりません。 プログラムの詳細を調査し、なぜ不具合を起こしているのか原因を突き止めます。
原因を突き止めたら、修正するプログラムを作成します。すぐに修正できる規模のバグもあれば、修正箇所が広い場合は修正プログラムを作るのに1週間以上かかるケースもあります。
バグを修正するプログラムをシステムに反映し、バグを修正します。バグの内容によっては、修正反映するにはシステムを停止させなければならないケースもあります。
ITエンジニアの仕事内容・業務内容⑨機能追加
システムを運用していく中で、機能追加を行うこともあります。
クライアントから新たな要望があった場合や法改正によりシステム改修が必要になることもあるためです。
改修範囲や他のシステムへの影響を調査し、見積書を作成します。
正式に依頼を受けたら、追加したい機能について、要件定義~設計~製造~テスト~リリースの工程を辿ります。
家づくりで例えると、リフォームやリノベーションのイメージです。
法改正については、施行日が決まっているため早急に対応する必要があります。
実際筆者が担当していた自治体のシステムでは、定期的に法改正対応が行われていたため、自社のメンバーと協力しながら対応していました。
ITエンジニアは楽な仕事なのか
ITエンジニアは決して楽な仕事ではありません。
納期が決まっており、その期日に向けて多くの課題を解決しながら高い品質のシステムを提供しなければならない責任が大きい仕事です。
ITエンジニアとして活躍するには、人間力と技術力の両方が必要です。
ITエンジニアには人間力が必要
ITエンジニアは、システムに関わる全ての人達と良好な関係を築き、クライアントに寄り添いながら課題解決に向けて取り組みます。
課題の発生時には冷静に状況を把握して、素早く対応を判断しなければなりません。
ITエンジニアには技術力が必要
IT技術は常に進歩しているため、専門知識やスキルを常に磨き続けていく必要があります。
また、クライアントの業務についても学んでおかないと、相談内容を正しく理解できず、的外れな回答をしてしまい、信頼を得ることが難しくなります。
ITエンジニアは決して楽な仕事ではありませんが、プロジェクトを完遂した時の達成感はとても大きいです。
一つのプロジェクトをやり遂げた後は、自分自身の成長を感じることもできます。
自分が担当したシステムで、クライアントから感謝されたり、多くの人が利用している姿を見たりすると社会貢献していることを実感できる仕事です。
まとめ
以上、ITエンジニアの仕事内容について解説しました。改めてまとめると以下の通りです。
ITエンジニアとはどんな仕事か? | クライアントの要望を把握してシステム設計を行ったり、システム開発プロジェクトが円滑に進むよう管理する。 | |
ITエンジニアの仕事内容 | 要件定義 | クライアントに対してヒアリングや調査を行い、どんなシステムを作るのかを決める。 |
設計 | 新しく開発するシステムの詳細を検討し、設計する。 | |
製造 | 設計書を元に、実際にプログラムを書いてシステムを製造する。 | |
テスト | 開発したシステムが、設計書通りに正常に動作するかを確認する。 | |
リリース | テスト完了後、実際にユーザーが利用できる状態にする。 | |
運用保守 | システム稼働後も安定したサービスを提供するために、クライアントからの問い合わせに対応したり、メンテナンスする。 | |
バグ修正 | テストでは見つけられなかったバグが発生したら調査して修正する。 | |
機能追加 | 新たな機能の追加要望を受けて、要件定義~設計~製造~テスト~リリースする。 |
ITエンジニアとはどんな仕事か? | クライアントの要望を把握してシステム設計を行ったり、システム開発プロジェクトが円滑に進むよう管理する。 | |
ITエンジニアの仕事内容 | 要件定義 | クライアントに対してヒアリングや調査を行い、どんなシステムを作るのかを決める。 |
設計 | 新しく開発するシステムの詳細を検討し、設計する。 | |
製造 | 設計書を元に、実際にプログラムを書いてシステムを製造する。 | |
テスト | 開発したシステムが、設計書通りに正常に動作するかを確認する。 | |
リリース | テスト完了後、実際にユーザーが利用できる状態にする。 | |
運用保守 | システム稼働後も安定したサービスを提供するために、クライアントからの問い合わせに対応したり、メンテナンスする。 | |
バグ修正 | テストでは見つけられなかったバグが発生したら調査して修正する。 | |
機能追加 | 新たな機能の追加要望を受けて、要件定義~設計~製造~テスト~リリースする。 |
ITエンジニアへの転職に興味がある人の参考になれば幸いです。
役割、仕事内容、年収、適性などITエンジニアに関する全般については以下の記事で解説しています。