スキルアップ

アジャイル開発手法であるスクラムの特徴・メリットについて分かりやすく解説!

更新日 2022/05/16
ソフトウェアを開発するには、まずその開発手法を選択します。ソフトウェア開発手法には「アジャイル開発」「ウォーターフォール開発」「プロトタイプ開発」「スパイラル開発」など様々なものがあり、それぞれ特徴があります。ここでは「アジャイル開発」とその中の種類の一つである「スクラム開発」の特徴や長所と短所について説明します。

1.アジャイル開発とは

1.そもそもアジャイル開発って?

「アジャイル開発」とは、ソフトウェア開発の設計、実装、テストを反復していく開発手法です。そしてアジャイル開発には、「スクラム」、「XP」、「動的システム開発手法(DSDM)」などいくつか種類があります。それぞれの種類に特徴はありますが、基本方針は同じで、「決められた短めの期間で機能を開発し、それを何度も繰り返していく」という手法になります。

2.ウォータフォール開発との違い

アジャイル開発はウォーターフォール開発とは全く異なる開発手法でよく比較されます。では具体的にどのような違いがあるのでしょうか。

まず、ウォーターフォール開発は、一つの部品ごとに開発を行うのではなく、開発工程を一つ一つ終わらせていくという手法です。ウォーターフォール開発は、ソフトウェアを作るための工程として、「要件定義」「設計」、「実装」「テスト」とタスクの種類ごとに分けて<一つ一つこなしていきます。基本的に、一つの工程が終わってから次の工程に進み、次へ進んだ後は前の工程に戻ることはありません。

それに対しアジャイル開発は、「システムを一つのモジュール、機能、要件などを軸に、決められた短い期間で開発できるように分けてタスク化し、そのタスクを何度も繰り返しこなす」ことで開発を進めます。ウォーターフォールでは原則、「要件定義⇒設計⇒実装⇒テスト」という流れを一度だけ行うのに対し、アジャイル開発ではその流れを何度も繰り返します。そして、その流れを行うたびに、その成果物を評価します。

3.アジャイル開のメリットとデメリット

メリット ・常にシステムの動作を仕様書などではなく実際に動かしながら確認できるため、顧客側と開発側に認識齟齬があった場合も初期の段階で発見できることが多い。 ・試行錯誤を繰り返しながらの開発のため、システムの仕様を変更したくなった場合も方向転換しやすい(ウォーターフォール開発と比較した場合)。 デメリット ・顧客側は成果物の評価のため常にプロジェクトに参加する必要がある(ウォーターフォールの場合、顧客は基本的にマイルストーンのみ参加する)。 ・仕様変更が容易にできるため、実験を繰り返してシステム開発が進まなくなったり、途中で要件や機能が追加されて開発期間とコストが増加したりすることがある。

2.アジャイル開発の一つの手法であるスクラム開発とは

1.そもそもスクラム開発って?

「スクラム開発」とは「アジャイル開発」の一つで、ラグビーのフォーメーションの名前がもとになっています。通常、5~9人ほどのチームメンバーが2~4週間程度かけて新しい機能を開発します。

「スプリント」と呼ばれる短い開発期間の中で機能の実装とその成果物の評価を行い、それを何度も繰り返してシステムを開発していきます。

2.スクラム開発における必要な3つの役割

プロダクトオーナー
プロジェクトのステークホルダーで、開発するソフトウェアのビジョンを開発チームに共有します。プロダクトバックログと呼ばれる要件を書いたリストを作成します。

スクラムマスター
開発チームのリーダーで、開発メンバーが効率的にタスクをこなせるような環境を作ることが仕事になります。開発チームが開発期間内にすべてのタスクを終わらせることができるよう進捗を管理します。

開発メンバー
デイリースクラムと呼ばれるミーティングで進捗を確認しながらソフトウェア開発を行います。通常、自分たちでマネジメントを行う必要があります。

3.スクラム開発の進め方

スクラム開発は、「スプリント」と呼ばれる開発期間を何度も繰り返すことによって、システム開発を進めていきます。スプリントがどのくらいの長さかはプロジェクトによって異なりますが、通常は2週間から4週間程度になります。まず、スプリントの最初に開発チーム内でどのタスクを対応するかが決定されます。

スクラム開発では、プロダクトオーナーが作成した「プロダクトバックログ」と呼ばれる要件リストがあります。このリストにあるタスクは、「Todo(未完了のタスク)」「OnGoing(対応中)」「inreview(成果物の評価中)」「Done(完了)」の4つのステータスで管理されており、ステータスが「Todo」のタスクから今回のスプリントで開発されるものを選択します。対応するタスクが決まると、開発メンバーは「デイリースクラム」と呼ばれる毎日のミーティングで進捗を確認しながら、開発を進めます。

そして、開発終了後、顧客側は成果物に対するレビューを行います。この時、「ベロシティ」と呼ばれる開発チームのパフォーマンスも評価され、このベロシティをもとに次のスプリントがスケジュール通り完了できそうかどうか判断されます。そして、顧客側のレビューが完了すれば、そのスプリントは完了になり、また次のスプリントが始まります。

4.スクラム開発のメリットとデメリットについて

メリット
・常に日々のミーティングで仕事の方向性を確認・修正しているため、進捗状況を正確に把握できチームのタスクをスケジュール通りに進めやすい。

・スプリントは期間が短めで成果物はスプリントの度にフィードバックを受けるため、仕様変更に対応しやすい。

・各開発チーム・メンバーが開発できる量をスプリントごとに確認しているため、次回以降のスプリントでより正確にスケジュールの見積もりを行うことができる。また、開発チーム・メンバーの能力を把握することで生産性も改善しやすい。

デメリット
・仕様変更が容易なため、スコープクリープ(プロジェクトの範囲が肥大化すること)を引き起こすことがある。

・スプリントは期間が短いため、チームメンバーに初心者がいる場合、スケジュール通りに開発を進めづらくなる。

・開発中にチームメンバーから離脱者がでると、プロジェクトの進捗に大きな影響が出ることがある。

・各スプリントの後に回帰テストを実施する仕組みが無いと、品質を保つのが難しくなる。

3.スクラム開発の今後のニーズについて

システム開発のプロジェクトは、どうマネジメントするかが重要になります。効率的にプロジェクトを進めていくために、最適な開発方法を選択する必要があります。ソフトウェアの開発手法は無数に存在しますが、優劣は無く開発するシステムの特徴などによりどれが適切か判断する必要があります。各ソフトウェア開発の長所と短所を理解することが大事です。

そして、今回紹介した「スクラム開発」はその特徴から、仕様変更が頻発することが予想されるプロジェクトに採用されていくことになるでしょう。仕様変更の要望に対応しやすいという特徴があるため、市場のニーズが変化しやすい業界や、仕様変更できることに重点を置く企業などに好まれる開発手法になります。

4.まとめ

今回はアジャイル開発の一つである「スクラム開発」の特徴について説明しました。スクラム開発は、仕様変更がしやすく、注意点はありますが基本的にはスケジュール通りにタスクを進めやすい、という特徴があります。スクラム開発のメリットを最大限に生かすためには、その仕組み・特徴を理解して運用することが大事です。

関連する記事

おすすめの記事

スキルアップ
2022年最新版!AIに関連する資格まとめ ~それぞれの取得メリットを解説~
AI(Artifical Intelligence)は現在、ビジネスで非常に注目されている技術です。「AI搭載家電」、「AIを活用した営業」、「AI型教材」など、日常で使用している様々なものや仕組みにAIが利用されるようになってきています。これからもAIを使用した商品はどんどん開発されることが予想されるため、これからの時代その仕組みを理解しておけば仕事の幅を広げることができるはずです。今回は、AIに関する知識を得るための手段の一つとしてAI関連の資格についてまとめてみました。
スキルアップ
その会議、出る意味ありますか?~無駄な会議を無くし、生産性を高めよう~
私たちが仕事をしていく中で、必ずと言っていいほど『会議』というイベントが存在します。
会議は、会社の方向性を決める経営戦略会議から、課会やチームの定例会など大小様々な規模と内容で行われています。一週間の間に一度も会議がない、ということは極めて稀なのではないでしょうか。
私たちは、日々の業務の中で、自分たちが思うよりずっと多くの時間と労力を会議に費やしています。一度会議を行うだけでも、調整、準備、実施、後処理と多くの工数がかかります。さらに、実施だけに着目すると、会議に8人が出席し、1時間の議論をするだけで、1人の人が丸一日働いた時と同じくらいの工数がかかっていると言えます。もし、このような会議で議論がまとまらなくて目的を果たせなかったら、丸一日が無駄になってしまうのです。

このように、会議は仕事上で多くのウェイトを占め、多くの人に影響を与えます。非効率な会議ばかりをしていると、組織の生産性は著しく損なわれてしまうのです。あなたとあなたの周りの人の生産性が失われないよう、ひいては、組織の生産性を失わず、より効率よく会議を運営していくには何が必要なのか、考えていきたいと思います。
スキルアップ
他社事例を求めるクライアントの言葉の裏に潜んでいるホンネ ~相手を観察して、精度の高いアウトプットを出すには~
クライアントと接していると、他社事例の紹介を要求されることがあります。その言葉をそのまま受け止めて、社内の事例をかき集めていませんか?迅速に対応したいのは、やまやまでしょうが、ここでひと呼吸おいて、言葉の真意を探ってみることが重要です。
クライアントの言葉の真意について仮説を立て、それに沿った内容の事例を紹介することで、精度の高いアウトプットとなり、信用度も増し、案件のクロージングといった業務のゴールへ近づくことになります。
また、クライアントの真意を踏まえたうえで、自らのエネルギーの配分をコントロールすることが出来て、生産性を向上することが出来ます。
かくゆう筆者は、12年間のSE経験ののち、8年間外資系コンサルタント会社にフリーランスで契約し、戦略、IT、PMOコンサルタントとして活動していました。当時、クライアントとの人間関係構築や真意の把握に苦労した経験を持っています。そのころから、心理学、コミュニケーションについて学びはじめ、業務で実践して、とても効果的だったと実感しています。本記事を読んでいただき、精度の高いアウトプットを作成し、生産性向上の一助になれば、幸いです。