2015/05/29

【意外と知らない】システムエンジニアとは









◇「私の職業はシステムエンジニアです。」

そう言われて皆さんはどう思うでしょうか?

「なんか頭良さそう!」
「ITか~大変そう。」
「収入安定してなさそう・・・」

などなど思うことはさまざまだと思いますが、行き着く先は

「で、なにやってるの??」

となりますよね。

今回は私の職業でもあるシステムエンジニアとは何かを独断と偏見でご説明したいと思います。


◇そもそもエンジニアってなに?

エンジニアを日本語にすると「技術者」となります。

例えば、大工さんの言い方を変えれば「家エンジニア」ですね。

まあ、そんな呼び方しませんけど。

この「家エンジニア」という括りで考えた場合、

・家のデザインを考える建築家
・工務店で働いている人
・大手ハウスメーカーなどで耐震性など研究している人

この人たちみんな「家エンジニア」となりますよね。

それと同じようにシステムエンジニアという職業に関しても
実際やっていることはさまざまです。

・システムを設計する人
・システムのプログラムをコーディングする(書く)人
・できたシステムをテストする人

 などなど。

まあ、みんなシステムエンジニアです。
※反対意見もあるかもしれませんが、それは後半で書きます。



システムに関わっている技術者がシステムエンジニアなのか~。

へぇ~。


「ん??システムってそもそも何なのよ!?」


そうなんです、「システム」って言葉がまたすごく曖昧なんです。


◇システムの目的と自分の役割

ここでいう、システムというのはコンピューターを使って、
構築された機能の集合体という意味になります。

わかりにくいのでスーパーのレジに例えると、


・バーコードを読み取って、商品の値段を表示する機能。
・読み取った商品の値段を合計する機能。
・預かったお金からお釣りを計算する機能。


これだけでは勿論ありませんが、
上記に挙げたような機能を合わせてスーパーのレジとなります。


そしてこれが「スーパーのレジシステム」というわけです。


コンピューターを使ったシステムは今の世の中、たくさんあります。


どのシステムも何らかの目的があって存在しています。
(そのはず。。。)


今まで人間がやっていた作業をコンピューターに命令して任せる。

その命令に使われるのがプログラミング言語というわけです。

ある意味では、システムエンジニアは人間とコンピューターの通訳と言っても良いでしょう。


但し、システムを作ると言ってもプログラミング言語を書く人だけがシステムエンジニアではありません。

前述の通り、
システムエンジニアと言ってもやっていることはさまざまなので各々の役割が決まっています。

というわけで、システムエンジニアと名乗る人には
「どんなシステムを作っていて、どういう役割を担当しているのか?」
を聞いていてみてください。


これがしっかり答えられないシステムエンジニアはクズです。
(あ、言い過ぎた笑)

自分がシステムエンジニアなのでわかるのですが、日常の作業を淡々とこなしているだけだと、自分が何をやっているのかわからなくなると思います。

もっと視野を広げて

「これは何のためのシステムで自分はどの工程を任されているのか?」

これを常に意識しておく必要があります。


意外と忘れてしまっている人、多いんですよね。。。


◇システムエンジニアの役割と仕事の内容

今までの説明でシステムエンジニアとは何か、
なんとなーくわかって頂けたのではないでしょうか?

では、もっと深くシステムエンジニアを知ってもらおうと思います。

何度も述べていますが、システムエンジニアの役割はさまざまです。

まずはシステムを作るにはどんな工程があるのかご説明します。

①【受注】顧客からこんなシステムが作って!という注文がくる。

②【設計】細かい要望を聞いて設計書を作る。

③【インフラ整備】システムで必要な環境を整える。

④【製造】設計書の通り、プログラミングする。

⑤【テスト】システムが設計書通りにちゃんと動くか確認する。

⑥【リリース】システムを顧客が使えるようにセットアップする。

⑦【運用支援】操作の不明点を聞いて対応したり、追加要望などを聞く。アウトプット(計算結果や出力媒体)確認の為の支援をしたりする。

⑧【システム改修】顧客の要望に応えて機能の追加をしたり、不具合(バグ)を修正したりする。

※【】は私が一般と思っている呼び方。


まあ、ざっとこんな感じです。
ちなみに⑦⑧は作ったあとのサポートみたいな感じですね。
これも思ってる以上に重要な工程です。

そして、携わる「人」の役割としては以下の通りです。

・【プロジェクトマネージャ】作業進捗を管理する人

・【システムエンジニア】顧客との窓口になる人、実際作る人への橋渡し役。
 (要望を聞いたり、方向性がズレていないか確認したり。)

・【プログラマ】実際作る人

・【テスター】テストする人

・【ヘルプデスク】リリース後の運用支援をする人

※【】は私が一般と思っている呼び方。


ここで一つ疑問が生まれると思います。

「システムエンジニアって顧客の窓口やってる人だけじゃん!!」

答えはNo!です。(と私は思っています。)

前述のとおり、システムに関わる技術者が広い意味での「システムエンジニア」だからです。

まあ、上記に挙げた「一般的な呼び方」が正しくない!という指摘もあるかもしれませんが、

システムを作る上もっとも重要なのは

「いかに顧客が必要とするシステムを提供するか。」

ということだと考えています。

どういうことかというと作業進捗を管理する人も実際作る人もテストする人も
みんな顧客の要望を理解して役割を全うする必要があるのです。

「QCD」という言葉をご存じでしょうか?

・Q→品質
・C→コスト
・D→納期

言い方を変えると

「顧客の予算内で満足するシステムを必要な時に提供する。」

どんな仕事でも当たり前に意識しないといけないことですね。


◇システムエンジニアの将来と今後

まあ、これは私の予想なので実際どうなるかはわかりませんが、
今後、今のシステムエンジニアの仕事は少なくなると思います。

少なくならなければ、システムエンジニアが存在している意味はないと思います。

その理由は、仕事をコンピュータに任せる為にシステムエンジニアが存在しているからです。

もちろん既存システムの改修は今後も発生すると思いますが、ゼロから作るよりは
確実に少ない人数で対応が可能なはずです。

自分で自分の首を絞めている・・・

なんか悲しいですね。

しかし、もうそんなことはシステムエンジニアの大半は気づいています。


システムエンジニアを仕事とする「個人」で考えた場合は、営業の能力だったり、
経営のノウハウを学び、

「新しいなにか」

を見つけなければ飯が食えない時代になっていると思います。

また、業界全体で考えると既存のシステムをいかに活用するか、パワーアップしていくか
という状態ではないでしょうか。

「システムを使うユーザーへの教育」という点でも力を注ぐ必要があると思います。

ポジティブに考えれば、なんでもできる職業でもあります。

「こういうことを便利にしたい。」
「もっとこうなればいいのに。」

という「気づき」が原動力となる仕事です。

私はこれからもこの仕事に誇りをもって、従事していきたいと思います。