ITエンジニアの仕事について
ITエンジニアの仕事について紹介してきます。基本的に、どのIT業界でも仕事の流れは同じなので、ここでは、システムエンジニア、プログラマー、インフラエンジニアについて消化します。システムエンジニア(≒ITコンサルタント、Webディレクター)、プログラマー≒Webデザイナーと置き換えて見てください。
ウォーターフォールモデル
システムを開発する手法は様々ありますがここでは、代表的なウォーターフォールモデルで開発の流れを説明します。
ウォーターフォールモデルではシステム開発の工程を4つ分けて開発作業を進めていきます。
- 要件定義
- 外部設計
- 内部設定
- 製造
要件定義
要件定義とは、顧客のニーズをヒアリングして、どのようなシステムを作成するのかを決めてきます。基本は、○○作業をシステム化したいというニーズをヒアリングして、どのようなシステムを作り上げていくのかを決めていくのですが、ITコンサルタントの場合は、そこに付加価値を付けていきます。
例)○○システムを追加するよりも、△△業務をシステム化したほうが、企業の成長が見込めるので、△△システムを提案する。
この段階でどうのようなシステムを作成するのか? を決めて顧客と合意がとれたら、外部設計に入ります。
またこの段階で、顧客のニーズでシステム化できるものとできないものも決めていきます。
ソフトウェア面、ハードウェア面でシステム化が可能かどうかを検討するため、システムエンジニアと、インフラエンジニアが担当します。
外部設計
作成するシステムが決まったので、外部設計では、システムの構成と機能を決めていきます。またハードウェア面では使用するオペレーティングシステム、開発言語、データベース、サーバー、CPU、メモリ、ディスクサイズなどハードウェア構成も決めてきます。
システム、ハードウェア構成を決めたら次は、システムで開発する機能を決めていきます。
例)ニーズ:ツイッター風SNSシステムを作成したい。
ここで必要な機能を洗い出す
- ユーザー登録機能
- ログイン、ログアウト機能
- ツイート機能
- リツイート機能(引用リツイート機能)
- ツイート削除機能
- 退会機能
etc
といった感じで、システムで必要な機能を洗い出します。
機能の洗い出しが決まったら、機能の深堀りをしていきます。
例)ユーザー登録機能では、何を登録するのか?
- 姓名
- 電話番号
- メールアドレス
- ニックネーム
- パスワード登録
- パスワード変更
のほかに、住所は必要なのか?、生年月日は必要ないのか?など、要件定義で決めたニーズを基に、細かい部分まで決めていきます。
深堀りが完了したら、顧客と機能にモレがないか合意を取ります。
この段階も、システムエンジニアが担当します。ハードウェア面では、使用するユーザー数、同時にシステムにアクセスできるユーザー数を想定して、サーバーのスペックを決めていきます。
内部設計
外部設計の段階で、作成するシステムは決まっているので、内部設計ではプログラミングで必要な設計を行います。
ここは、システム経験者でないと説明が難しいのですが、パスワード登録、パスワード変更は機能としては、別なのですが、パスワードの文字数チェック等は同じなので、プログラムでは文字数チェックは一つ製造して、使いまわすなど、プログラミングで何を作っていくのかを設計していきます。
この段階も、システムエンジニアが担当します。インフラエンジニアは、次の段階でプログラマーがプログラムを製造できるように、開発環境のためのサーバー等の開発環境を構築していきます。
製造
内部設計で作成した設計書を基に、プログラムを作成していきます。
ここでは、プログラマーがプログラムを作成していきます。システムエンジニアはプログラマーからの質問に対応したり、人の手が足りない場合は、プログラムも作ります。
インフラエンジニアは、開発環境でトラブルがないかを監視しながら、本番環境の構築作業に入っていきます。
テスト
プログラムが完成したら、テストを行い正しく動作するかチェックをします。
単体テスト
プログラム一つ一つの動作確認を行います。
例)ユーザー登録機能で、ユーザーが登録できるのか
プログラマーが担当します。
結合テスト
プログラムを繋げて確認していきます
例)ユーザー登録
↓
登録したユーザーでログインできるのか?
↓
ツイートができるのか…
と一連の流れで、プログラムが動作するかを確認します。
システムエンジニア、プログラマー、インフラエンジニアすべてが担当し、バグがあれば、対応します。
システムテスト
結合テストと似ていますが、より本番に近い状態で動作を確認してきます。
例)本番では、同時に100人がログインすることが想定されるので、
100人同時に、ログインしてツイートする
正しくツイートできているのか、サーバーはダウンしないのか
などを確認していきます。
システムエンジニア、プログラマー、インフラエンジニアすべてが担当し、バグがあれば、対応します。
ユーザーテスト
このテストが最終段階になりますが、顧客に動作確認をしてもらい、ニーズに合っているのかを確認してもらいます。
システムエンジニア、プログラマー、インフラエンジニアすべてが担当し、バグがあれば、対応します。
ここでOKがでたら、リリースして終了となります。
まとめ
いかがだったでしょうか?システム開発の仕事内容がイメージできたでしょうか?実際の現場では、プログラマーは一日でもシステムエンジニアになるために、システムエンジニアの作業を見習いとして手伝ったります。早い人では3年くらいで設計を任されたりします。
次は、未経験、文系がITエンジニアになれるのかについて解説していきます。