本記事では、私が1年ほど経験した「スクラム開発」についてご紹介していきます。
本記事含め、スクラム開発についての記事を連続して執筆していきますので、興味のある方はご覧いただければと思います。
開発手法とは
さて、システム開発を進める上で、まずはじめにどのように開発を進めるかというのを決めていく必要があります。
何から決めていけばいいんだ…と途方に暮れそうになりますが、1からルールを決めていく必要はありません。システム開発には一連の手順、ルールが定められたものがいくつか存在します。これを開発手法と呼びます。
今回ご紹介するスクラム開発も、開発手法の一つです。正式には、スクラム開発はアジャイル開発と呼ばれる開発手法の1つになります。そのためスクラム開発をご紹介する前に、アジャイル開発の特徴について解説していきます。
ウォーターフォール開発
開発手法として有名なものにウォーターフォール開発と呼ばれるものがあります。
ウォーターフォール開発とは、その名の通り開発を上流から下流に流すように順に進める方法です。
手順としては、まず開発を進めるにあたり必要となるタスク(たとえば「要件定義」「設計」など)を決定、計画します。それらのタスクを計画通りに実行していくことで開発を進めるという方法です。
アジャイル開発
では次にアジャイル開発について説明します。
アジャイル開発は、小さなリリースを繰り返していくことによって開発を進めていく開発手法です。
ウォーターフォール開発では、要件定義のフェーズで要件を完全に確定させたうえで次の設計フェーズに移りますが、アジャイル開発の場合は要件定義を100%確定させることなくリリースさせます。小さなリリースを繰り返すことで開発を進めていくのがアジャイル開発の大きな特徴です。
なおこの小さなリリースを進める期間(開発サイクルの単位)をイテレーションと呼びます。
以下はウォーターフォール開発、アジャイル開発の開発サイクルの違いをまとめた図になります。
それぞれの開発手法のメリット・デメリット
次にそれぞれの開発手法のメリット・デメリットについてまとめます。
ウォーターフォール開発のメリット・デメリット
まずウォーターフォール開発ですが、はじめに要件定義をしっかりと確定させるため、設計にブレが生じにくいことがメリットとして挙げられます。また、事前に計画を立てて実行することから、スケジュール立てや人員確保などがしやすいというのも利点です。
デメリットとしては、要件定義の計画に時間を要すること。また要件変更に対応しにくいという点があります。もし要件変更が発生した場合は前の工程をやり直す必要があるため、そうなると事前に計画していたスケジュール通りの開発が難しくなることがあります。
アジャイル開発のメリット・デメリット
次にアジャイル開発です。メリットは、ウォーターフォール開発に比べ短い期間でリリースをすることが可能なところです。開発サイクルが短いため、要件変更やユーザの要望など柔軟に対応することができるというのもメリットとして挙げられます。
デメリットは、ウォーターフォール開発と違い、要件定義をしっかりと定めないことによって開発の方向性にブレが生じやすいというところです。またスケジュールをウォーターフォール開発ほど綿密に立てないことにより全体の進捗が見えにくく、管理がしにくいなど、柔軟性があるからこその不安定さも持ち合わせています。
おわりに
本題のスクラム開発はアジャイル開発の中でも代表的な開発手法となります。
このスクラム開発ですが、細かいルールが多数定められており、はじめは慣れるのが難しいのですがなかなか面白い開発手法です。
今後スクラム開発をより詳細に解説した内容の記事を作成予定ですので、詳しい内容はそちらで紹介させていただきます。