ウォーターフォールやアジャイルなど、システム開発を進める手法は1つではなく、目的や開発案件に応じてさまざまなものが選ばれます。
中でも、アジャイル開発の一種として扱われる「スクラム開発」は、システムやプロダクトの開発の際に使用されている手法です。
名前は聞いたことはあっても、「どのような手法かあまり理解していない」という人も多いのではないでしょうか。
そこで今回は、アジャイル開発の基本情報を踏まえ、スクラム開発の概要と、必要な人材などについて紹介します。
アプリやソフトウェア開発において、アジャイル開発やスクラム開発を採用したい企業担当者であれば、ぜひご参照ください。
目次
初めてプロジェクト担当者になった方向け
プロが教える「IT基礎知識・用語集」プレゼント
そもそもアジャイル開発とは?
アジャイル型開発の流れ | |
---|---|
工程 | 詳細 |
➀企画 | 「どんなシステムやソフトウェアを作りたいのか」を具体的に決める |
➁イテレーション | 計画、設計、実装、テストのサイクルを回す |
③リリース | 完成したシステムをリリースする |
➁~③の工程を繰り返し行う |
アジャイル開発は、アプリやソフトウェア開発で用いられる手法の1つです。そもそも「アジャイル」とは直訳すると「素早い」「機敏な」「頭の回転が速い」という意味があります。アジャイル開発では、納品するプロダクトまたはプロジェクトをスプリントと呼ばれる小単位に区切って開発を進めるため、言葉の意味通り素早く、短い期間でシステムを開発することが可能です。
細かい単位で「計画、設計、テスト」を繰り返すことで、開発期間が短くてもより希望に適したプログラムを形成しやすくなります。端的に言えば、開発の計画を大まかに立てたうえで、「今後の仕様や設計の変更を前提に」開発を行う手法がアジャイル開発です。
プロダクト開発を、その時々のニーズに合うように設計を進めることができるので、開発の途中での計画、設計変更も可能です。アジャイル開発はプロダクトを一度開発してもその後に更新したり内容を変更したりすることもできるので、より時代やニーズにあったプロダクト開発ができます。そのため、更新が必要なWebサービスやモバイルゲームなどの開発にも優れていて、常に使いやすさを意識してバージョンを更新することができるのです。都度、アップデートが必要なサービスの開発に向いています。
なお、アジャイル開発については、別ページでも紹介しています。詳しい開発フローや適した開発案件、メリット・デメリットなどを知りたい方であれば、ぜひご参照ください。
■アジャイル開発とは?今さら聞けない開発手法のメリット・デメリット
スクラム開発とはどんなもの?
スクラム開発とは、先に挙げたアジャイルの亜種とも呼べる開発手法です。チームを組んで役割やタスクを分散しつつ、コミュニケーションを取りながら行う特徴があります。スポーツとして馴染み深いラグビーのスクラムにちなんで、「スクラム開発」と名付けられました。スクラム開発はチーム全員で開発を進める手法のため、アジャイル開発の中でも、チーム間のコミュニケーションがより大切になる開発手法です。
チームとして「何が必要か?」「いつまでに必要か?」「誰が何をやるべきか?」という視点からチームメンバーにタスクを振り分け、それぞれがそのタスクを達成することでプロダクトの完成を目指すのです。それぞれの作業が、他の人の作業を支えている形になるので、チームワークやコミュニケーションが重要になります。
それぞれの人が役割を持って開発に取り組めるため、さまざまな作業を同時進行的に進めることができ、効率化をはかれます。反対に、コミュニケーションが取れなくなると、開発がスムーズに進行しないこともしばしばです。また、チーム全員による作業の精査を行うことも可能なので、より充実したプロダクトの制作ができます。複数人でプログラミングやシステム開発を進めるときには、スクラム開発の採用を検討してみてはいかがでしょうか。
スクラム開発に必要な人材とは?
スクラム開発に必要な人材(スクラムチーム) | |
---|---|
工程 | 詳細 |
プロダクトオーナー(PO) | 開発プロジェクトにおけるオーナーで意思決定を行う存在 SMやステークホルダーとの連携によってプロジェクトを成功に導くのが役目 |
スクラムマスター(SM) | 開発プロジェクトにおけるマネージャーのポジション システム開発の指揮やスケジュール管理などが主な役目 トラブルが発生した際に解決役を担うことも多い |
ステークホルダー | 開発プロジェクトに資金提供を行うスポンサーの立場 直接的に開発に携わることは少ないが、POやSMに対する発言権を持つ存在 |
開発エンジニア | 開発プロジェクトで実際にシステム開発を行うスタッフ 開発に必要なスキルを備えたエンジニアやデザイナーが採用される 開発エンジニアのスタッフ間の上下関係はなく平等であることがほとんど |
スクラム開発のチームメンバーは、全体の進行を行うマネージャーから実際に作業を行うエンジニアまで多岐に渡ります。ここでは、スクラム開発に関わるメンバーについて詳細に紹介します。
●プロダクトオーナー(PO)
まずプロダクトオーナーは、プロダクト(製品や成果物のこと)やシステムの開発に決定権を持った実質のオーナーです。また同時にプロジェクトの責任者とも言えます。そのため市場やニーズを把握していること、目的についての知識も要求されます。
●スクラムマスター(SM)
スクラム開発においては、開発の管理を担うプロジェクトマネージャーという名称のポジションが存在しません。そこで、スクラムマスターが全体の進行をサポートすることになります。チーム内でのトラブルなどに関してプロダクトオーナーと相談し、開発中の指揮を取るのもスクラムマスターの仕事です。確認作業や、トラブルを解決するためのポジションでもあり、全体を統括しています。システム開発の精度を上げるためのポジションでもあり、長期的にチームでのスケジュール管理を担っています。
また、同時にプロジェクトの進行スピードなどを管理したり、品質や生産性の低下などがないように管理したりしていきます。チームのプロセスを考慮して、それぞれの開発エンジニアにアドバイスなどを行うのもスクラムマスターです。アイデアをプロダクトに落とし込むため、積極的に改革を行える人材が求められるポジションです。
●ステークホルダー
金を提供しているスポンサー、社内の上司などをステークホルダーと呼びます。開発には従事しないものの発言権もあり、スクラムチームで構築や要件の変更をなどへの意見を仰ぐこともあります。直接開発は行わないことがほとんどです。
●開発エンジニア
開発エンジニアは、スクラムマスターやプロダクトオーナーの指示に従い、実際に開発を進めるスタッフのことです。システムエンジニアやデザイナーなどを含め、目的にあった開発エンジニアが選抜されることになります。このときに重要視されるのが開発エンジニアのスキルです。システム開発に優れたエンジニアやステークホルダー側からの出向者などの人材を必要とするケースも少なくありません。
開発エンジニアは、ステークホルダーからの要望をヒアリングし、調整、交渉を繰り返すことで、より開発するサービスの精度を上げるという役割も担っています。開発エンジニア自身があまり知識のない分野においては、その分野に精通したエキスパートの指示のもとにプロダクトを開発する場合もあります。
ここで紹介したプロダクトオーナーとスクラムマスター、開発エンジニアをまとめて「スクラムチーム」と呼びます。また、スプリントプランニングを行うのは、プロダクトオーナー、スクラムマスター、開発エンジニアというポジションの人たちですが、開発エンジニアの人数はケースバイケースで複数人となるような大掛かりなプロジェクトもあります。
スクラム開発で使用される用語
ここでは、スクラム開発で使用される代表的な用語をいくつか紹介します。
-
スプリント
-
スプリントプランニング
-
デイリースクラム
-
スプリント・レトロスペクティブ
-
プロダクトバックログ・リファインメント
-
プロダクトバックログ
-
スプリントレビュー
●スプリント
プロジェクトを項目に分けて小単位に区切ったものをスプリントと言います。システム開発の進捗や状況などを確認し、状況に応じてスプリントの調整を行います。
●スプリントプランニング
プランニングの名の通り、スプリント内での計画のことです。 作業の工程や予測を含めた、実現可能なプランを具体的かつ詳細に計画します。
●デイリースクラム
スプリントにトラブルがないかどうかを確認するミーティングのことです。 このミーティングで、プラン通りに作業が進んでいるかを確認することができます。
●スプリント・レトロスペクティブ
プロダクトが仕上がったら改善点を模索して、より精度の高いプログラムを組む作業です。何度か修正を繰り返すこともあります。
●プロダクトバックログ
プロダクトの作成にあたり、必要項目を順番に並べたリストのこと。のちに、項目の追加も可能です。
●プロダクトバックログ・リファインメント
プロダクトバックログに含まれる項目に対して、詳細の追加、見積もりを行うことです。いつどのように行うかは、スクラムチームが検討します。
●スプリントレビュー
スプリントが仕上がったらステークホルダーにフィードバックをしてもらい、修正を繰り返す作業のこと。多くの場合、フィードバックからプロダクトバックログを調整します。
いずれの用語も、他の開発手法ではあまり使用されないケースがほとんどです。これらの用語を踏まえ、以下ではスクラム開発の具体的な手順について紹介をしましょう。
スクラム開発はどのような手順で行われる?
それでは、具体的にスクラム開発とはどのように行われるのでしょうか? ここではその手順を紹介します。
-
バックログを作成する
-
スプリントプランニングを行う
-
スプリントで実装する
-
スプリント・バックログで実装、確認する
-
デイリースクラムでコミュニケーションをはかる
-
スプリントレビューでフィードバックする
-
スプリントを振り返る
まずバックログを作成しますが、この際に、プロダクトごとに制作するリストをアップします。その後、スクラムチームでスプリントプランニングミーティングを行い、工数の見積もりを行う流れです。また、ここでメンバーに作業を振り分けて分担させます。それぞれのスタッフが指揮や作業に入って以降は、デイリースクラムで都度、情報共有をします。ここで日々のタスクや発生している問題などを解決します。
一旦プロダクトが完成したら、ステークホルダーに対してスプリントデビューを行い、スプリントの反省会を行います。このレビューによって、プロダクトの完成度をさらに高めることができるのです。スクラム開発はこのように、常にチームで知識を共有、問題点を指摘し改善しながら、プランニング、設計、テストを行えることで、プロダクトの完成度が高くなるのが特徴です。
スクラム開発に適した案件は?
スクラム開発に適した案件は、後々に更新が必要なシステムです。例を挙げると、常に更新が必要な運用型のWEBサイトやアプリケーション開発、最終的な納期よりも品質を優先したい案件に向いています。チーム間で連携をしつつ、速度と確実性の高い開発を行いたい場合は、スクラム開発を選択することをおすすめします。しかし、案件によっては他の開発方法を選択した方が良いことも少なくありません。例えば、柔軟性のあるアジャイル開発と比較されやすい開発手法としてウォーターフォール型があります。
端的に言えば、ウォーターフォール型は最終的な納期までにプロダクトの完成品を納品するという手法です。要件定義から、リリースまで、途中レビューなどをあまり行うことなくスピーディーに行います。このウォーターフォール型での開発は、単調で更新があまり必要ないプロダクト、納期を確定させたい案件が最適です。ウォーターフォール型開発とアジャイル開発の違いを詳しく知りたい場合は、以下のページも参考にしてみてください。
■ウォーターフォール型開発とは?アジャイル型開発との違いは?
今回は、スクラム開発の基本情報や開発フローなどを詳しく紹介しました。
システム開発と一言で言っても、その開発手法はさまざまです。案件に見合った手法で開発を行わなければ、想定より時間がかかってしまったり、品質が低下してしまったりと、さまざまな部分に不都合が生じやすくなります。そのため、繰り返しになりますがシステム開発を検討する場合、1つの方法に固執をせず、案件に応じた手法を選択することが重要です。
システム開発の最適な発注先をスムーズに見つける方法
システム開発会社選びでお困りではありませんか?
日本最大級のシステム開発会社ポータルサイト「発注ナビ」は、実績豊富なエキスパートが貴社に寄り添った最適な開発会社選びを徹底的にサポートいたします。
ご紹介実績:22,000件(2024年10月現在)
外注先探しはビジネスの今後を左右する重要な任務です。しかし、
「なにを基準に探せば良いのか分からない…。」
「自社にあった外注先ってどこだろう…?」
「費用感が不安…。」
などなど、疑問や悩みが尽きない事が多いです。
発注ナビは、貴社の悩みに寄り添い、最適な外注探し選びのベストパートナーです。
本記事に掲載するシステム会社以外にも、最適な開発会社がご紹介可能です!
ご相談からご紹介までは完全無料。
まずはお気軽に、ご相談ください。 →詳しくはこちら
初めてプロジェクト担当者になった方向け
プロが教える「IT基礎知識・用語集」プレゼント
■システム開発に関連した記事