Sunnydayは2017年度(平成29年度)の新卒採用をおこなっており、募集職種はシステムエンジニア(SE)です。
そこで、これからIT業界に飛び込もうという学生、第二新卒、また転職の方に対して、システムエンジニアの業務について、より一般的に知られたプログラマ(PG)との比較をしながら説明をしたいと思います。
システムエンジニアとプログラマは、ソフトウェア開発でのプロジェクトにおける役割が違います。システムエンジニアの役割はお客様の求める要件に合わせて設計書を作り、設計書を基にプログラマがプログラムを作ります。
ソフトウェア開発では、開始から完了までいくつにも工程が分かれており、上流工程から下流工程と表現することがあります。そして、工程により担当が変わります。システムエンジニアは上流工程を担当し、プログラマは下流工程の、主にプログラミングの工程を担当します。
以下、ソフトウェア開発の工程を7つに分けて説明し、対応した担当を記載します。
1. 要求分析(上流工程)
要求分析はソフトウェア設計工程において重要な部分であり、システムエンジニアが顧客の必要性や要求を特定する工程になります。顧客の要求が特定されたら、その解決策を設計することになります。
担当:SE
2. 要件定義(上流工程)
要件定義とは、システムやソフトウェアの開発において、実装すべき機能や満たすべき性能などのを明確にしていく作業です。いわゆる上流工程の一部で、実際の開発・実装作業を始める前に行う作業の一つです。要件定義では、利用者がそのシステムなどで何がしたいのかを元に、それを実現するために実装しなければならない機能や、達成しなければならない性能などを検討して明確にしていきます。
担当:SE
3. 基本設計(上流工程)
お客様が必要としている要件をまとめた要件定義を元に、どのようなシステムを開発すればそれを満たすことが出来るかを検討し、機器の構成や実装すべき機能、画面や帳票などの操作や入出力に関する事項、生成・保管されるデータの概要など、システムの基礎的な仕様をまとめることを基本設計といいます。
担当:SE
4. 詳細設計(上流工程)
詳細設計とは、実際の開発・実装作業の前段階で行われ、内部設計や機能設計などで定義されたシステムの構造や仕様などを、プログラム単位に分割し、各プログラムの動作を定義していく工程になります。
担当:SE
5. プログラミング(下流工程)
設計書を基にソフトウェアを作成、実装する工程です。
担当:PG
6. テスト(下流工程)
作成したソフトウェアが、要求通り正しく動作するか確認・修正する工程です。
担当:SEもしくはPG
7. 納品・リリース・フォロー
完成したソフトウェアをお客様に納品、サポートする工程です。
担当:SE
上記の工程は一般に「ウォーターホール・モデル(Waterfall Model)」と呼ばれる開発モデルになります。Sunnydayは特に、エンドユーザーと上位のパートナーとの間に入って、4(詳細設計)〜6(テスト)をおこなうことが多いです。
また、Sunnydayがエンドユーザーに対して開発をおこなう場合は、「ウォーターホール・モデル」ではなく「アジャイルソフトウェア開発(Agile Software Development」で案件を進めることが多いです。
「ウォーターホール・モデル(ウォーターホール型)」と「アジャイルソフトウェア開発(アジャイル型)」のそれぞれの特徴は、次の機会に触れようと思います。
(た)