私はシステム開発のITエンジニアとして、約26年のキャリアがあります。参考までに、システム開発の仕事について紹介したいと思います。
1.開発工程は大きく分けて、設計→実装→テスト
システム開発の工程を大きく分けると、設計、実装(プログラミング)、テストがあります。システム開発といえば、プログラミングをイメージするかもしれませんが、どのようなシステムを作成するか設計図がないと、プログラムは組めません。家づくりに例えると分かりやすいと思います。家の設計図がないと、大工作業などの製造工程には進めません。システム開発も、どのようなシステムを作るか、どのようなプログラムを作成するか、設計工程が必要です。設計内容は設計書として、ドキュメントにまとめます。
1.1.設計工程
設計工程は、さらに要件定義、基本設計、詳細設計に分かれます。
要件定義では、どのようなシステムを作成するか、提供する機能や性能などの要件を決めます。家に例えると、マンションか一戸建てか、2LDKか3LDKか、床暖房などの設備など、提供するサービスや性能などを取り決めます。要件定義で決めたことが、システム開発のゴールになります。
基本設計では、要件定義で決めた内容を実現するために、システムのアウトラインを設計をします。装置構成やOSや言語などの選定や、要件定義からシステムに実装する機能をブレークダウンして詳細化していきます。要件定義の内容を実現するために、システムに必要な機能を洗い出します。
詳細設計では、基本設計で詳細化した機能を実現するためのプログラムを設計をします。詳細設計書は、クラス図やメソッドのインタフェース(IN/OUT)など、より技術的な内容になります。詳細設計までブレークダウンして、ようやく実装工程に進めます。
1.2.実装工程
実装工程では、詳細設計書に元づいてプログラミングを行います。、コーディングとも呼ばれます。
1.3.テスト工程
テスト工程は、さらに単体テスト、結合テスト、総合テストに分かれます。
単体テストでは、プログラム単体のテストを行います。詳細設計書を元に試験項目書を作成して、試験項目書に従いプログラムの動作を検証します。検証結果がNGの場合は、不具合を修正および再試験して、すべての検証項目がOKになるまでテストします。
結合テストでは、複数のプログラムを結合して、動作検証を行います。システムの各機能は、複数のプログラムが連携して機能を実現しています。プログラムの連携を含めて、機能が正しく動作することをテストします。
総合テストでは、実運用を想定したテストをします。個々のプログラムというよりも、システムとして正しく動作することや、運用的に問題ないか検証します。
2.プロジェクトチーム
システムの開発は、概ねプロジェクトチームで作業します。1人で作業することはあまりないと思います。プロジェクトマネージャが、タスクをプロジェクトメンバーに割り当てて、分担して作業します。
3.スキルについて
3.1.論理的思考力
システムの設計やプログラミングでは、論理的に考えることが多いため、論理的思考力はあったほうがよいと思います。
3.2.国語力
設計書も試験項目書も日本語で記載します。システムの開発では、多くの設計ドキュメントがあります。日本語の読解力があると、インプットの吸収が速いと思います。また、設計書や試験項目書を作成する際も、日本語で記載するため、分かりやすく正確な文章を記載する文章力があるとよいと思います。
以上。