エンジニアと聞くと「プログラミングが得意で一日中パソコンに向かって作業している」、そんなイメージを持つ人は多いのではないだろうか。確かに実際には、パソコンの前で作業することは多いが、常にプログラミングをしているわけではないし、プログラミングの工程は外部企業に委託するケースもある。
システム開発の流れは、上流工程と下流工程の2つに分けられ、プログラミングの工程は下流工程に含まれる。では、上流工程では何をしているのだろうか。
上流工程では、システムを発注した顧客との打ち合わせを通し、システムの仕様を決めていく工程である。どのような機能が必要で、どのような画面をデザインしたらいいのかを、顧客のヒアリングを通して明らかにする。顧客の持っている要求を引き出す役割を果たすのだ。顧客は技術的な専門用語が分からないことが多いので、できる限り理解しやすい言葉で説明したいところ。人と人とのコミュニケーションなので、物事をロジカルに、分かりやすく説明するスキルが必要だ。ヒアリングした内容は、設計書として文章に残し、顧客との合意を図る。
下流工程では、先述した通りプログラミングや、テストを行う。設計書通りにプログラムを作り、正常に動作するか試験をする工程だ。下請け会社に委託する場合は、進捗管理や課題解決の旗振り役をすることになる。
エンジニアには、技術的なスキルアップが欠かせないという事実もあるが、一方で、対人コミュニケーションの機会が多いため、コミュニケーション能力やロジカルシンキングのスキルも身につけたいものだ。