エンジニアになりたいが、種類が多いためどのエンジニアを目指したらいいのかわからないと悩まれてはいませんか。なりたいエンジニアをはっきりさせないままエンジニアの勉強をしていても、エンジニアになれない可能性があります。
なぜなら、エンジニアの種類によって仕事内容や必要なスキルが異なるからです。そこで本記事では、エンジニアの種類やそれぞれの仕事内容などを詳しく解説します。
開発するシステムは自社か他社か
ITエンジニアは、自社システムを担当する「自社開発エンジニア」と他社システムを担当する「受託開発エンジニア」の2種類に分けられます。どちらもシステムを開発する点では同じですが、手順や特徴は同じではありません。
自社システムを担当する「自社開発エンジニア」
自社開発エンジニアは、所属する会社のシステムを開発するエンジニアです。開発にくわえて、どのようなシステムが流行しているのか分析したり、需要のあるシステムの調査をしたりするのも仕事です。あらかじめ、開発したいシステムについて詳細まで決めているため、ウォーターフォール開発という手法が使われています。
デメリットとしては、同じ系統のシステムばかりを開発することになるかもしれない点です。活動の幅を広げるために転職を考えている人にとっては、不利に働く恐れがあります。
一方、自社内で開発を行うため、スケジュールの調整がしやすかったり、システムに関する理解度が深かったりする点がメリットです。開発したい分野が決まっている人、転職の予定がない人におすすめです。
他社システムを担当する「受託開発エンジニア」
受託開発エンジニアは、他社のシステムを開発するエンジニアです。顧客へのヒアリングや見積もりの算出なども業務に含まれます。そのため、顧客の意見をその都度反映させられるアジャイル開発という手法が使われることが多いです。
なお、受託開発の世界では多重請負が基本なので、依頼主から離れるほど給与が減るという点がデメリットになります。しかし、さまざまな分野の開発を経験できたり案件が多かったりする点はメリットです。このような背景から、経験を積みたい人や安定して働きたい人におすすめの職種です。
どんな仕事をメインにしているのか
ITエンジニアは、どのような仕事をメインにしているかによっても分類できます。やってみたい仕事が明確な場合は、該当の節をご覧ください。
システム開発
顧客の要望に合ったシステムを開発するエンジニアです。ユーザーが使いやすいシステムにするための能力や、ユーザーから要望を聞き出すためのコミュニケーション能力などが求められます。
なお、どのようなシステムを開発するかによって名前が変わります。たとえば、アプリケーションを開発するアプリケーションエンジニアやAIやブロックチェーンを開発するAIエンジニアやブロックチェーンエンジニアなどです。
Web開発・制作
Webに関係するものを開発するエンジニアです。たとえば、WebサイトやWebアプリケーションが挙げられます。デザインを担当するエンジニアをWebデザイナーと呼び、機能を開発するエンジニアをWeb開発エンジニアと呼ぶことが多いです。
なお、Web開発エンジニアには、フロントエンドエンジニアとバックエンドエンジニアが存在します。主な担当は、フロントエンジニアがUI・UX、バックエンドエンジニアがサーバーです。
ITインフラ構築
ITインフラ構築を行うエンジニアを、インフラエンジニアと呼びます。ITインフラとは、IT業界の人々が業務をこなせるようにするための基盤となるものです。たとえば、サーバーやネットワークが挙げられます。
仕組みとしては、アプリケーションやシステムなどはITインフラのうえで成り立っているというイメージです。そのため、IT業界ではITインフラが整っていないと業務に支障をきたします。
なお、インフラエンジニアは担当する場所ごとに、サーバーエンジニアやネットワークエンジニアなどに分けられます。
プロジェクト管理
システム開発を円滑に進める役割を持つエンジニアです。たとえば、開発チームをまとめたり、プロジェクトのスケジュールを調整したりします。場合によっては、顧客との打ち合わせなども行うでしょう。
プログラミングコードを書くといった、開発作業にはそれほど関わりません。そのため、問題解決能力やコミュニケーション能力の方が重視されます。
チームのなかのどのポジションに属しているのか
システム開発などでは、エンジニアが複数人集まってチームを組むことがあります。チーム内には役職があり、全員が同じ業務をこなすわけではありません。そこでこの章では、開発チームにはどのようなポジションがあるのかを解説します。
システムコンサルタント
システムコンサルタントとは、企業が解決すべき問題や課題を明確にして解決する方法を導き出す役職です。システムコンサルタントが明確にした問題や課題をもとに、どういったシステムが開発されるのかが決まることもあります。
そのため、問題解決能力や状況を分析する能力、プレゼンテーションの能力などが必要です。開発において上流工程に位置するため、年収が高い傾向にあります。
プロジェクトマネージャー
プロジェクトマネージャーとは、開発プロジェクト全体をまとめて管理する役職です。たとえば、関わっているエンジニアの数や開発のスケジュール、進捗、コスト、顧客の状態の把握などを管理します。
このように、開発のなかで何が起きているかを把握する必要があるため、マネジメント能力やプログラミング能力にくわえて広い視野も必要です。開発の現場に関わることはありませんが、開発しているシステムや使用しているプログラミング言語についての知識も欠かせません。
プロジェクトリーダー
プロジェクトリーダーとは、開発チームメンバーをまとめる役職です。プロジェクトマネージャーが社外との繋がりが主であるのに対し、プロジェクトリーダーは社内との繋がりが主になります。
自らも開発に参加しつつ、プロジェクトマネージャーと協力して開発をスムーズに進行させる重要な役職です。プロジェクトマネージャーと兼任することも珍しくありません。
開発チームメンバーをまとめるマネジメント能力やトラブルが起きた際の問題解決能力、開発チームメンバーとのコミュニケーション能力が必要です。
システムエンジニア
システムエンジニアは、システムの要件定義や設計を担当する役職です。予算を参考にして、顧客の要望を要件定義や設計に落とし込まないといけません。
また、要件定義や設計を正確にプログラマーに伝える必要があります。そのため、ヒアリング能力やコミュニケーション能力が必須です。開発に関わることも多いため、プログラミングの能力も欠かせません。
プログラマー
プログラマーはシステムエンジニアが作った要件定義や設計をもとに、実際にプログラミングコードを書いて開発する役職です。その現場で用いられているプログラミング言語やフレームワークを扱う技術が必要になります。
なお、プログラマーは何を開発するかによって分類されます。たとえば、Web関係の開発を行うWebプログラマー、アプリケーションを開発するアプリケーションプログラマー、大規模な開発を行う汎用系プログラマーなどです。
まとめ
エンジニアにはさまざまな種類があります。どこのシステムを開発するか、どんな種類の開発をするか、どのポジションに属しているかで分類することが可能です。
それぞれ業務内容や特徴、向いている人が異なります。そのため、自分が何をしたいかによってなりたいエンジニアを決めるのもひとつの方法です。
したがって、これからエンジニアを目指す人は、何をどんな方法で開発したいのかを明確にしてください。