幅広い知識が求められる仕事
システムエンジニアは仕事をするにあたり、様々なプログラミング言語の知識が必要になりますが、それより前にまずシステムエンジニアの仕事内容について大まかに理解しておくために、上流工程と呼ばれる部分における流れを簡単にご紹介します。この工程について見ていくと、システムエンジニアがプログラミング言語についての知識を持っている必要性を理解することができます。
要求分析をする
システムエンジニアがまず行う仕事として、どのようなシステムをこれから開発するのかについてクライアントからヒアリングを行います。相手がシステム開発について詳しく理解をしている人であれば話が早く進む場合もありますが、そうではない場合の方が圧倒的に多いと考えておきましょう。
実際にヒアリングをしてみると、クライアントの話だけではどのようなシステムを作りたいのか具体像が見えてこないこともあります。そのような時こそシステムエンジニアの能力が試される場面です。ヒアリングを通じて絶対に理解しておきたい重要なポイントとしては、開発するシステムにおいてクライアントが何を実現したいかという根幹の部分です。詳細な事柄に関しては、システムエンジニアの方から具体的な提案をして、漠然としていたイメージを固めていけるようサポートします。どれだけ入念にヒアリングをしたとしてもその段階で要望を完全な形にするのは難しいので、後に変更が生じる可能性も念頭においておきましょう。
この段階でクライアントの意思とシステムエンジニアの理解をマッチさせておかないと、後に大幅な変更が生じてしまい、プロジェクト完成までのスケジュールが狂ってしまうことになり、チーム全体の混乱を招きかねません。
要件定義をする
クライアントから聞き出した要件に基づいて、現場でどのようにシステムを開発していくかの具体的な方法を決めて、費用やスケジュールを算出することを要件定義と呼びます。この段階でプログラミングやその他の技術についての知識がないと、現場の実態にそぐわない要件ができてしまい、プロジェクトそのものの成功に大きな影響を与えてしまうため、重要な工程です。
基本設計から詳細設計へ
要件定義が完了したら、今度は基本設計を立てることになります。ソフト面とハード面をどのような構成にしていくのか、どのようにシステムを運用していくのかなどについてまとめていきます。その次に基本設計に基づいてプログラミングにつなげる詳細設計を行うことになります。この段階までは全て企画、設計のみで、実際にプログラミング作業に入るのは下流工程になってからですが、場合によっては詳細設計をプログラマが担当する場合もあります。