UPSTARTSのぱみやすです
みなさんIT企業で開発をしたことありますか?
開発の現場では、プロジェクトに応じて様々な開発手法が用いられます。
今回はそういった開発手法の中でも特によく使われている「3つの開発手法」について、説明したいと思います。
ウォーターフォール開発
ウォーターフォール開発は古くからあるもっともポピュラーな開発手法です。
プロジェクトによって工程の定義に若干の差はあると思いますが、
「要件定義」「設計」「実装」「検証」「運用、保守」このようなに分けることができます。
この工程を「水が高い所から低い所に流れる」ように、上流工程から下流工程へ順次実施しく開発手法です。
原則として各工程が完了したことをもって次工程に進むことで、品質を担保し、工程間の後戻りを最小限に抑えることができます。
工程の進捗が管理しやすいことがこの手法のメリットといえます。
この手法のデメリットとしては仕様変更などがあった場合、対応する事が困難であることなどが挙げられます。
大規模開発ではよく「ウォーターフォール開発」が採用されています!
アジャイル開発
ウォーターフォールモデルの弱点を克服するために考案された開発手法の一つが、アジャイル開発です!
「要件定義」「設計」「実装」「テスト」といった工程を、分割し反復的に行い、
小さな機能を1つずつ追加開発していくことで、最終的にシステム全体の開発を行います。
業務プロセスにおいて優先度が高いものから開発していきます。
アジャイル開発は仕様変更があった場合、対応が容易であるというメリットを持っています!
その半面、小さな反復を繰り返すという性質上、大規模なシステム開発には向かず、工程の進捗管理も困難であるというデメリットがあります。
スパイラル開発(ここではプロトタイプモデル)
トップダウン設計とボトムアップ設計の長所を生かした開発手法であり、設計とプロトタイピングを繰り返して開発していく手法となります。
トップダウン設計は、段階的に詳細にしていく設計技法である。最初にシステム全体を定式化し、その時点では個々の詳細には立ち入らない。
その後、システムの個々の部分の設計を段階的に詳細化していく。最終段階では、実装に移せるまで詳細化する。ボトムアップ設計では、最初にシステムを構成する個々の部品を細部まで設計する。
そして部品群を組み合わせてより大きな部分を作っていき、最終的にシステム全体が構成される。プロトタイピング(Prototyping)とは、実働するモデル(プロトタイプ)を早期に製作する手法およびその過程を意味する。
その目的は、設計を様々な観点から検証する、機能やアイデアを形にすることでユーザーから早めにフィードバックを得るなど、様々である。wiki参照
イメージ的にはウォーターフォールとアジャイルの長所を生かした開発手法になります。
一度実際にシステムを作ってみることで、フィードバックを得てまた開発を行い、システムの質を高めていきます。
システムの試用後にフォードバックを反映する際に問題が発生したとしても、臨機応変に対応することができるというメリットがあります。
しかし、様々な問題が発生した場合、何度もシステムを開発しなければならないため、開発の完了までに時間がかかってしまいます。
まとめ
はい、現在プログラミングを勉強している方やソフトウェア開発に就職しようとしている方は開発手法は重要になってくるので覚えておいたほうがいいと思います!