- 開発って何?
- これからエンジニアを目指す人
- 開発の工程があまりうまく説明できない人
そんな人に読んでもらえたらなと思います。
この記事では、開発の工程と手法について記載しています。
工程や手法によって、ユーザーや同僚から求められるものが違います。
是非この機会に開発を理解して、日々の開発に活かしてください!!
開発とは
業務の効率化や最適化を目的として行う「仕組みづくり」です。
何らかの課題を解決する、あるいは目的を達成するために、技術や仕組み、ソフトウェア(コンピュータプログラム)、装置や機器、それらを組み合わせたコンピュータシステム、サービスなどを作りあげる行為や事業を指します。
開発の流れ
- 要件定義
- 外部設計
- 内部設計
- プログラミング
- テスト
- リリース(引き渡し)
- 運用・サポート
1. 要件定義
システムがカバーする範囲や、実現方法などを決定し、システムの仕様を決めていきます。
これに沿って、コストや今後のスケジュールを決めていきます。
その為、一番重要な工程になります。
2. 外部設計
「基本設計」とも言います。
サービスを提供するサーバーや、利用者が使用するクライアントなど、システムのハードウェアを設計します。
システムで使用するネットワークや、ミドルウェアと呼ばれる中間ソフトウェア、プログラミングに使用するプログラミング言語など、ソフトウェアについても検討します。
3. 内部設計
「詳細設計」とも呼ばれます。
ユーザーが操作する画面の裏で、内部的に実行される処理について、処理のロジックや内部データの構造などを、詳細に定義します。
4. プログラミング
「コーディング」とも言います。
要件定義、設計を元にプログラムを組んでいきます。
5. テスト
設計通りにプログラムが作成されているか、確認するステップです。
テストには、複数の工程があります。
- 単体テスト
- 結合テスト
- システムテスト
6. リリース(引き渡し)
システムをユーザーに引き渡します。
ユーザーと仕様を確認しながら、リリースしていきます。
また、操作方法をユーザーに教えたり、ドキュメントも整理していきます。
7. 運用・サポート
リリース後も、予期せぬ操作をユーザーが行い、エラーが起きたりもします。
サーバーのダウン、オペレーティングシステムの更新など、対応するものは、多岐に渡ります。
その為、リリースして終わりではなく、システムの運用を行なっていかなければなりません。
開発手法
開発手法は、5つあります。
- ウォーターフォール
- アジャイル
- スパイラルモデル
- プロトタイピング
- DevOps
1. ウォーターフォール
「ウォーターフォール(waterfall)」は、英語で「滝」を意味します。
滝のように、上流である要件定義→開発→テストと順番に下流工程へと工程を進めていきます。
その字の名の通り、水(water)が落ちていく(fall)開発手法になります。
2. アジャイル
「アジャイル(agile)」とは、「素早い」、「機敏な」という意味です。
アジャイルでは最初に仕様を決めません。
おおまかな方向性だけを決めて開発を進めます。
3. スパイラル
「スパイラル(spiral)」とは、「螺旋」を意味します。
アジャイルと似ています。
それぞれの開発単位で、要件定義、設計、開発、テスト、そして評価というサイクルを繰り返していきます。
システム全体の完成度を”螺旋”のように上げていくところから、「スパイラル」と呼ばれます。
4. プロトタイピング
「プロトタイピング(Prototyping)」とは、”試作品“という意味です。
つまり、試作品を先に作成する開発手法です。
基本的にユーザーの意見をもらうことが前提の開発方法です。
5. DevOps
DevOpsは、開発担当者と運用者が連携して開発をする手法です。
“デブオプス”と読みます。
「Dev」は「Development(開発担当者)」、「Ops」は「Operations(運用チーム)」を指しています。
テストを終えたシステムを開発チームがリリースした後、システムの運用、保守など、システムの面倒をみるのが運用チームです。
開発工程と開発手法を学ぶことで得られるもの
自分の知識が増えるだけでなく、チームでの立ち回りを学ぶことができます。
また、個人開発であっても、開発の工程や手法を落とし込むことは可能だと思います。
日頃から、少しでも意識しながら取り組んできましょう!!