システム開発の職種を理解すれば、最適なパートナーが見つかる

システム開発で最適なパートナーを見つける

更新日:2017年09月05日 | 公開日:2017年09月05日

システム開発には、さまざまな角度から多様な専門知識を持ったエンジニアが参加します。
どのようなエンジニアが参加するかは案件によってまったく変わってきます。
こうしたエンジニアの職種について知っておくと、フリーランスエンジニアを含めて最初に適切な外注先選びができる上に、プロジェクト期間中だけでなく、システムが納品され運用・保守体制に移行したあとまで続く、エンジニアとスムーズで有意義な関係が構築しやすくなります。

実のところ、システム開発はコンピュータシステムというイメージとは裏腹に、かなり人間臭いものです。
開発にタッチするエンジニアをよく理解し、適切な付き合い方をすることで、発注者側の抱える業務の問題点を共有してもらいやすくなり、提供されるソリューションの的確度も上がってきます。
良好な関係を気づいていたほうが納品されるシステムの品質も良く、その後のメンテナンスも安心というわけです。

この記事では、そうしたIT系のエンジニアの代表的な職種を整理し、どのような付き合い方をすれば良好な関係が築けるのかのポイントをお伝えします。

ITエンジニアの職種を知ってパートナーシップを築こう

ITエンジニアの職種について学ぶ

それでは、まずITシステム開発に参加する多彩なエンジニアの実態を見ていきましょう。

開発プロジェクト初期にお世話になるエンジニア

セールスエンジニア

セールスエンジニアは発注者が最初に出会うエンジニアだと言えるでしょう。
ITシステムの開発は営業マンだけでは十分な説明ができないというケースがけっこうあります。
セールスエンジニアは営業マンと同行して、お客様にシステムの的確な説明をするという役割と果たします。

IT製品・機器は数多いため、営業だけでは顧客が納得できる詳細な説明をすることがなかなかできません。
セールスエンジニアは営業のサポートを行い、製品・機器の仕様等の技術的な面に関して顧客の疑問を解消できるよう説明を行います。

セールスエンジニアは言葉から営業職が転身するように思いがちですが、実際はもともと技術者であることのほうが多いのです。
発注者が何を求めているかを的確に把握する営業的センスと、技術的な裏付けの両方を持っているので、非常に頼りになります。

ITアーキテクト

アーキテクトとは、もともとアーキテクチャー(建築あるいは構造・構成)を行う人という意味です。
システム開発において、アーキテクチャーとは何を意味するかと言うと、システムを俯瞰したような大きな戦略を指します。
個別の設計図を作る人ではなく、全社的なIT投資の方向性をアドバイスしたりしながら、具体的な戦略に落とし込むことがITアーキテクトの役割です。

ITアーキテクトは、企業の経営上の課題や日常の業務システムが抱える根本的な課題に対して、解決策を検証・提案します。
したがって、発注内容が「日常業務をIT導入で効率化する」といったときには、あまり縁がありません。
全社的なビジネスプロセス・リエンジニアリング(BPR)の推進など、情報技術担当の役員クラスが音頭を取って、大規模な予算を使いながら数年がかりでIT投資を実行する、などの戦略的なプロジェクトで頼りになる存在です。

ITコンサルタント

ITコンサルタントとは、システム開発などのITを切り口にして顧客のビジネス・経営に関わるコンサルテーションを行います。
先程見たITアーキテクトと似ていますが、ITアーキテクトは会社のIT投資の方向性に助言を与えつつ、ITシステムの長期的な戦略立案を行います。
これに対してITコンサルタントは、よりももっと身近な相談を受けて短期、中期の解決案を提示します。

例えば、「現在稼働している業務システムの効率が悪い、どこに問題があるのだろう?」といった、具体的な解決を短期、中期で期待するような相談事は、ITアーキテクトではなく、ITコンサルタントに相談したほうがよいでしょう。

ITコーディネーター

ITコーディネーターは、ITアーキテクトと同じく、経営者の立場に立って会社の長期的なIT戦略をサポートします。
ただし、ITアーキテクトが大企業や情報投資に大きな予算を割いている企業を対象とすることが多いのに対して、ITコーディネーターは、中堅・中小企業に対してのコンサルティング活動をメインにしている点に違いがあります。

セミナー・研修講師活動、執筆活動を行うITコーディネーターも多いので、そうした接点を活用して名刺交換などしておくと、IT関連の課題解決で困ったときに気軽に相談に乗ってくれるでしょう。

開発プロジェクトがスタートしてからお世話になるエンジニア

プロジェクトマネージャー

いったん開発プロジェクトが動き出すと、プロジェクトの命運は基本的にプロジェクトマネージャーに委ねられます。
ここまで紹介した「ITアーキテクト」「ITコンサルタント」「ITコーディネーター」などが、船の進路を決める航海図づくりに貢献したのに対して、プロジェクトマネージャーはでき上がった航海図をもとに、実際に船の舵取りをすることが仕事です。

プロジェクトマネージャーは、チームに与えられた目標を達成するために、人材・資金・設備・物資・スケジュールなどを管理します。
現場で活躍するシステムエンジニアやプログラマ、インフラエンジニア、データベースエンジニア、ネットワークエンジニア、アプリケーションエンジニア、ミドルウェアエンジニアなどは、プロジェクトが始まったらすべてプロジェクトマネージャーの下で統括されます。

システムエンジニア(SE)

システムエンジニアは、システム開発プロジェクトの設計部分を担当します。
最初に見てきた「ITアーキテクト」「ITコンサルタント」「ITコーディネーター」も設計部分を担当しますが、彼らが行うのはIT投資戦略に関する大きな方針決定です。
SEが行う設計とは、文字通り「プログラムの作り方」に落とし込んだレベルの具体的な製品設計です。
具体的には、システムの概要設計、詳細設計、仕様書の作成などを担当します。

SE はプログラマ、インフラエンジニア、データベースエンジニア、ネットワークエンジニア、アプリケーションエンジニア、ミドルウェアエンジニアと技術的な打ち合わせをしながら、発注者側との技術的な窓口としての役割も果たします。

プログラマ

SEとプログラマの違いは、設計をする人か実際にプログラミングをするかの違いです。
よく誤解されるのですが、SEはプログラミング作業をしません。
コンピュータに向かってプログラミング言語で実際に動作するソースコードを書いていくのがプログラマの役割となります。

その意味では、発注者がプログラマと直接やり取りをしてプログラミングの内容を確認したりすることはありません。
ただし、小規模な開発プロジェクトや、外注先の会社そのものが小規模な場合には、SEとプログラマが兼任ということもあります。
大きなプロジェクトや大きな開発会社ではプログラマは、下記のような領域ごとに専門職に分かれています。

発注者が直接「○○エンジニアと話がしたい」ということが必要なケースはほとんどありませんが、プロジェクトの全体会議などで顔を合わせることもあるので、概略だけ押さえておきましょう。

アプリケーションエンジニア

アプリケーションエンジニアは、最終的なエンドユーザーが操作するアプリケーションの開発を行います。
例えば、グループウェアや受発注システムなど日々の業務で立ち上げるアプリケーション部分のプログラミングを行います。

ミドルウェアエンジニア

ミドルウェアとは、OSとアプリケーションの中間に位置するソフトウェアを指します。
OSは例えばLinuxやWindowsのように、パソコンの根本的な機能を提供します。
ITシステムでは、エンドユーザーが使うアプリケーションの一歩手前で普段よく使う定番の部品があります。
建築物で言うと、家の土台部分がOSで、システムキッチンや床暖房器具、浴室のユニットなどがミドルウェアに相当します。
ミドルウェアエンジニアはそうした家に欠かせないパーツを組み立てる専門家の役割を果たします。

サーバーエンジニア

サーバーエンジニアは、webサーバーやファイルサーバーなどの設計・構築・保守を行うエンジニアです。
新規で自社にサーバーを搬入してセッティングしてもらう場合や、IT投資の効率を高めるために仮想化技術を使ってサーバー周りを刷新する場合などにお世話になります。

データベースエンジニア

データベースエンジニアは、自社の顧客情報や商品情報などのデータを格納するデータベースを設計・構築し、保守も担当します。
データベースの性能を最大限引き出すために、パフォーマンスチューニングを行ったり、パフォーマンスを最適化したり、不正アクセスを防ぐためにセキュリティ対策を行ったりします。

ネットワークエンジニア

ネットワークエンジニアは、ファイアウォール、ルータ、スイッチなどのネットワーク機器を適切に接続して、ネットワークサービスを提供します。
比較的地味なエンジニアリング領域でしたが、最近ではサーバーエンジニと同じくIT投資の効率を高めるために仮想化技術を使ってサーバー周りを刷新する場合などでお世話になるケースが増えています。

組込みエンジニア

組込みエンジニアは、社内の業務システムやBtoC向けのwebサービスの構築などではあまりご縁がありません。
家電製品や携帯電話、自動車などのハードウェアに組み込まれたソフトウェア開発を行います。

開発プロジェクト終盤にお世話になるエンジニア

サポートエンジニア

サポートエンジニアは、納品後にシステムを使いこなすためのアドバイスや研修、サポートを行ってくれるエンジニアです。

エンドユーザーからの問い合わせやクレームを受け付けてその場で回答したり、より根本的な問題だと判断した場合には開発部門へ連絡したりして適切な対応をします。

ITインストラクター

ITインストラクターは、社員を対象にワープロソフトや表計算の研修を行ったりするごく初心者向けのコースから、自社が開発したシステムを導入した企業に対して、その使用方法や運用方法、使いこなし方などを教える仕事まで、エンドユーザーがシステムを使いこなせるようにサポートします。

開発プロジェクトの進行中はあまりご縁がありませんが、納品後に短期集中でお世話になるケースが多いでしょう。

セキュリティエンジニア

セキュリティエンジニアは、システムのセキュリティ対策の専門家です。
今日のITシステムでは開発段階でセキュリティ対策を講じておくことが必須と言えますが、納品してすべてが終わりではなく、コンピュータウイルス、不正アクセス、内部犯行など運用するなかでさまざまなセキュリティ的な問題に適切に対応する必要があります。
そうした問題の相談から解決までを担当してくれるのがセキュリティエンジニアです。

SEOエンジニア

システムがBtoC向けのwebサービスなどの場合、一般向けにサービスを告知していく必要があります。
代表的な方法としては、検索エンジンの結果画面に上位表示されやすくする「SEO対策」や、広告料金を払ってユーザーを自社サービスに誘導する「PPC広告」などがあります。
このうち、SEO対策については、専門の技術的な見識が必要となりますので、SEO対策をする担当者もエンジニアとして分類するケースが増えています。

発注者はITエンジニアとどのように付き合うべきか

インターネットでITエンジニアを探す

ここまでたくさんのIT関連の職種を見てきました。
システム開発を外注すると、かなりの種類の専門家が動くことになるということがお分かりいただけたと思います。

それでは次に、発注者の方がこうしたさまざまな種類のエンジニアとどのようにして良い関係を作っていったらよいのか、そのポイントを解説していきます。

コンサルタント系エンジニアとの付き合い方

最初にご紹介した「開発プロジェクト初期にお世話になるエンジニア」は自社の大きなIT戦略を形にしていくときに手助けをしてくれます。
エンジニアと言うと、ディスプレイに向かってソースコードを打ち込んでいくというイメージが強いと思いますが、この段階でお世話になるのは、技術的バックグラウンドをしっかりと持ったコンサルタント系エンジニアです。

こうしたエンジニアと上手に付き合うためには、細かい技術的な内容よりも、会社としてどんなIT戦略を確立していくかについてざっくりした方針を伝えることが大切です。
コンサルタント系エンジニアは、業界ごとのIT戦略のトレンドについて常に最新情報を持っています。

例えば、流通業界であればオムニチャネル確立のノウハウや有名企業の成功例などに精通していますので、他社の動向を知りながら自社の方向性を見つけていく相談などに乗ってくれます。
また、業界だけでなく各ソリューションについての動向にも通じていますので、例えば最新のSFA(セールスフォースオートメーション)で、マーケティングオートメーションツールがどのように評価されているのかなどについて、最新の情報を教えてくれるでしょう。

普段から、こうしたコンサルタント系エンジニアと付き合いを深めていくことで、webや展示会などからだけでは分からない、最新の成功事例/失敗事例や、IT投資のトレンドを把握して判断材料にすることができます。

現場エンジニアとの付き合い方

次にご紹介した「開発プロジェクトがスタートしてからお世話になるエンジニア」は、開発プロジェクトを仕切ることになるプロジェクトマネージャー、システムの設計を行うSE、実際のコーディングを行う各領域のプログラマなど開発現場に携わる人たちです。

システムの設計を行うSEに対しては、コンサルタント系エンジニアと話し合ったような大きな戦略を含みながら、具体的にどんなシステムが組みたいのかを的確に伝えることが大切です。

開発プロジェクトがスタートしてからお世話になるエンジニアのなかで最も重要なのがプロジェクトマネージャー(PM)です。
PMは工事現場の監督のような存在で、発注側窓口と現場のエンジニアの間に立ってプロジェクトを円滑に進めるキーマンです。

PMが果たす役割は、具体的には下記のようになります。

こうした多岐にわたる役割を見てみると、開発プロジェクトを成功させるために、PMと良好な関係を保っておくことがいかに重要かがお分かりいただけると思います。

実際のコーディングを行う各領域のプログラマとの付き合い方は、発注者が特に意識することもありません。
PMとの関係が良好であれば、必要なコミュニケーションはすべて問題なく行われると考えてよいでしょう。

サポート系エンジニアとの付き合い方

開発も終盤を迎え、納品時期が迫ってくると今度は、サポート系エンジニアとの付き合い方が重要になってきます。
サポートエンジニア、ITインストラクターとは納品後、どのようにしてシステムを使いこなしていくかの相談をしていきます。
サポートエンジニア、ITインストラクターは、企業研修などの経験も豊富ですので、システム導入に当たっての研修メニューを考えてもらったり、実際に講師として導入研修を担当してもらったりしてもよいでしょう。

セキュリティエンジニアとは、システムの運用・保守の話を詰めていきます。
どの部分を自社の内部で行い、どの部分をアウトソーシングするかなどについては、セキュリティエンジニアの意見を聞きながらじっくり計画を練り上げることが必要です。

また、集客が課題となるwebサービスなどでは、SEOエンジニアの助けを借りながらサイトの効果的なプロモーション戦略を立てていきます。
最も費用対効果の高い方法についてSEOエンジニアの貴重な経験に基づくアドバイスを引き出しましょう。

PPC広告などの有料の広告戦略はSEOエンジニアとは別の窓口にコンタクトすることが必要なケースもあります。
しかし多くのSEOエンジニアは、広い意味でのSEM(PPC広告戦略などを含むサーチエンジンマーケティング)にも通じていますので、そうした相談も可能です。

エンジニアとの良好な関係構築は納品物の品質向上につながる

エンジニアとの良好な関係を構築する

以上、システム開発のさまざまな職種を概観し、各領域のエンジニアとどのように良好な関係を築いていったらよいかについてのヒントをお伝えしました。

「営業との付き合いは問題なくできるけど、エンジニアとはどのようにコミュニケーションを取ってよいか分からない…」という発注担当者の方が多いのですが、エンジニアとの良好な関係が納品物の品質向上につながっていくことがお分かりいただけたと思います。

ただ、発注側でエンジニアと良好な関係を築いていこうという思いがあっても、開発会社側にそうした意識が希薄だという場合もあります。
本来システム開発とは、純粋に技術的な領域で完結する仕事ではなく、クライアントの抱えている課題に対して、どうやって解決策(ソリューション)を提示できるかが大切です。
エンジニアの側でも、単に技術的なタスクをこなすだけでなく、お客様の問題解決に貢献することのできるシステム開発を常に意識して仕事をすることが求められます。
しかし残念ながら、そうしたエンジニアをきちんと育成している開発会社の数はそれほど多くありません。

優秀なエンジニアが在籍しているかどうかなど、業界の評判などにも精通したアイミツに相談していただければ、常にクライアントの抱える業務の問題点に注意をはらい、IT戦略の方向性をクライアント目線で考えることのできるシステム開発会社をご紹介することができます。
開発会社探しでお困りの際には、ぜひ「アイミツ」にお声をおかけください。

いま知りたいこと
コンシェルジュが解決します!

コンシェルジュサービスは
5万社以上が利用している無料の相談サービスです。

コンシェルジュ

このテーマに関連する優良会社