システムエンジニアとプログラマーというのは、混同されやすい職業ですが、それぞれ役割が分かれています。
シンプルに言えば、プログラミングを行うのがプログラマー、どういったプログラムを、どういった方法で開発していくのか、全体の方向性を決めるのがシステムエンジニアです。
プログラマーに『こんなプログラミングをしてください』と指示するのがシステムエンジニアといってもいいかもしれないですね。
システムエンジニアは管理者
システムエンジニアというのは、違う言葉で表現するとプロジェクトマネージャーとも言えます。クライアントと話し合い、希望するシステム要件をヒアリングして設計。仕様が決まったら、開発スケジュールを策定して、プログラマーに開発指示。開発開始後は、進捗管理を行う。
簡単にまとめると、こういった役割を担うことになりますが、実際には、ここに色々な要素が絡んでくるので、業務は複雑になります。
たとえば、クライアントからは、これぐらいの予算・期間(たとえば、3ヶ月2000万円)で開発してほしいという依頼があり、でも、会社の上司からは、最低5ヶ月はほしい、2000万円だと赤字になってしまうので、3200万を請求したいと言われたりするわけです。
こういった時には、クライアントとの折衝、社内でのすりあわせを重ねて、落としどころを探っていくことになります。
一度、決まったとしても、いざ開発がスタートしてから、想定外の問題が起きて、その都度対応するといったことも日常茶飯事です。
その一方で、プログラマーからも、『もうちょっと時間がほしい』とか突き上げられたりして、『何とか頼むよ』となだめたり、では人員を増やすかと会社に掛け合ったりしながら、予定通りに進むようにコントロールするわけです。
結局のところ、システムエンジニアというのは調整役です。開発に関わる人間とコミュニケーションを取って、計画が予定通りに進むように管理するのが最大の役割です。
そのためには、プログラミングに関する専門知識も必要なので、こういった知識にも精通していなければいけませんが、プログラミング自体はシステムエンジニアの役割ではありません。
これがプログラマーとの大きな違いです。プログラマーは実務者、システムエンジニアは管理者ですね。
また、会社によってはシステムエンジニアが、新規開拓営業を任されるケースがあります。この場合、クライアントのニーズをしっかり聴きだして把握・分析する力、課題解決力やプレゼンスキルも求められことになります。
小さな会社だと、責任範囲が曖昧なこともある
社員数が少ない会社だと、専任のプログラマーを雇用していないところもあり、そういった会社では、プログラマーが行うべき実装部分の業務を、システムエンジニアが担うことになります。
このように小さな会社だと、システムエンジニアとプログラマーの違いがはっきりしていない会社が多々あります。また、マルチな人材を求めている企業だと、システムエンジニアの募集としつつ、プログラムの実装業務を任せられることもあります。
そのため、業務内容については事前に入念にチェックすることをオススメします。
収入とキャリアについて
システムエンジニアとプログラマーの収入については、一概にどちらが優遇されているとは言えません。どちらも差が激しく年収200万くらいから1000万くらいまで幅があり、本人の能力次第と言えます。
ですから、入社当時は低年収だったとしても、キャリアを積んでいくことで、収入を上げることは十分に可能です。年収1000万円越えのプログラマーもたくさんいますので、そういった意味ではやりがいのある仕事と言えるでしょう。
なお、ITエンジニアが実務に専念出来るのは30代前半ぐらいまで。早いと35歳、遅くても40歳ぐらいまでに管理者側に回らないと、エンジニアとして働き続けるのは難しくなります。
そういった意味では、プログラマーとして働き始めたとしても、近い将来、システムエンジニアの役割を担えるようになるように、必要なスキルを少しずつ身につけていくことをオススメします。
