スクラム開発の「スクラム」とは、ラグビーでよく耳にするスクラムと同じ意味合いを持っています。今では一般的となっている開発手法の一つですが、柔軟で自由度の高い開発手法として日本に端を発したアプリ開発手法です。
スクラム開発はコミュニケーションを重視した開発手法であり、少人数で結成したチームで役割を分担し、各々が取り組む作業が明確化されています。チーム内でミーティングなどを設けることで、自主性に任せながら確実にプロジェクトを進めていきます。
スクラム開発のチームに必要なメンバーとしては責任者である「プロダクトオーナー」、作業者である「開発メンバー」、その2つの中間に入る「スクラムマスター」と大きく3層で構成されています。それぞれが役割をしっかりこなし、進められます。
スプリントには「短距離」というような意味があり、プロジェクト全体を数週間単位で区切ったものをいいます。設計⇒実施⇒評価⇒改善というサイクルを繰り返して開発を進め、スプリントごとに顧客の要望を段階的に開発していきます。
スクラム開発は前述の通りスプリントを設定し進められるため、優先度の高い仕様や要件から開発に取り組みます。これにより一つ一つの機能品質を最大限に高めることができるため、短期間でも最大限の開発効果が発揮できます。
スクラム開発は各人に担当が割り振られるため、それぞれの責任感が高まる傾向にあります。一人一人が対応すべきタスクが明確に割り振られますので、そこから芽生える責任感が開発チームとして質の高い生産性を実現します。
スクラム開発は早期段階で問題を発見し修正を図れるという強みがあります。しかしこの修正点の判断には顧客からのフィードバックが必要不可欠なため、理解・協力を頂ける環境が必須です。事前に理解を得られるかどうかで品質が左右されるのです。
スクラム開発は途中での仕様変更を許容しており、作業が流動的になることから完了日も当初スケジュールからずれこむのが一般的です。効率的に進めることで結果としては早期に完了させられることもありますが、スケジューリングはしづらくなっています。
スクラム開発は前述の通り、各人がタスクを受け持ち進めていく開発手法です。そのためそれぞれのタスクに責任を持ちしっかりとこなさない限り、プロジェクトとして完了させることができません。コミュニケーションを取りながら確実に進める必要があるのです。
一部先に解説しましたが、スクラム開発はプロジェクト全体を数週間単位に区切った「スプリント」において、設計⇒実施⇒評価⇒改善というサイクルを重ねて開発を進めます。各人が担当するタスクを順次こなしながら、顧客のフィードバックを受けて改善を重ねてプロジェクトを進めていきます。それらを進めていきスクラム開発を成功させるためには、「スクラム開発を正しく理解すること」「目指すゴールを全員が共有すること」「チームメンバーがそれぞれ主役であること認識する」などといったポイントがあります。一人一人のチームメンバーがスクラム開発のことをしっかりと理解したうえで、メンバー全員のベクトルを一致させて進めていきます。中心となる責任者はいても、各タスクの責任はそれぞれの担当者が持ちますので、しっかりとコミュニケーションを取りながら進めることが重要です。少しアナログな発想ではありますが、これがスクラム開発の強みとなります。
スクラム開発はアジャイル開発の代表的な手法として位置づけられており、このアジャイル開発には対となるウォーターフォール開発があります。全体のプロジェクト期間をしっかりと固め計画通りに進め、工程を一つずつこなしていくウォーターフォール開発に対して、アジャイル開発では開発工程を反復しながらプロジェクトを進めていきます。この2つの開発工程の大きな違いとして、ウォーターフォール開発は工程の後戻りを許容しないのに対し、アジャイル開発ではそれぞれの工程において前工程の修正など後戻りを許容している点があります。そのアジャイル開発の中にもいくつか開発手法は枝分かれしますが、スクラム開発が他の開発手法と違う点としては「チームのコミュニケーションを重視した開発手法である」ということになります。他にもプログラマーを中心とした開発方法や顧客の機能価値に重きを置いた開発手法などがありますが、チームで効率的に進められるというのがスクラム開発の特徴です。
チームでコミュニケーションを取りながら進めることで、短期間のうちに最大限の効果が得られるスクラム開発。プロジェクトの内容や顧客との関係性によっても採用すべき開発手法は変わります。アプリ開発に迷った時は、プロに相談してみるのもよいでしょう。