アプリケーションエンジニアについて徹底解説致します!

アプリケーションエンジニアってどんな仕事? 丁寧にお答えします!

大石 英人

開発エンジニア/Java20年/Java GOLD/リーダー/ボールド歴2年

アプリケーションエンジニアとは、いわゆる「アプリケーションソフトウェア」を作り、メンテナンスすることが仕事のエンジニアです。

アプリケーションソフトウェアとは、特定の目的を持つソフトウェアのことです。このアプリケーションソフトウェアは、単にアプリケーションとかアプリと略されもしますね。

そんなアプリケーションの具体例は、例えば皆さんがいつもお使いのWEBブラウザ、表計算ソフト、ワープロ、スマートフォンで動くスマホアプリ、何かの業務を行うための情報システムなどです。

となると、アプリケーションエンジニアと、システムエンジニアやプログラマとの仕事の違いがよく分からなくなりませんか? これは、IT業界での仕事のやり方や作業分担が分かっていないと、少々混乱するものです。

この記事では、アプリケーションエンジニアがどんな仕事なのか、どういうスキルが求められるかなどを、IT業界に興味がある方向けに、分かりやすくお伝えします。

そして、アプリケーションエンジニアとしての長いキャリアを積んできた筆者の知見も満載です。

目次


1.アプリケーションエンジニアとはどんなエンジニアか

IT業界には、○○エンジニアと呼ばれる職種が数多くあります。アプリケーションエンジニア(application engineer)はその職種の一つです。

この章では、アプリケーションエンジニアが扱うアプリケーションとはそもそも何であるか、アプリケーションエンジニアの仕事の範囲や特徴についてお伝えします。

1-1.アプリケーションソフトウェア全般に関わるエンジニアのこと

アプリケーションエンジニアとは、いわゆるアプリケーション(application、アプリケーションソフトウェアや、単にアプリ(app)とも呼びます)全般に関わるエンジニアのことです。

ここでアプリケーションとは、何かの目的と対象とする人のために作られたソフトウェアです。WEBブラウザや表計算ソフトやワープロソフト、スマホアプリやWEBアプリが代表例ですが、それらの組み合わせである情報システムもアプリケーションなのです。

ですから、広い意味では、趣味でスマホアプリを作って公開している個人もアプリケーションエンジニアです。でも普通は、IT企業に何らかの形で雇用され、仕事としてアプリケーションに関わる人を指します。

1-2.アプリケーションは何かの目的や対象者向けのソフトウェア

IT業界で言うアプリケーションとは、何かの目的のために作られ、対象とする誰かに使ってもらうために作られたソフトウェア全般のことです。アプリケーションは「適用、応用、専念」などを意味する英単語です。

今だと、いわゆる「アプリ」はスマホアプリとほぼイコールです。ですので、アプリケーションエンジニアの仕事は、スマホアプリやそれと連携するWEBアプリを作る仕事だと勘違いされます。

でも、スマホアプリやWEBアプリは、アプリケーションの姿の一つでしかないのです。表計算ソフトも特定業務向けの情報システムも、広い視点で見れば何かのための、誰かのためのアプリケーションなのですから。

さらに、スマホアプリやWEBアプリのような利用者が直接目にするもの以外にもソフトウェアはあります。それらもアプリケーションです。例えばネットワークの向こうのサーバで動く業務ロジック、夜間に動くバッチ処理なども、立派で大事なアプリケーションの一つなのです。

1-2-1.アプリケーションの範囲には基盤的・共通的なものは含まない

前述したアプリケーション以外のソフトウェアも、世の中にはたくさんあります。例として、以下のような基盤的・共通的なソフトウェアがあります。

  • オペレーティングシステムやデバイスドライバ
  • データベースや仮想化環境などのミドルウェア
  • ネットワーク通信用のソフトウェア、通信プロトコルスタック
  • 家電、工作機械やIoT機器の制御を行うための組み込みソフトウェア
  • プログラミング言語のコンパイラやインタプリタ、統合開発環境など

これらの基盤的・共通的なソフトウェアへも、十分な知識や使いこなしのスキルがアプリケーションエンジニアには強く求められますが、彼ら自身で作るものではないのが普通です。

これらのソフトウェアを作るには、対象領域の深い専門知識が求められます。ですから、その道の専門家に任せ、アプリケーションエンジニアはその成果物を使わせてもらうのです。

1-3.仕事の範囲はアプリケーションに関わる全般

アプリケーションエンジニアの仕事は、ここまでお伝えしてきたアプリケーション「全体」に深く関わります。IT業界でよくあるイメージの、パソコンでプログラムをガンガン作る…というものだけでは、決してないのです。

ところで、以下のようなことすべてがアプリケーションエンジニアの仕事の範囲だと言ったら、皆さん驚かれるでしょうか。

  • どんなアプリケーションならお客様のご要望にかなうのか考えること:要件定義
  • アプリケーションをどうやって作ればいいのか考えること:設計
  • アプリケーションをソースコードとして形にすること:製造
  • アプリケーションが意図したとおりに動くか確認すること:テスト
  • アプリケーションをずっとメンテナンスしていくこと:運用・保守

実際に、これらはすべてアプリケーションエンジニアの仕事の範囲です。この範囲の中で、自分が身に着けてきた業務や技術、できること・得意なことを生かして仕事をしていきます。

そして、これらのすべての作業を人並み以上にこなせるアプリケーションエンジニアは、ごく少数です。ですから、他のエンジニアたちとチームを作り、分担・協力し合って進めます。

1-4.仕事の特徴はお客様の業務を強く意識すること

アプリケーションエンジニアの特徴は、仕事をする上で「業務」の観点が強く求められることです。ですから、ITの知識以外にも、身に着けなければならないことは実に多いのです。

アプリケーションは、必ず何らかのターゲット層に向けて作られていて、何らかの業務を行うためにあります。つまり、そのアプリケーションの存在意義が何なのかの理解が大変重要なのです。

例えば、特定の職種・業務向けのスマホアプリなら、特定の業種や会社に属する人がターゲットであり、アプリケーションの存在意義は業務改善や業務の効率化を実現することです。

ですから、アプリケーションがターゲットとする業務やお客様のことを、アプリケーションエンジニア自身が深く分かっていなければ、お客様が満足するものは作れないのです。


2.アプリケーションエンジニアの仕事

アプリケーションを作る時は、いわゆる要件定義、設計、製造、テスト、運用・保守の作業があります。アプリケーションにより作業の比率が違ったり、必要最小限ともします。

しかし、どんなアプリケーションでも、どんな人や会社が作る時でも、必ずこれらの作業を行います。多い少ないはありますが、これらの作業がないアプリケーションはないのです。

この章では、アプリケーションエンジニアの立場では、それぞれの作業でどういうことを行うのかをお伝えします。

2-1.どんなアプリケーションならお客様のご要望にかなうのか考えること:要件定義

どういうアプリケーションを作りましょうか…ということを、そのアプリケーションを使う人やお客様と相談して決めるのが要件定義です。アプリケーションの青写真とも言えます。

要件定義でのアプリケーションエンジニアの仕事は、アプリケーションで行う業務の姿をお客様に提案して合意をすることです。

つまり、どんなアプリケーションならお客様が望む業務を実現できるのか、どうすればアプリケーションを使ってお客様の業務が改善・効率化できるかなど、いろいろと考えて提案することが仕事なのです。

そして、要件定義では後に続く作業のどれにも増して、業務の観点が強く問われます。アプリケーションエンジニアのミッションは、特定業務のスペシャリスト・コンサルタント的な立場で、いかにお客様の業務に関するご要望を満たすか考えることでもあるのです。

そのため、要件定義を行うアプリケーションエンジニアには、ITの知識と同じかそれ以上の水準で、お客様の業務の理解、または業務を理解しようと努力する姿勢が求められます。

2-2.アプリケーションをどうやって作ればいいのか考えること:設計

要件定義でアプリケーションの青写真が決まったなら、それを具体的にどういう画面や処理の集まりとして作っていこうかと考えます。これが設計です。

設計でのアプリケーションエンジニアの仕事は、要件定義で決まった業務の流れを、どんな画面・帳票・データベースなどで実現するかを、業務観点の比率高めで考えることです。

画面やデータベースなどは、専門のエンジニアがプロジェクトにいることがよくあります。例えば、デザイナやデータベース管理者(DBA)などです。でも、それらのエンジニアは業務のことはよく分からないので、アプリケーションエンジニアが導いてあげねばなりません。

もしそういう専門職のエンジニアがプロジェクトにいないなら、アプリケーションエンジニアがそれらの領域の成果物を自分で作ります。ですから、アプリケーションエンジニアは何でも屋の一種とも言えますね。

2-3.アプリケーションをソースコードとして形にすること:製造

設計でどんなアプリケーションを作るか明確にできたなら、設計した内容をソースコードと言う形に変えていきます。これが製造です。

製造でのアプリケーションエンジニアの仕事は、いわゆるプログラマと同じです。ですので、自分でソースコードを作っていく作業が続きます。

でも、ソースコードを作っていく上で、このまま続けるべきか、判断に迷うことがあります。例えば、設計で決めたことが実は作るのが難しいと分かったり、作ったモノを試しに動かしてみたらどうにも使いづらいなぁと感じた時などです。

そういう時、アプリケーションエンジニアはアプリケーションで実現すべき業務に照らし合わせて、製造上の問題・課題にどう対応するか考えます。業務のためなら、設計を一部変えたり、設計自体をやり直すことも選択肢に含めて考えるのが、アプリケーションエンジニアの立場です。

2-4.アプリケーションが意図したとおりに動くか確認すること:テスト

なんとか製造が終わったなら、作ったものが設計したとおりに動くか、実際にプログラムを動かして確認をします。これがテストです。

数あるテストの中でも、アプリケーションエンジニアとしての力量や見識が強く求められるのは、結合テストや総合テストと呼ばれるテストをする時です。

結合テストや総合テストでは、アプリケーションの中にある画面や帳票、バッチ処理などの機能を組み合わせて、要件定義や設計で決めた「業務の流れ」がきちんと動くことを確認します。

ですから、テストシナリオやテストパターンを作る時に、アプリケーションエンジニアの実力が問われます。業務をきちんと理解していなければ、実際に行われる業務のテストが出来ず、アプリケーションに問題が残ったままになりかねないのです。

2-5.アプリケーションをずっとメンテナンスしていくこと:運用・保守

どうにかテストまで終わりました。この後はお客様がアプリケーションを使い始めます。その後に待っているのは、アプリケーションのメンテナンスです。これが運用・保守です。

アプリケーションは一回作ったら終わり、ということはほぼありません。アプリケーションへは機能追加や改修がされますし、使っていて見つかった不具合は直さなければなりませんし、業務に関する制度や法改正(最近、消費税が10%に上がりましたね)への対応などもしなければなりません。

ですから、アプリケーションの寿命が尽きるまで、アプリケーションエンジニアが仕事として運用・保守を続けます。その後は、そのまま運用を終わらせるか、新しいアプリケーションとして作り直して業務を続けることも普通です(これを移行と呼びます)


3.アプリケーションエンジニアに求められるスキル

アプリケーションエンジニアの仕事のイメージが、何となくお分かりいただけたでしょうか。引き続き、アプリケーションエンジニアに求められるスキルをお伝えしていきます。

3-1.業務・業界の知識

実際のところ、IT関連の知識と同じくらい、あるいは作業によりそれ以上に、お客様が行っている業務や、お客様が属する業界の知識がアプリケーションエンジニアには求められます。

業務・業界の知識がなければ、お客様との会話が成り立たず、ぜんぜん仕事になりません。仮に、自分の会社の中向けのアプリケーションを作るとしても、そのアプリケーションを使う人の業務が分かっていなければ、要望に応えられるものは作れません。

そんな業務・業界の知識は、アプリケーションエンジニアとして仕事をしながら、対象としている業界のものをだんだん身に着けていき、いずれは自分の専門分野を持つのが普通です。

ですから、複数の業界を渡り歩いたアプリケーションエンジニアは、実にいろいろなことを実体験として知っています。そして、優秀なアプリケーションエンジニアであるほど、業務・業界の知識や経験が豊富なものです。

3-2.ソフトウェア系スキル(プログラミング言語・フレームワーク・ミドルウェア)

エンジニアのスキルで一番想像しやすいのが、ソフトウェアを作ることに直接関わるものでしょう。プログラミング言語やその上に作られたフレームワーク、データベースなどのミドルウェアのスキルです。

これらはスキルの範囲があまりに広く深く多岐に渡るため、全てのスキルに通じた人はごく少数です。ですから、参加するプロジェクトを自分が持っているスキルで選んだり、または仕事をする中で必要なスキルを都度習得することを前提に、プロジェクトへ参加したりします。

ただ、ソフトウェア系のスキルは、お客様の業務とは直結しないのが普通です。そして、自分が分かるものが一つでもあれば、そこからスキルを広げたり深めたりしやすいです。

ですから、突出したソフトウェアのスキルがなくても、アプリケーションエンジニアの仕事はできます。大事なのは、必要となったスキルを、必要となった時点でいかに素早く身に着けるかなのです。

3-3.インフラ系スキル(OS・ネットワーク・ハードウェア)

アプリケーションは何かのインフラ上で動きます。だからこそ、アプリケーションエンジニアにはOS・ネットワーク・ハードウェアなどのインフラ系スキルも必要となることがあります。

これらのインフラ系スキルがあるならば、アプリケーションの提案のしやすさやトラブル対応のしやすさ・早さ・正確さにも直結します。ですから、インフラにも興味を持ちたいですね。

前述のとおり、アプリケーションエンジニアの立場であれば、インフラ領域に属するそれぞれのものですら、自分で作れてしまうようなスペシャリストである必要はありません。

ですが、自分が担当しているアプリケーションがどういうインフラの上でどう動くのか知っていることは、エンジニアとしての絶対的な実力の差に繋がるものだとも言えます。

3-4.ヒューマンスキル

アプリケーションエンジニアには、ヒューマンスキルが必要不可欠です。チームの中で上手く立ち回るためにも、お客様とずっと仲良く付き合っていくためにも必要なスキルなのです。

ヒューマンスキルを学ぶことには、いいことはたくさんあれども、悪いことは何一つありません。それがアプリケーションエンジニアであるなら、なおさらです。

ヒューマンスキルを上手く使えば、お客様がアプリケーションで本当に実現したいことを要件定義で引き出せるかもしれませんし、問題発生時に穏便に済ませてもらえるかもしれません。アプリケーションエンジニアは、社外の人とお付き合いする機会が多いことも重要ですね。


4.アプリケーションエンジニアと他のIT系職種との違い

アプリケーションエンジニアは、えてして他のIT系職種との違いが分かりづらいものです。この章では、アプリケーションエンジニアと他のいくつかの職種との違いをお伝えします。

4-1.システムエンジニアとの違い

システムエンジニアとアプリケーションエンジニアは、仕事の領域が大きく重なっています。ただし、一般にはシステムエンジニアのほうがより大きな仕事の範囲を指す言葉です。

例えば、システムエンジニアの範囲には、インフラエンジニアやネットワークエンジニアなどの、アプリケーションエンジニアが深く理解していない領域の専門職も含みます。そのような専門職の仕事は、お客様の業務の観点を必要としないことが多いものです。

ですので、システムエンジニアはエンジニアと言う仕事の中にある大きなグループの名前で、アプリケーションエンジニアはさらにその中のグループだ、という理解でもよいでしょう。

関連記事

4-2.プログラマとの違い

プログラマは、プログラミングとテストのプロフェッショナルです。一般的には、設計を基にプログラムを作り、テストまでを行う専門職です。

アプリケーションエンジニアとプログラマは、身に着けているソフトウェア系のスキルの深さがかなり違います。あくまで傾向で言うなら、アプリケーションエンジニアは広く浅く、プログラマは狭く深くです。

仕事の範囲も、プログラマは要件定義をまず行いませんし、設計に関わることも少ないです。トップレベルのプログラマは、アーキテクトの立場でそれらの作業に参加することもあります。しかしそれでも、プログラマの視点・観点は業務寄りではないことが普通です。

そして、日本だと専門職としてのプログラマはあまり見かけません。システムエンジニアの仕事の一つとしてプログラムを作る仕事があります。つまり、システムエンジニアが持つ顔の一つとしてプログラマがある、ということです。

ですから、アプリケーションエンジニアも、ある時はプログラマの仮面をかぶって仕事をします。そういう多面性や融通が利くことが、日本のIT業界のエンジニアの特徴でもあります。

プログラマの仕事内容は、以下の記事も参考にしてください。

関連記事

4-3.【参考】アプリケーションエンジニア試験での定義

10年以上前に、情報処理推進機構(IPA)が「アプリケーションエンジニア試験」という国家試験を実施していました。この試験の対象とする人は、以下とされていました。これだとシステムエンジニアの仕事と区別がつけづらいですね。

https://www.jitec.ipa.go.jp/1_11seido/h13/ae.html

情報システム開発プロジェクトにおいて、プロジェクト計画に基づいて、業務要件分析からシステム設計、プログラム開発、テストまでの一連のプロセスを担当する者

この試験の特徴は実務寄りの問題が多く出題されることでした。試験では業務経歴書の提出が必要でしたし、受験者も現役バリバリのエンジニアや実務経験者でほぼ100%でした。つまり、本当の業務を体験できていなければ、この試験には歯が立たなかったのです。

このアプリケーションエンジニア試験は過去の試験区分です。でも、アプリケーションエンジニアの仕事は今も昔もこの記事でお伝えしてきたとおりのものです。そして、後継の試験であるシステムアーキテクト試験も、テストの傾向は同じなのです。


5.アプリケーションエンジニアとしての心構え

ここまでで、アプリケーションエンジニアの仕事内容や必要とされるスキルと傾向、他のIT系職種との違いについて、お伝えすべきことは大体お伝えできたかと思います。

ここでは、アプリケーションエンジニアとしての心構えについてお伝えします。お客様の業務に主体的に深く関わる立場ですから、普通のエンジニアとは少し違う心構えが必要です。

5-1.業務やお客様に興味を持つ

この記事では「お客様の業務」という言葉をたくさん使ってきました。これを意識することが、アプリケーションエンジニアとして最も大切な心構えであると、私は信じているからです。

業務やお客様に積極的に興味を持つことで、お客様の目線に立った、お客様本位のアプリケーションを作ろうという意識が自然と身に着きます。アプリケーションはエンジニア自身のために作るのではなく、お客様のために作るものなのです。

お客様本位のアプリケーションこそが、真にお客様から評価され、感謝されるものです。そのためには、お客様やお客様の業務に興味を持ち続け、お客様の問題・課題意識を自分のものとしてリアルに感じられるくらいになりたいものです。

5-2.技術はアプリケーションの実現手段でしかない

アプリケーションの目的は、業務を行うこと、業務改善・効率化を実現すること、業務を通じて新しい価値を生み出すこと、です。その目的のために、どんな技術をどう用いるのが最適か、という観点が求められます。

つまり、技術はアプリケーションの実現手段でしかないという意識を、アプリケーションエンジニアは持っています。最初に技術ありきではなく、アプリケーションありきなのです。

これをはき違えているエンジニアがたまにいます。しかし、アプリケーションエンジニアの観点では、流行の技術であることやカッコよさよりも、きちんと作れて動くことを重視します。

もちろん、新しい技術がアプリケーションにとって価値があるなら導入します。でも、何かの技術を単に使いたいからという理由では本末転倒ですし、アプリケーションを使うお客様にも納得はしていただけません。

5-3.身の周りのすべてが学びの場であり先生である

どんなアプリケーションエンジニアでも、最初は初心者であり素人です。では、どうやってアプリケーションエンジニアとして成長するのか。それは、自分の仕事を通じてでしかありえません。

すなわち、身の周りのすべてが学びの場であり、身の周りにいる人全てが先生であるということです。普段仕事をする中で、どれだけ貪欲に業務のことを吸収していくかなのです。

お客様が何の気なしにつぶやいた業務に関する愚痴、ドキュメントの中でふと出会った意味の分からない業界用語、アプリケーションエンジニアの先輩から成果物のレビューを受けた際の指摘事項の観点や本質。

そういう一つ一つの機会をすべて活かして無駄にせず、一歩ずつ確実に成長していくこと。これが、業務観点を重視するアプリケーションエンジニアとして、必ず持っておくべき心構えです。


6.さいごに

この記事でお伝えしてきたのは、アプリケーションエンジニアのラフスケッチです。当然、人によりスキルの向き不向きや経験の違いがあり、すべてを兼ね備えた人はまずいません。

実際には、かなりの割合のエンジニアが、アプリケーションエンジニアと名乗ってはいないものの、アプリケーションエンジニアとして私がお伝えしてきた仕事をしていることでしょう。

そして、自分が目指すエンジニア像に向けて、アプリケーションエンジニアとしての仕事を通じて、少しずつ前進を続けている人がアプリケーション開発の現場には多いかと思います。

もし、この記事を読んでアプリケーションエンジニアを目指してもいいかな?と思っていただけたなら、その興味をずっと失わないでください。そうすれば、周囲からもお客様からも高く評価される、立派なエンジニアに必ずなれますよ。

 

私たちは、全てのエンジニアに市場価値を高め自身の望む理想のキャリアを歩んでいただきたいと考えています。もし、今あなたが転職を検討しているのであればこちらの記事をご一読ください。理想のキャリアを実現するためのヒントが見つかるはずです。

『技術力』と『人間力』を高め市場価値の高いエンジニアを目指しませんか?

私たちは「技術力」だけでなく「人間力」の向上をもって遙かに高い水準の成果を出し、関わる全ての人々に感動を与え続ける集団でありたいと考えています。

高い水準で仕事を進めていただくためにも、弊社では次のような環境を用意しています。

  • 定年までIT業界で働くためのスキル(技術力、人間力)が身につく支援
  • 「給与が上がらない」を解消する6ヶ月に1度の明確な人事評価制度
  • 平均残業時間17時間!毎週の稼動確認を徹底しているから実現できる働きやすい環境

現在、株式会社ボールドでは「キャリア採用」のエントリーを受付中です。

まずは以下のボタンより弊社の紹介をご覧いただき、あなたの望むキャリアビジョンをエントリーフォームより詳しくお聞かせください。

コメント

文系IT未経験歓迎!【21卒対象】新卒採用のエントリーを5/24まで受付中!
文系IT未経験歓迎!【21卒対象】
新卒採用のエントリーを5/24まで受付中!