未経験からのシステムエンジニア

新しいシステムを実現する

簡単に言ってしまえば、システムエンジニアの仕事は「クライアントの望むシステムを作り、運用すること」です。そのためには「要望の聞き取り」「システムの設計」「プログラミング」「システムの保守」など様々な作業が必要です。これらを整理すると、以下のような三つの段階(フェーズ)に分けられます。

新しいシステムを実現する

ヒアリングに基づいてシステムを設計

新しいシステムを実現する

どんなシステムを設計すれば良いかを考えるためには、まずクライアント(システムのユーザー)が望んでいることを正確に把握しなくてはいけません。要件の分析や定義と言われることもありますが、このフェーズでのポイントは、「すべてのクライアントが必ずしもシステムに対する深い知識を持っているわけではない」ということです。あなたにとっては当たり前のことや常識レベルの知識でも、相手にとっては未知のことかもしれません。そのような場合には専門的な用語や考え方を使わずうまく相手に説明し、そして相手からも要望を聞き出す能力が必要となります。
一通り相手の要望がわかったら、次はそれを実現するためのシステムを考えます。最初に大まかな基本設計をしてしまい、そこから細部を詰めていくのが一般的なやり方です。

設計から外れないようにプログラミング

システム設計が終わったところでプログラミングのフェーズに移ります。前のフェーズが「新築の家の設計図を作るまで」とすれば、ここは「現場で家を建てる」フェーズです。クライアントの思い描いた「理想」を正しく設計図に落とし込めれば、あとはそれに従って作業するだけです。しかし、現実には相手の言葉の意味を間違えて受け取ってしまうこともあれば、すべての要望を実現するのが極端に難しい場合もあり、正しい設計図はなかなか書けません。
また、プログラムは一見正常に動いているように見えても、特定の条件でおかしな動きをすることがあります。テストを繰り返してそうした問題を見つけ出し、修正するのもこのフェーズの重要な作業です。どうしても解決できない場合には、一歩戻って設計の見直しが必要になることもあります。いろいろと大変なことも多いのですが、「新たなシステムを作っている」という大きな達成感が得られるフェーズでもあります。

運用中のシステムを管理

完成したシステムをクライアントの会社へ導入しても、システムエンジニアの仕事はまだ終わりません。念入りにテストをしても実際にそのシステムが使われてから初めて見つかる問題もありますし、改良すべき点に気付くこともあります。また、そのシステムが正常に動くように点検・整備し、定期的にバックアップを取るといった作業も必要です。
以上がシステムエンジニアの仕事のフェーズとなります。最初から最後まですべてのフェーズをこなす場合もあれば、特定のフェーズだけを任せられる場合もありますから、今の時点で「とてもすべてはできそうにない」と心配する必要はありません。

あわせて読みたい記事