こんにちは。日々プログラマーとして仕事と趣味に全力投球する男・中山である。SEについて皆さんどんなイメージをもっているだろうか。調べてみると、多くの人は「あまり寝てなくて不健康そう」「ほぼ休日がなくてキツイ仕事」「深夜パソコンと向き合って残業をこなしている」「効率優先で食事はいつもカップ麺」「吉〇製作所みたいな環境で働いている」などのイメージをもっているようだ。だが、SEの仕事は顧客からヒアリングをしてシステム設計をするのがメインの仕事である。そこで、プログラマーとシステムエンジニア(SE)の違いをこの私がわかりやすく解説してみた。
システムエンジニア(SE)とは
システムエンジニア(SE)は、顧客の要望に沿って情報システムのフレームワーク設計をマネージメントする上流階層である。マネージメントをしなければならないから予算管理はもちろん、人員や進捗状況の管理をしなければならない。請け負った仕事内容によってマネージメント工程は異なるが、「顧客システムに対する要件定義・顧客要求分析」「システム基本設計」「システム詳細設計」「システムテスト運用」の工程を担当するのである。
それに対してプログラマーは、システムエンジニア(SE)が作成したマネージメント工程にしたがってプログラムを入力していくのだ。つまり、システムエンジニア(SE)の指示に従うのがプログラマーの役目なのである。
システムエンジニア(SE)になるには?
システムエンジニア(SE)は、顧客に対してどのようなシステムを構築していくかヒアリングしなければならない。そのためには専門的なノウハウであるプログラムなどの技術を知る必要がある。だがシステムエンジニア(SE)に要求される能力は技術的な能力よりも、チームを最大限に活かすマネージメント能力である。マネージメント能力を得るには、プログラマーがもつ技術的概念より抽象的な概念をもつ必要がある。抽象的な概念がないと、チーム内のプログラマーをまとめてより効率よいシステム開発ができないからである。さらに、それだけでなく顧客に対して「こうしたらもっといいシステムに仕上がる」と提案をしなければならない。顧客の要望だけでなく、能動的に提案できる柔軟な発想は抽象的な概念をもっていないとシステムエンジニア(SE)として力を発揮できないのだ。システムエンジニア(SE)になるには、独学でプログラミングを勉強して開発現場でマネージメントを任されるプログラマーになるか、システムエンジニア(SE)に必要な知識や技術を教えてくれる学校に通い、講師からシステムエンジニア(SE)としての管理能力を身に着けるかである。多くの企業では、顧客にシステムの提案を実践できるシステムエンジニア(SE)を求めている。短期間でシステムエンジニア(SE)になりたければ専門のスクールに通うことをすすめる。