コラム

アジャイル開発の手法とは?メリットやデメリット、将来性を解説

2021年11月05日
業界事情、トレンド

システムやソフトウェアの開発手法の一つであるアジャイル開発。近年取り入れるケースが増えており、その必要性については経済産業省・総務省が発行する文書でも触れられています。

本コラムでは、アジャイル開発の方法やメリット・デメリット、アジャイル開発で求められるエンジニアのスキル、将来性などについて解説していきます。

アジャイル開発とは?

アジャイル(Agile)は英語で「素早い」を意味する単語。「企画→設計→実装→テスト→リリース」といった開発の一連の流れを機能単位で何度も繰り返すことによって、従来の開発手法と比べ開発期間が短いのが最大の特徴です。

◇アジャイル開発の誕生

2001年にアメリカ・ユタ州で17人の技術者・プログラマーによって提唱されたのが始まりと言われています。彼らがより良い開発手法を議論していくなかで「アジャイルソフトウェア開発宣言」がまとめられました。宣言はソフトウェアの開発とそれに基づく12の原則を定義しており、令和3年現在でも内閣官房情報通信技術(IT)総合戦略室の「アジャイル開発実践ガイドブック」でも参考情報として用いられるなど、アジャイル開発の公式文書として知られています。

参考:「アジャイル開発実践ガイドブック」(内閣官房情報通信技術(IT)総合戦略室)

◇アジャイル開発のプロセス

・リリース計画

アジャイル開発の場合、計画時点では大まかな仕様の決定だけに留め、全体像を明確にすることはありません。何故なら「開発途中で仕様や要求、設計に変更がある」という考えを前提にしているためです。大まかな決定に留めているため途中で方向性がぶれないよう舵取りが必要にはなりますが、途中で変更やしやすいため、顧客の要求や世の中のニーズの変化に最大限対応できる強みがあります。

・イテレーション

大まかな計画が立ったら、イテレーションを繰り返して開発を進めます。イテレーションは「反復」という意味を持つ言葉で、企画からテストまでを短期間で繰り返す開発サイクルを指します。一つのイテレーションは一週間~一か月ほどで進行するのが一般的で、完了するごとに新しい機能がリリースされていきます。アジャイル開発ではこのイテレーションを繰り返すなかで完成度を高めていきます。

アジャイル図

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

ウォーターフォール開発は事前に各機能や仕様を詳細に決定し、綿密に立てた計画のもと設計・実装・テストの工程を順番に完了させていく進め方です。計画に沿って開発が進むため、途中変更がないのが原則です。もし開発途中で要求・仕様の変更が起きた場合は手戻り負担が大きく、追加費用やスケジュールの大きな遅延を招くリスクがあります。

 

ウォーターフォール図

◇アジャイル開発の手法

アジャイル開発には手法が複数種類あります。代表的なものを紹介します。

・スクラム

アジャイル開発の手法のなかでも最も有名なのが「スクラム」です。ラグビーで肩を組みチーム一丸となってぶつかるフォーメーションを「スクラム」と呼びますが、それと同じようにチームワークを重視して開発を進めていきます。スクラムではメンバーがイテレーションごとに計画・設計・実装・テストを進めていきますが、それぞれのイテレーションの進捗確認や動作検証を行うために、メンバー間のコミュニケーションが欠かせません。コミュニケーション不足に陥ると、リリースした機能が正常に動かないといった問題が発生する可能性が高まります。

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

途中で変更があった際に、最も柔軟に対応できる手法です。顧客とも頻繁にコミュニケーションをとること、まずはできるだけ単純な実装にてシンプルさを重視すること、定期的にフィードバックを得ること、勇気を持ち大胆な変化を受け入れること、チームの他のメンバーを尊重すること。これら5つの価値を共有することを推進しています。

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

顧客(ユーザー)の視点を重視するために、顧客にとって価値ある機能を中心に開発する手法です。この手法を進める際には最初に顧客が求めていることを明確にする必要があり、明確になった顧客の要望に応じて機能を選定し開発を進めていきます。顧客の要望に寄り添うことから、品質が高い機能を開発しやすいと言われています。

◇アジャイル開発に求められるスキル

従来主流であったウォーターフォール開発では工程が明確に区切られており、割り当てられた工程の開発に集中できるため、比較的経験が浅いエンジニアでも対応しやすいと言われています。一方アジャイル開発では一人が複数の工程を担当するため、マルチスキルが求められ市場価値が高いとされます。必要なスキルの一部をご紹介します。

・技術的スキル

アジャイル開発では計画・設計・実装・テストの全工程を担当するため、そのすべてに対応できる技術的スキルが求められます。またプロジェクトによっては採用しないこともありますが、ペアプログラミングやテスト駆動開発、継続的インテグレーションといったアジャイル開発の各種手法についても実践できるようになっておく必要があります。

・チームワーク

アジャイル開発はチームで行う開発手法です。イテレーションの進捗確認や動作検証を行うためにはメンバー間のコミュニケーションが欠かせませんし、時にはメンバー同士で教え合うこともあるでしょう。そのため個人の技術力の高さだけではなく、チーム内や他のステークホルダーとも連携しながら開発を進めるスキルが求められます。

・自発性

PMから指示を受けて開発を進める形式ではないため、メンバー一人ひとりが自発的に行動する必要があります。数あるタスクに自主的に手を挙げて担当する、必要な場合には積極的にスキルを向上させようと努力するといった姿勢が求められます。

image

メリット

◇柔軟な対応ができる

アジャイル開発は計画段階で細かな仕様を決めないため、開発途中であっても仕様変更・追加に柔軟に対応しやすいと言われています。また機能単位で開発を進めることで変更・追加があっても一つのイテレーション内で完結できるため、手直しの工数を抑えられるというのも柔軟な対応を可能にする理由の一つでしょう。

◇開発スピードが速い

計画段階で細かな仕様を決めずにスタートできるため、素早く開発に着手できます。また、全機能の開発完了後に顧客提供となるウォーターフォール開発と異なり、アジャイル開発では開発が完了した機能から順次リリースできるため、開発期間が短縮できます。

◇ドキュメント作成を必要最小限に抑えられる

アジャイル開発では開発開始後も顧客とコミュニケーションを取ったり、実際に動くシステム・ソフトウェアを進行管理の物差しにしたりすることで、ドキュメント作成を最小限に抑えることができます。従来よりも量を抑えられますが、ドキュメント作成を否定するということではありません。アジャイル開発であっても要件定義書や基本設計書、テスト結果報告書など最小限のドキュメントは用意しておくべきです。

デメリット

◇スケジュールが立てにくい

機能ごとに開発を進めていくことで、全体のスケジュールや進捗具合が把握しにくくコントロールが難しくなりがちです。気が付いたら納期に間に合わない…なんてこともありますので注意が必要です。

◇方向性がぶれやすい

大まかな仕様しか決めずに開発に着手するため、顧客の要望に応えていくうちに仕様変更・追加が重なり当初の計画からずれたり、場当たり的な開発で方向性がぶれやすいといった懸念があります。

◇人材育成が難しい

先述の通り、アジャイル開発には技術面のほかチームワークといった幅広いスキルが求められます。また自発性など、研修をしたからといって誰もが簡単できるわけではない要素も含まれているため、育成が難しいとされています。

注目されている理由

◇時代にマッチしているから

現代は企業を取り巻く環境や社会が急速に変化し、また複雑に絡み合う、先行き不透明な時代です。課題にぶつかってもはっきりとした答えが出しにくいため、企業は仮説と検証を繰り返し常に変化しながら価値を創造していくことが求められています。こうした時代を背景に、システム・ソフトウェア開発においても要求変化への対応力が求められ、柔軟性・臨機応変さに長けたアジャイル開発に注目が集まっています。

現代におけるアジャイル開発の有効性については、令和3年版の情報通信白書でも触れられています。

システム開発についても、変化が激しい現代においては、要件が変化することを前提としたアジャイル開発が有効であると言われているが、我が国では、大企業を中心として、最初に綿密な計画を立てた上で、要件定義から設計・開発・テスト・運用に至る工程を順番に行うウォーターフォール型が中心で、変化を前提としたアジャイル開発の導入が遅れている。」

出典:「令和3年版情報通信白書」(総務省)

◇DX推進に向いていると考えられているから

DXの本質はレガシーシステムの刷新ではなく、データとデジタル技術の活用による商品やサービス、ビジネスモデルの変革です。そのためシステム・ソフトウェアづくりに終わりはなく、変容する顧客のニーズに合わせて改善を繰り返す必要があります。このように継続的な改善・リリースが求められるDXにおいては、柔軟性・臨機応変さに長けたアジャイル開発が向いていると考えられ、注目が集まりました。

DXレポートでも、アジャイル開発が適しているケースについて触れられています。

「今後、DX を実行していく上で、要求仕様が不明確な状態で小刻みな開発を繰り返すことで具体化していくような案件もある。このような案件では、開発手法として従来のウォーターフォール開発ではなく、アジャイル開発の方が適している場合がある。

出典:「D X レポート~ITシステム「2025年の崖」の克服とDXの本格的な展開~」(経済産業省)

アジャイル開発の将来性

変わりゆくユーザーニーズや時代の変化に柔軟に対応できるアジャイル開発を採用する企業は、今後増えていくと予想されます。大手企業を中心にアジャイル開発要員を増加させる計画が立てられたり、民間企業に限らず政府情報システムの開発においてもアジャイル開発の適用を支援する動きが見られます。

参考:「アジャイル開発実践ガイドブック」(内閣官房情報通信技術(IT)総合戦略室)

また経済産業省の「D X レポート2(中間取りまとめ)」には、

「今後、ユーザー企業において DX が進展すると、受託開発の開発規模や案件数が減少するとともに、アジャイル開発による内製が主流になると考えられる。」

出典:「DXレポート2(中間取りまとめ)」(経済産業省)

とあり、アジャイル開発が主流となる将来を予想しています。

◇アジャイル開発を取り入れる際には

アジャイル開発を取り入れる企業が増えていく一方で、デメリットにも記載した通り、アジャイル開発に対応できる人材の育成は難しいとされています。いざアジャイル開発に取り組もうとしても、経験者や必要なスキルを持ち合わせた人材がいなければ失敗に終わることも予想されます。アジャイル開発を取り入れる際には、メリット・デメリットを正しく理解すると同時に、対応できるIT人材の育成・獲得も視野に入れながら、計画的に進める必要があります。

まとめ

アジャイル開発は従来の開発手法よりも開発期間を短縮でき、仕様変更・追加にも柔軟に対応できるという特長を持っています。企業を取り巻く環境が急速に変化し先行きが不透明な現代において、アジャイル開発は注目され取り入れる企業が増加しています。

一方、アジャイル開発に対応可能な人材を育成するのは難しく、また市場価値が高いため求人を出しても採用は容易ではありません。

アジャイル開発を取り入れる際、人材面で課題を抱えた場合におすすめしたいのがフリーランスIT人材の活用です。企業で経験を積んでから独立した方、最初からフリーランスで始めた方などフリーランサーになるまでの経緯はそれぞれですが、多くが幅広い経験・スキルを持ち合わせた人材です。自社内にノウハウ・スキルがない場合には、こうした外部人材を有効活用することも視野に入れていきましょう。

フリーランスITエンジニア専門エージェント「i-common tech」では、 常時2,500名以上の ITエンジニアが登録しており、その中から貴社のプロジェクトに適したスキルを持つITエンジニアをご紹介いたします。

長期間はもちろん1か月など短期間での契約も可能なため、プロジェクトの状況に応じてご活用いただけます。まずはお気軽にご相談ください。

同じカテゴリーのコラム

0120-929-732
受付時間 平日9:00〜18:00まで