初めに

主にここではソフトウェアエンジニアが普段何やってるか(どんな仕事をしているか)を書き記したいと思います。

フェーズ(仕事の大まかな流れ)

主に下記の流れでサービスが提案されてからリリースされるまで実行していきます。

1、要件定義
お客さんから、どんなサービスを作りたいか抽象的なイメージでヒアリングを行います。
システムの抽象的なイメージをここで確立させます。
例えば、クレジットカードの請求情報からデータを引っ張ってきて、請求対象者すべてに請求メール送信をするシステムを作りたいですなど

2、基本設計
要件定義をもとに、プログラムの流れをExcelなどのドキュメントに書き記します。
例えばデータをもらって、計算してデータベースに突っ込むみたいな流れを書く。
図とか記号を使って

3、詳細設計
基本設計をもとにプログラムにかなり近い内容でドキュメントに書く

4、開発・コーディング
詳細設計や基本設計をもとにプログラムを実装します。
実装する際は
サービスに適したプログラミング言語を用いてプログラムを記述します。

5、テスト
開発した内容をテストします。
だいたいバグがあるのでここで修正します。
※バグはプログラムのミスとか要件に適してない動きとかをいう

6、リリース(環境構築含む)
プログラムをリリースします。
リリースするまでに初期のデータ準備やプログラムが動く環境構築を含みます。
※リリースとはサービスを外部に公開したり、内部で使用できるようにすることをいいます。

7、保守・メンテナンス・運用
サービスがリリースされた後、正常に動いているか監視したり、不備なものがあればプログラムを修正したりします。
「Gメールが使えなくなった!!」みたいなときに運用でサーバを再起動してメモリを減らすなどを行います。

以上が主にエンジニアがやることです。

エンジニアでよくある炎上ってなんや?

プログラムができたけどお客さんの要件とは違ったり、要件が次々変わったり、設計・開発のエンジニアのスケジュール管理ができていなかったりすると炎上します。(リリースが迫っているので全然プログラムできてねえ!!!)
みたいな感じです。

エンジニアはけっこう座りっぱなしで大変なことも多いですが、力量とかセンスのある人なら楽な仕事です。
みなさんもチャレンジしていてはいかがでしょうか?
頭のいい方がすぐにつけれるスキルとしてもエンジニアの能力はおすすめです。
(自分でモノづくりができるようになるので)

以上です。