*システムエンジニア(systems engineer) 略してSE
普通は、プログラマーとしての経験を2~3年間積んで、それからシステムエンジニアになる人が多いです。
したがって、プログラマーの資質 はもちろん必要です。それにプラスして、より広く深い知識が必要になります。
・専門知識
プログラマーは、内部設計(詳細設計)の通りにプログラミングが出来れば、とりあえずこなすことができます。極端な話ですが、一つのプログラミング言語がわかれば、何とかなる場合もあります。
それに対して、システムエンジニアは、顧客の要望を聞いて要求定義を行なったり、外部設計や内部設計を行なわなければなりません。
顧客がどんなシステムを作りたいかで、それに適したプログラミング言語とデータベースの組み合わせは変わります。
もしシステムエンジニアが、一つのプログラミング言語、一つのデータベースについての知識しかなければ、選択肢が一つしかありません。
そのため、システムエンジニアには、より広く深い知識が必要になるのです。
・コミュニケーション力
システムエンジニアは、顧客が何を求めているのか、聞き出す能力が必要になります。
顧客の要望は、必ずしも明確ではない場合があります。漠然としていたり、「業務を改善したい」としか言わないこともあります。
顧客が要望を正確に伝えることは、意外と難しいのです。
そんな時に、システムエンジニアは、業務分析を行なったり、他社の類似したケースから、顧客が本当に求めている機能を推測しなければなりません。
そのため、コミュニケーション力はとても重要です。
・構築力
システムエンジニアは、システムを開発するために、仕様書を書いたり、費用や工数の見積もり、開発スケジュールを考えたりする必要があります。
つまりシステム開発に関する全般的な構築力が必要になるということです。
他にもシステムエンジニアに求められる資質としては、プログラマーをまとめる求心力や、気配りがあります。大規模なシステム開発では、大勢の人が関わるからです。
最近は、IT分野でも様々な技術が登場しているため、一人のシステムエンジニアが、全ての技術をカバーすることは、不可能になっています。
また、業務システムの開発では、顧客の業務に関する深い知識も必要になります。
そのためシステムエンジニアは、得意な専門分野を持って仕事をしていることが多いです。
IT転職や就職で、システムエンジニアを目指す人は、プログラミングだけでなく、幅広い知識を身に付けると役立ちます。