Facebook x

ジャンル

開発技法・工程 2024.03.11
x hatenabookmark

アジャイル開発で採用される5つの手法と適した手法の選び方を解説

監修: 江添 智之

バルテス・ホールディングス株式会社 R&C部 副部長

アジャイル開発で採用される5つの手法と適した手法の選び方を解説

スピードを求められる昨今のソフトウェア開発において、主流となっているのが「アジャイル開発」です。

アジャイル開発にはさまざまな手法があり、どの手法を選ぶかでチームの成否は変わってきます。アジャイル開発を推進するのであれば、手法に関して理解を深めることが重要です。

この記事では、アジャイル開発で採用される5つの手法や、選び方について解説します。

もくじ
  1. アジャイル開発の概要
  2. アジャイル開発における主な5つの手法
  3. アジャイル開発で採用する手法の選び方
  4. まとめ:チームに合った手法を選び、アジャイル開発の成功を

1.アジャイル開発の概要

アジャイル開発という手法そのものについて、詳しく把握していない人も多いでしょう。まずはアジャイル開発の概要や、従来のウォーターフォール開発との違いについて解説します。

アジャイル開発とは

アジャイル開発とは、要件定義・設計・実装・テスト・運用(リリース)といったサイクルを細かい単位で繰り返す開発手法です。一般的にはソフトウェアの機能単位でサイクルを構成し、1機能のリリース後には新たな機能のサイクルを開始します。

1サイクルあたりの規模が小さい分、新たなサイクルへの移行がしやすく、予期せぬ仕様変更や追加要望にも対応しやすいのが強みです。リリース後に顧客のフィードバックを受けることを前提として、ソフトウェアを継続改善していく開発スタイルの企業も増えています。

顧客やエンドユーザーのニーズを柔軟に取り込めるアジャイル開発は、移り変わりの激しい昨今のソフトウェア開発に合った手法といえるでしょう。

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

アジャイル開発.png

アジャイル開発の進め方は、これまで多くの開発現場で採用されてきたウォーターフォール開発の進め方と大きな違いがあります。

ウォーターフォール開発は、事前に計画された開発スケジュールに沿って、要件定義から運用・リリースまで工程を進めます。ウォーターフォール開発は、後戻りしない前提で工程を進めていくのが特徴です。1サイクルの規模が大きい分、前工程の問題が判明した時の手戻りは大きくなります。

一方のアジャイル開発は、短いサイクルの開発を何度も繰り返します。仮に問題があっても、サイクルが小規模な分手戻りが小さく、場合によっては次のサイクルでカバーが可能です。ウォーターフォール開発については、次の記事も参考にしてください

2.アジャイル開発における主な5つの手法

アジャイル開発で採用される手法はさまざまですが、ここでは比較的ポピュラーな5つの手法を紹介します。

  • スクラム
  • XP(エクストリームプログラミング)
  • FDD(ユーザー機能駆動開発)
  • LSD(リーンソフトウェア開発)
  • カンバン

スクラム

「スクラム」はラグビーのスクラムのように、少人数のチームが密接に連携しながら開発していく手法です。「デイリースクラム」という毎日の小会議で状況を共有するほか、開発における意思決定も基本的にチーム内で行うなど、コミュニケーションが重要となります。

ゴールへと方向づける「プロダクトオーナー」、進捗管理を主導する「スクラムマスター」、各開発タスクをこなす「開発者」と役割分担が明確です。それぞれのすべきことが明確なため、各々が自分の役割に専念しながら効率よく開発を進められるでしょう。

また、スクラムでは1サイクルのことを「スプリント」と呼びます。スプリントは計画から開発(デイリースクラムを含む)、レビュー、振り返りまでの一連のプロセスです。スクラムについてより詳しく知りたい人は、次の記事を参考にしてください。

XP(エクストリームプログラミング)

「XP(エクストリームプログラミング)」は、顧客の要望が変化することを前提とし、その変化に柔軟に対応する手法です。開発初期には、それほど綿密な計画を立てません。顧客の要望をこまめに聞きながら開発を進め、動作するソフトウェアを頻繁にリリースするのが特徴です。

XPには多くのプラクティスがありますが、2名のプログラマーが共同で実装を進める「ペアプログラミング」が代表的です。ペアプログラミングでは1人がコードを書き、もう1人がすぐにレビューします。異なる視点からコードと向き合うため、問題を検出しやすいなど多くのメリットがあります。

XPでは、顧客や相手プログラマーとのやり取りが頻繁に発生するため、スクラム同様にコミュニケーションが重要です。開発を進めていく中で方向性を固めていくため、柔軟性を重視したい開発チームに合った手法といえるでしょう。

FDD(ユーザー機能駆動開発)

「FDD(ユーザー機能駆動開発)」は、「顧客・ユーザーにとって必要な機能(フィーチャー)」にフォーカスした手法です。開発すべき機能を網羅した「フィーチャーリスト」を作成し、それに沿って機能ごとに計画・設計・構築(実装やテスト)を進めていきます。

FDDにおける機能は、「トータル金額を算出する」のように小規模なもので構いません。重要なのは、顧客やユーザーにとって価値があるかどうかです。むしろ小規模なフィーチャーに分割することで、素早く顧客・ユーザーのニーズを満たせることに大きなメリットがあります。

完成したソフトウェアは機能単位でリリースが可能です。動作するソフトウェアを頻繁にリリースする点はXPと同様ですが、FDDではドキュメント経由のコミュニケーションがより重視されます。

LSD(リーンソフトウェア開発)

「LSD(リーンソフトウェア開発)」は、トヨタ自動車が取り入れた「リーン生産方式」をIT分野に応用した手法です。厳密に決められた進め方はありませんが、下記の7原則を念頭に置いて開発する特徴があります。

①無駄をなくす

②不具合を未然に防ぎ、品質を高める

③フィードバックから得た知識を蓄積・活用する

④重要な意思決定を急がない

⑤ソフトウェアを迅速にリリースする

⑥メンバーを尊重する

⑦開発プロセス全体を見て最適化する

さまざまな角度からの原則がありますが、全体として重要な方向性は「無駄をなくすこと」です。不具合を未然に防ぐことも、意思決定を急がないことも、将来的に発生する無駄の抑制につながります。無駄をなくすことにフォーカスしたい開発チームに適した手法といえるでしょう。

カンバン

「カンバン」は、開発プロジェクトの状況を可視化して管理しやすくする手法です。「カンバンボード」にTo Do・進行中・完了という3つの領域を用意し、各タスクを状況に合わせて配置します。カンバンボードは物理的なホワイトボードなどでも、ITツールでも構いません。

「進行中」のタスクが完了したら「完了」に移動すればよく、各タスクの場所によって状況が素早く把握できます。1サイクルが短いアジャイル開発では工程の移行が早い分、リアルタイムに状況を把握することが重要です。状況把握に役立つカンバンは、アジャイル開発と相性がよい手法といえるでしょう。

3.アジャイル開発で採用する手法の選び方

アジャイル開発には、前述した5つ以外にもさまざまな手法が存在します。手法によって開発の進め方が大きく変わってくるため、適した手法を選ぶことが重要です。ここでは、アジャイル開発で採用する手法を選ぶ際の、3つのポイントを紹介します。

開発チームの規模に合わせて選ぶ

手法によって適した人数は変わってくるため、開発チームの規模に合わせて選びましょう。例えば、スクラムでは5~9人のチームを構成することが一般的です。10人を超える規模の開発チームの場合、スクラムで重要となるメンバーの連携は取りづらくなるでしょう。開発チームの規模に合った手法を採用するほうが、その手法のメリットはより大きくなります。

重視する要素に合わせて選ぶ

開発チームが何を重視するかも、手法選びのポイントです。例えば、マネジメントのしやすさを重視するチームであれば、チーム内で綿密に進捗管理できるスクラムが合っています。毎日のデイリースクラムで各メンバーが直面する問題を素早く共有でき、スクラムマスター主導のもと正しい方向に軌道修正できます。

一方で開発の柔軟性を重視するチームの場合は、仕様変更に寛容なXPがよいでしょう。顧客の要望が変化することを前提としているため、初期段階で計画に縛られ過ぎることがなく、開発を進めながら臨機応変に対応できます。手法のメリットを把握し、チームのニーズに合った手法を選ぶことが重要です。

複数の手法を組み合わせることも検討する

複数の手法を組み合わせることで、双方のデメリットをカバーしたり、メリットを大きくしたりできる場合があります。例えば、開発経験のない新人がいる場合、スクラムを採用するとコミュニケーションに苦しむケースが少なくありません。そこでXPのペアプログラミングを併用すると、先輩メンバーが新人をフォローしやすくなるでしょう。

まとめ:チームに合った手法を選び、アジャイル開発の成功を

アジャイル開発には、スクラムやXP、FDD、LSD、カンバンなど多くの手法が存在します。各手法にはメリットがあればデメリットもあるため、それぞれの特徴を把握して適切なものを選ぶことが重要です。
開発チームの規模や重視する要素はもちろん、複数手法の組み合わせも考えましょう。

適切な手法を選べなければ、アジャイル開発の成功にはつながりません。

ぜひ今回の内容を参考にしてチームに合った手法を選び、アジャイル開発を成功させていきましょう。

開発技法・工程
x hatenabookmark

監修: 江添 智之

バルテス・ホールディングス株式会社 R&C部 副部長

WEB系、エンタープライズ系、医療系など様々な開発業務にプログラマ、システムエンジニア、プロジェクトリーダーとして携わった後、バルテスにてテストエンジニア・コンサルタント業務に従事。現職では主にテスト業務に関する研究開発および人材育成を担当。Scrum Alliance認定スクラムマスター、ディープラーニング検定(G資格)、ネットワークスペシャリスト、データベーススペシャリスト、JSTQB Advanced Level(テストマネージャ、テストアナリスト)など、ソフトウェアの開発およびテストに関する資格を多数取得。JaSST Kansai 実行委員。現在の関心は機械学習のテスト分野への応用と効率的なテスト自動化。