目に見えないものを作りあげる
システムエンジニアとは
システムエンジニアは、お客様の要望に従って業務が円滑に進むように社内や組織の中にシステムを構築し、ビジネスを改善する仕事です。そのため、システムエンジニアは様々な作業をネットワークで繋がれた複数台のコンピュータで実現させなければなりません。なお、「システム」とは、「コンピュータでお客様の仕事を実現する仕組み」のことをいいます。これを実現するための技術者を「システムエンジニア」と呼びます。
システムエンジニアは、あくまでシステムの「設計」をするのが仕事です。かたやプログラマは、システムエンジニアが作成した設計に基いてプログラミングをするのが仕事です。建築の世界でいうと、システムエンジニアは設計士、プログラマは大工といえます。
具体的な仕事内容
お客様がビジネスにおいて何を課題としているのか、それを解決するためにどのようなシステムを望んでいるのかをお客様を含めエンジニアが一丸となって検討します。現在の仕事の進め方などを細かくヒアリングし、システムにどのような機能を持たせなければならないかを決めていきます。いわゆる業務分析と要件定義です。これが決まれば、具体的に開発をするための設計書を作成します。システムを設計していくためには、機能を実現するソフトウェアのほか、ソフトウェアが動作するハードウェアについても選定していかなければなりません。複数台のコンピュータで使用するシステムであれば、ネットワークの設計も必要になります。
次に、料金の見積もりをします。要件定義や基本設計を元に、どれくらいのエンジニアが必要なのか、サーバなどのハードウェアはどれくらい必要なのかを見積もり、お客様に提示します。もし、予算に納まらなければ機能を削るなどの措置をすることもあります。
プログラマと品質のコントロールも
システムエンジニアが作った設計書に基いて、実際の開発を進めていくのはプログラマです。どんなに詳細な設計書を作ったとしても全ての意思疎通ができるとは限りません。当然、プログラマからの質問や要望などもあります。どんな仕事も納期は必ずありますから、納期に遅れが生じないようプログラマの進捗管理をしなければなりません。また、できあがったシステムの品質についてもシステムエンジニアが責任を持たなければなりません。プログラマやテスターとともにテストを行って不具合がないことを確認するのも大切な仕事です。納品した後に不具合が発生することもあります。お客様が実際に使いはじめると使い勝手が悪かったり、特定の操作で不具合が出ることもあります。システムエンジニアは、そのようなアクシデントにも対応しなければなりません。
予算と進捗のマネジメント
システムエンジニアは、一つのプロジェクトにおいて予算や納期のマネジメントをしなければなりません。時にはプログラマに教育や指導を行うこともあります。このため、エンジニアとしての知識以外にも要求される能力はたくさんあります。例えば、「伝える力」「観察力」「ロジカルシンキング」などの能力が必要です。