どうも!
今回は私がSEの時の業務内容について話していきたいと思います。
前提として、SEの業務は人によってかなり振れ幅がありますので、ご理解ください。
SEの業務・概要
SEとして主に行っていたのは、業務システムの開発となります。
業務システムは、例えば銀行員さんがお客さんの情報を管理するためのシステムとか、保険会社の社員さんが使うシステムとか、所謂私たち一般消費者からは見えないところで使っているシステムを指します。
クックパッドとかLINEとか私たちが使うようなものはWebエンジニアと呼ばれる、
もっと最新技術をゴリゴリ使っているような人たちが作っています。世間一般的なエンジニアのイメージはおそらくこちらの職になります。
金融業界や保険業界など、お金や個人情報が絡んでくるシステムだと、結構厳格に作り込んだりします。
具体的に言うと、作り始める前のシステムの仕様を決めるための会議を何回も行ったり、設計書の書き方、プログラムの書き方等、開発現場によってはガチガチに何もかも決められていることもあります。
逆に、商品管理など比較的流出したときのリスクが低い、そこまで厳格でないシステムだと、エンジニアに作り方を一任することもあったりします。
実際仕事をする身からすると、決められている方が楽です。ただエンジニアとしてはあまり力はつかないんじゃないかなと思います。何をやるか1から10まで決められていたらそりゃ思考力が育ちませんからね。
SEの業務・詳細
システム開発では仕事の流れがどの現場もある程度決まっていて、要件定義、設計、製造、テスト、リリースの順番で行われます。ざっくり説明していきます。
要件定義
要件定義では、こういうシステムを作りたい、システムをこんなふうに改善したい、といった要望に対して、どういったものを作るか、またはどういった改善を施すか、いわゆるアプローチを決めていきます。
そうして決まった、作るべきシステムがどのような動きをするのかを定義します。
基本的にプロジェクトマネージャとかの偉い人たちや歴戦のエンジニアが参加します。
たまにひよっこも駆り出されたりします。
設計
次の設計では、要件定義を元にどんなシステムとなるかを考え、設計書を作ったり既存の設計書を修正したりします。
また、設計には段階があり、主に日本語ベースで記載される基本設計と、プログラム寄りの記載となる詳細設計に分かれています。外部設計と内部設計、という呼び方もします。
ここの呼称は現場によって変わってきます。エンジニアは配属される現場によって呼び方を変える必要があります。
郷に入れば郷に従えというやつで、既にいるエンジニアに矯正されます。正直面倒です。
僕「そういえば基本設計書ってどのフォルダにありますか?」
先住民「外部設計書ならこのフォルダにあります」
↑ここではこのルールに従ってもらおうか、感がヒシヒシ伝わってきてしんどかったです。
製造
製造では、前述の設計段階で作った設計書を元に、プログラムを組んで実際にシステムを作り上げていきます。
この際、書き方の規約がある場所とない場所があり、規約がガチガチに決められていると書くのはとても楽になります。工夫の余地がないので、人によっては物足りないと感じることもあります。
私は自分で書き上げたいタイプなので自由に書きたかったのですが、まあそこは従わないと普通にどつかれるので、ちゃんと従っていました。
テスト
ソースコードを書いて作り上げたプログラムがバグなしに正常に動くか、設計の仕様通りに動くかどうかをテストします。
いくつか種類があり、詳細設計→単体テスト、基本設計→結合テスト、要件定義→総合テスト、となります。
また、さらに上のテストとして受け入れテストと呼ばれるテストがあり、システムでやりたいことが実現できるかどうか、つまりお客様の要望に対するテストがあります。
あくまで呼称などは一般的なもので、開発現場や業種によって様々な呼び方に変わります。
正直面倒なのでインフルエンサーとか偉い人か誰かが統一してくれないかな〜って感じです。
リリース
テストが終わった後はいよいよ、自社のサーバーかどっかから借りたサーバーにシステムをアップロードし、稼働させます。
稼働させた後にバグが発生したりすると、作ったエンジニアたちが電話で呼び出されたり深夜残業や休日出勤をさせられたりして、原因特定、改善、再リリースから予防策を立てるところまでやります。
まあ自分が作ったシステムならまだしも、他人の範囲の尻拭いをするときが最悪です。二度とやりたくないです。
他人が実施したテストが不十分で、朝から深夜までの高稼働が数日間続いた上に土日もつぶれ、
さらにはプロパーからメンバーともども怒鳴られたときは、日本が法治国家でよかったなお前ら、と言わんばかりの目つきで怒鳴り主を背後から睨みつけてやりました。
総括
とまあ、こんな感じのことを4年半ほど繰り返し行ってきました。
正直面倒な事ばっかりだし、同じ事の繰り返しでつまらないし、現場によっては顧客やプロパーや上司が厄介人間だったりします。
ただ、これはエンジニアという職の肩を持つというわけではないですが、要件定義の過程だったり、実際に製造をしているとき(ソースコードを書いているとき)は楽しい時が何回かありました。
おそらくほかの方もどこかしらの開発過程でやりがいというものを感じているのではないかなと思います。
システムエンジニアってキラキラしててかっこいい!最先端って感じ!という印象を持って業界に入り、数年で、はたまた数ヶ月で目から光がなくなっていく人が最近どんどん増えていると思ってます。
諸事情により転職活動をしていた時にも思いましたが、IT系の求人の数が半端じゃないのも原因としてあります。
そんな人たちがこの記事を読み、「IT系ってこんな側面もあるんだ」と思って覚悟を決めて入ってくれる、または業界に入ること自体をやめる、といった適切な判断をしていただけると、元SEとして冥利につきます。
コメント