今回はシステムエンジニアとプログラマーの違いについてご説明いたします。
その前にシステムエンジニアという言葉をしっかりと理解しておく必要があります。
「システムエンジニア」という言葉には広義の意味と狭義の意味があると考えられます。
その違いをまずは確認したいという方はこちらの記事を先にどうぞ。
それを踏まえた上で、下記の内容を読み進めてもらえたらと思います!
システムエンジニア(システム開発の上流工程担当)とプログラマー
まずはざっくりとイメージをするためにこちらの製作スケジュールをご覧ください。
これはとあるシステムを作るスケジュールとなっています。
システムエンジニアは、上の全工程で登場してきます。
お客さんの要望を聞き、システムの要件を決め、システムの設計をして、製作、テスト、納品まで携わっていきます。
プロジェクトの規模によっては多少異なると思いますが、一般的にはそのイメージで良いと思います。
では、プログラマーは何をするのか?
先ほどの図の、この赤い部分でシステムを作る仕事です。
プログラミング言語を使って、システムを作り上げていきます。
ここは非常に専門的ですので、プログラマーという別の人物が登場してくるというわけです。
システムエンジニアはお客さんからのヒアリングもおかない、打ち合わせもしていきます。
プログラマーは基本的にその場には居合わせず、作ることに専念しているということです。
SEとプログラマー、どっちが良いの?
これは好みかと思います。あとは、会社の方針によってプログラマーでもお客さんとの打ち合わせに参加したりもします。
やはりお客さんの生の声を聞いておくと、詳細設計するときにその思いを反映させられるので、より良い設計になったりします。
お客さんと顔をあまり合わせたくないという方もいます。
この辺は会社のスタイルにもよりますが、初めに製作するスタッフがみんな一緒に顔合わせをしたりもします。
依頼する側としては、製作する人の顔を知っておくだけで安心、信用につながっていくので、私はなるべく打ち合わせの場には参加するのがベターだと感じています。
どうしても人を介して情報だけを聞いていると、細かいニーズや将来的な展望が見えてこなかったりします。
打ち合わせの時にボソッと「こういうのも将来的には欲しいなぁと思ってます。」という発言があっても、議事録にメモされなかったらその話はプログラマーに伝わりません。
その願望によって拡張性を持たせた設計にすることもできるので、後々お客さんに喜ばれたりするでしょう。
仕事の垣根は意識しない方がベター
これはどの仕事にも当てはまる話だと思いますが、「これは私の仕事ではない」と口にする人が結構います。
確かにそうです、細分化された仕事は担当が別れ、他のことなど考える余裕がないということもあります。
しかし、きっちり自分の仕事だけをすれば万事OKということはありません。
私は社会人歴8年経ちましたが、「なるべく関わり合いを持って仕事をしていこう」と意識している人がいると、チームの雰囲気がグッと良くなります。
これは論理的に説明できる話ではないので、理解できない人はなかなか理解してくれませんが、その良い雰囲気が良い成果物を作ることに繋がります。
ぜひ、自分はSE、自分はプログラマーと固定化せず、チームメンバーを意識しながら仕事をやっていって欲しいなと思います。