市川斉の働き方を考える

市川斉が次世代の働き方を考えるブログです

システムエンジニアとプログラマの違いって何?

2021-08-11 06:30:20 | ビジネス
システムエンジニアはSEと呼ばれており、プログラムやソフトウェアの仕様書を作ることが主な仕事になります。SEの仕事内容はソフトウェア開発をする現場では要件定義を設定して基本設計を行い、詳細設計とテストを経て実行に移すことをするのです。またシステム化されたネットワークの保守や点検を日常的に行うことも、システムエンジニアの大切な仕事となります。

仕事によっては業務内容が異なりますので、SEの仕事内容はヒアリングとフレームワークを作ることから始めるパターンが多いです。SEは要望を整理伝達しながら社内の調整役になることもあり、業務が効率化するための仕組みをネットワーク上だけではなく社内システムを含めて考える必要もあります。例えば運送会社ならば効率的な配車を行い、運送事故を未然に防いで荷物を効率的に積載する方法などを考えなくてはなりません。コンピューター上だけでの処理では業務に支障をきたすために、現場をある程度知っておいたり情報共有をする必要があるのです。SEに必要なスキルはプログラムの理解だけではなく、こうした情報の整理やヒアリングも重要な要素になります。

要件定義は社内に常駐するシステムエンジニアならば、その都度関係部署に問い合わせをしたり自身で必要な情報を集めても構いません。しかし外注など外部からの依頼によって仕事を進める場合には、要件定義が欠かせません。顧客の求めるシステムの規模レベルの設定があり、開発に必要な期間や費用を算出した上で見積もりを出さなくてはいけないからです。この見積もりが出来上がった段階で先方と相談を行い、契約後には本格的に次の段階に仕事が進みます。

顧客の要望を実現するためには設計を行わなくてはいけませんので、要件定義をベースにしてシステムの詳細を作ってゆくための設計図を作らなければいけません。自分で担う部分もありますし、大規模なシステムの場合には専門のプログラマーに仕事を振り分けてゆきます。このような仕事の管理やスケジュール調整もシステムエンジニアが兼務することが多くあり、監督官としての役割もあるのです。仕事によっては領域があいまいになりますが、現在はディレクターやマネージャーと呼んで自身はプログラムの実作業を行わないケースも少なくありません。またプログラマーからそのような監督的な立ち位置のシステムエンジニアやディレクターになる道もあり、現場を知っているからこそ発注がしやすいなどのメリットを活用してキャリアアップに繋げる流れもあるようです。

システムが完成したらテストを繰り返し、現場に導入してから不都合が起きないかの検証作業が始まります。障害が発生した時には原因の特定を行い、解決と運用を出来る状態を維持してゆくのです。日常的に発生するバグなどを取り除き、業務の効率化を目指してゆきます。このように技術的な能力だけではなくマネジメント能力や、コミュニケーション能力も重要な要素になるのです。
一方でプログラマーの仕事は専門職でありPGの仕事内容は、システムエンジニアが作った仕様書が動くようにプログラムを作ることが主な仕事になります。PGに必要なスキルはエンジニアの能力であり、具体的に言えばプログラム言語に精通しており、確実なコードを書いて整理しやすいような状態にすることが望ましいのです。PGはシステムを組むことが仕事でありますので、全体を通した時に分かりやすい言語を書いて管理しやすくするということが大切になります。専門職ですがチームプレーになりますので、自分しか分からないようなスパゲティコードでは他の人に迷惑をかけてしまうことになりかねません。だからこそ日々仕事の中で勉強を行い、最新のトレンドに対してもアンテナを張ってゆかなければならないという仕事上の辛さもあります。

SEとPGの違いは専門職であるか全体をマネジメントするかの違いになりますが、客先常駐や自社開発企業で雇用されているケースなどによって条件は様々です。自社でのシステムエンジニア雇用の場合にはこのような開発は基本的には行わず、保守点検がメインの仕事になるケースも少なくありません。例えば工場などの生産現場で一括してシステムを導入した後には、そのシステムを円滑に保守点検する社員が必要になります。外部委託で製作してから社内で日常メンテナンスを行い、また改修になった時には外部委託するなどを流れで運用されるケースも多々あるのです。

SEとPGの将来性はコンピューターによるシステムがなくなることはなく、今後はIOTなどパソコンやネットワーク機器だけではなく、自動制御による運搬システムの構築などがインフラになってゆくことが予想されております。そのためにはプログラマーやシステムエンジニアの能力は不可欠であり、今後も必要とされることが同時に予想されているのです。より複雑化したコードや設計になりますので、現在以上に就業のためのスキルと努力が求められることにもなります。