今回はシステムエンジニアの仕事を紹介していきたいと思います。
システムエンジニアとは何か?
システムエンジニアはどのような仕事をするか知っていますか?
名前の通りシステムを設計するお仕事です。
では、システムとはなんぞや。
・システムはいくつかの要素によって構成されている
・システムに含まれる全ての要素は、必ず自分以外の要素に対してなんらかの影響を及ぼす
・システムは時間、または時間に写像できる順序集合(全順序集合)に沿って動作する
wikipediaより
wikiの内容だと意味がわかりませんね。私もわかりません。
IT業界でいうシステムとは主に施設の中のシステムを意味することが多いです。
例えばカラオケ店の場合、
- 部屋にお客さんが入っているか管理
- 部屋が清掃中か管理
- フードやドリンクの注文状況
- 入室した人数
- お会計の値段
- 金銭の管理
上記のようなことをパソコン上のソフトで管理することができ、その施設の運用の流れがシステムというと理解しやすいのではないでしょうか。
超簡単にシステムエンジニアを説明すると、「施設を運用するために必要なソフトを設計する人」ということになります。
プログラマは単に「ソフトを作る人」という認識で大丈夫です。
そのため、プログラムを組めないシステムエンジニアも存在します。
システムエンジニアがやること
システムエンジニアは顧客(施設)の運用をスムーズにするためにシステムを作成することを目的としています。
その目的を達成することに必要なことってわかりますか?
顧客(施設)の運用方法理解することです。
例えば図書館のシステムのソフトを作ることになったとしましょう。
〇月×日に本を貸出したとして、△月□日に返却予定だとするとソフト上では貸し出した本に対して貸出状態にして、貸出期限を過ぎた本に対しては返却期限超えの状態にする必要がありますよね。
しかし、図書館で本の貸出ができるのを知らずただ館内で本を読むだけの施設だと思っている人がその図書館のシステムを作成しようとした場合、作成できるでしょうか。
図書館の貸出を知らないままシステムを作ると、貸出機能がない図書館システムが作られてしまいます。
そのような事態にならないために顧客(施設)の運用を学習することを初心者のシステムエンジニアは最初に行う必要があります。
続いて、顧客との会話です。
どのように運用したら運用がスムーズに行えるのかまずシステムエンジニアが考えます。
次に顧客に意見を言う場を設けてもらい、作成した仕様案を顧客に説明します。
顧客からの指摘事項の是正や意見を取り入れた仕様案を再度説明し、合意を得たうえで仕様を纏めプログラマに依頼します。(システムエンジニア本人がプログラムを書くこともあります)
システムエンジニアが辛いと言われる理由
システムエンジニアが辛いという理由は半数は顧客側に、もう半数はシステムエンジニア側にあると思います。
最初にシステムエンジニアが顧客と最初に決めることは何だと思いますか?
納期と予算です。
通常は見積もりした内容を顧客に相談した上で、予算を決めます。
しかし、実際に細かく調査してみたところ予算に収まらない事態が発生することがあります。
そのために作業ボリュームの増加に伴い作業工数が増えます。
1人あたり1か月作業する時間から見積もりを算出しているので同じ予算で作業ボリュームが増えてしまうとその分赤字になってしまう可能性があります。
顧客に予算の交渉にいくのもシステムエンジニアだったりするので(営業の人がいく場合もあり)システムエンジニアは精神的負担が課せられます。
さらに不具合発生時の問い合わせに一番最初にシステムエンジニアに声がかかるのですが、その不具合の頻度が極めて高いです。
オンラインゲームのバージョンアップ時に必ずといっていいほど不具合があるのは同様な理由です。
続いて納期の問題です。
顧客が新規に開店する飲食店で、〇月×日オープンと広告をだしたとします。
そうなると納期を伸ばしたいという意見は許されず残業や徹夜続きで作業する必要があります。
俗に言うデスマーチってやつです。
システムエンジニアの残業が多いのはこのように納期に余裕がないことであり、納期が増える理由としては
- 最初から納期が短い
- 納期付近の顧客からの無茶ぶり
- システムエンジニア側の調査が甘くボリューム増加
- システムエンジニア側の技術不足
- 不具合対応による工数の消化
などがあげられます。
システムエンジニアは設計だけではなくソフトの最終チェックも行う必要があるのでプログラマだけのせいにはできないんですよね。
これ絶対に許されんやつ
こうゆう顧客を大切にしたいです
精神的疲労が多いです