DX用語辞典
new
更新

アジャイル開発

Agile development

類義語:

短い開発期間単位を採用することで、リスクを最小化しようとする開発手法の一つ。

アジャイル開発とは?メリットや具体例を解説

アジャイルおよびアジャイル開発という言葉は、元々ソフトウェア開発の用語として用いられていました。近年ではそのコンセプトがビジネスの場面で活用できるとして、さまざまなビジネスシーンでも用いられるようになってきています。
もちろん、DXを推進するプロジェクトにおいてもアジャイル開発は重要な手法となっています。
本記事ではアジャイル開発について、その意味やメリットとデメリット、手法について紹介します。

アジャイルとは

アジャイル(agile)は、機敏・軽快さなどの意味がある名詞アジリティ(agility)の元となる形容詞です。
アジャイルは抽象的な概念であり、明確な定義はないため、使用する際には注意が必要です。

アジャイル開発とは

ソフトウェア開発において仕様や要件定義等の変化に柔軟に対応できるよう、個々の機能を動かすプログラムごとにテストや実装を繰り返し、最終的にそれらを統合したソフトウェアを開発していく思想です。求められるプロダクトが刻々と変化するスピードの速い現代において、まさに「走りながら考える」開発思想といえ、以下のような特徴を持ちます。

イテレーション
アジャイル開発で、個々の小さなシステムやプログラム開発業務を繰り返すサイクルの一単位を「イテレーション」と呼びます。イテレーションは「反復」という意味で、設計・テストなどの工程を短期間で繰り返すことで、問題の発見や改善を行い、1つのソフトウェアを作り上げていきます。

DevOps(デブオプス)
DevOpsは、開発(Development)と運用(Operations)を組み合わせた言葉です。
開発担当者と運用担当者を1つのチームにすることで、システムの開発/運用における要件を相互に理解する、パフォーマンスの問題を即座に開発にフィードバックする、継続的テスト(CT)及び継続的デプロイメント(CD)ツールの採用などによりリリースサイクルを自動化するなど、アジャイル開発に求められる高頻度なリリースを実現するための取り組み全般を指します。

ウォーターフォール開発とアジャイル開発の違い
ウォーターフォール開発とは読んで字の如く、上流の水が流れ落ちるように、最初の企画段階で要件定義や設計などを決定し、その流れに沿ってソフトウェア開発の工程を細かく設定していく手法です。
開発に機敏さを求め、プログラムごとに小単位で開発していくアジャイル開発とは概念が異なります。
ウォーターフォール開発はゴールが明確であり、工程に沿って順番にプログラムを開発できるメリットがありますが、前提となる要件に変更が生じた場合や、作業中に不具合などが発生した場合に、修正作業が複雑化・困難化しやすいデメリットがあります。

アジャイル開発のメリット

アジャイル開発は細かなニーズにも柔軟に対応できます。特に以下のメリットが大きいと考えられます。

「ユーザーニーズへの対応力」
アジャイル開発ではソフトウェア開発における実装単位が小規模なため、顧客からの仕様変更依頼等にも比較的容易に対応できます。
アジャイル開発のイテレーションは短いため、1つのイテレーションが終わるごとにユーザーとコミュニケーションをとり、そのタイミングでユーザーの意見を即時反映し、次のイテレーションで開発を行うという形が取れます。
ユーザー側でも、求める機能と出来上がったソフトウェアの機能にギャップがないか確認する機会が多くなり、高い満足度につながる可能性があります。

「初期ローンチスピード」
アジャイル開発は、必要最小限のプロダクトをまずリリースし、顧客の反応を踏まえて継続的にアップデートを繰り返す手法です。このため、顧客ニーズが不確かな領域や、市場への参入速度が求められる領域において「まず初期プロダクトをローンチして市場の反応を知りたい」という場合に適しています。

「手戻りのコストが少ない」
手戻りとは、作業の進行中に一度完了した工程やタスクにおいて修正や変更の必要が生じたため、元の段階に戻ってやり直すことを指します。
アジャイル開発では、開発を短いサイクルで区切るため、仮に問題が判明したとしてもそのサイクルで費やした工数が少ない分、開発コストに受けるダメージも最小限に抑えることができます。

アジャイル開発のデメリット

アジャイル開発のデメリットは、メリットの裏返しと言えます。
以下のデメリットに十分注意し、場合によっては、ウォーターフォール開発を取り入れる検討も必要と考えられます。

「全体像が見えにくい」
機能単位の開発なので全体像が見えにくく、修正を繰り返しながら進むので最終ゴールがどうなるか予想が難しいと言えます。

「開発のコンセプトが迷走する可能性がある」
ユーザーニーズに柔軟に対応できるということは、開発するオブジェクトにおける仕様等の変更依頼によって開発のコンセプト自体が迷走するリスクもはらむということです。余分な時間がかかり、開発の終了が見通しにくくなることも考えられます。

「スケジュール管理が難しい」
アジャイル開発では、開発途中の変更に対応するため詳細な計画を決めないことも多く、進捗状況や納期の管理が難しいと言えます。

「開発負債のリスク」
アジャイル開発は変化に柔軟な対応が行える分、その場をしのぐため対応を行ったまま、開発が継続される可能性があります。
例えば開発途中で、UI(ユーザーインターフェイス)のボタンを大きく見やすくしてほしいというユーザーの依頼があったとします。ところが画面サイズの制約がありボタンを大きくするのが難しい場合に、全体の文字サイズを小さくすることで相対的に大きく見せる、などの対応です。
このような対応は積もり積もって、のちのち手がつけられないほどの開発負債になる可能性があります。
必要な修正等をその場しのぎや後回しで対応せず、適切なプロセスで開発を行なっていく必要があります。

アジャイル開発の手法

アジャイル開発ではさまざまな手法が用いられます。
以下に主な手法を紹介します。

スクラム
ラグビーのスクラムのように少人数で役割分担(プロダクトの責任者、調整役、開発メンバーなど)をしながら効率的に開発を進めていく開発手法です。

エクストリーム・プログラミング
開発初期に厳密な計画を立てず、顧客の要望を取り入れながら柔軟に開発を行なっていくアジャイル開発手法です。イテレーション単位で開発を進めていきます。

FDD(ユーザー機能駆動開発)
FDDとは、Feature Driven Developmentの略で、ユーザー目線で価値のある機能を中心に開発を進める開発手法です。
機能単位でリリースできるので、ユーザーニーズに素早く応えることができます。

TDD(テスト駆動開発)
TDD(Test-Driven Development)は、通常の開発とは逆に、プログラムの実装前にテストコードを書き、そのテストコードに適合するように実装を進めていく開発手法です。

アジャイル開発の歴史

アジャイル開発の手法は、2001年にある技術者グループが作成した「アジャイルソフトウェア開発宣言」から始まりました。
この時期、ITの世界では驚異的な速さで技術革新が進み、その結果、ソフトウェア開発においてもそれまで主流だったウォーターフォール開発に代わる開発手法が求められ、技術革新のテンポに柔軟に対応できるアジャイルソフトウェア開発の手法が取り入れられるようになっていきました。
アジャイルソフトウェア開発宣言では、急速にニーズが多様化するソフトウェア開発現場でより良い開発手法を実施するため、必要な価値として次の4つを挙げています。

  • プロセスやツールよりも個人との対話を
  • 包括的なドキュメントよりも実際に動作するソフトウェアを
  • 契約交渉よりも顧客との協力を
  • 計画に従うよりも変化への対応を

上述のさまざまな手法も、これらの価値を実現するための手段です。アジャイル開発の各場面において行き詰まった時、この宣言に立ち返って検討するのが良いと思われます。

DXを推進するためにアジャイル開発を採用

DXを推進するプロジェクトにおいては、刻々と変化する社会情勢に適応するためにも、ユーザーである企業の経営部門や現場の意見に対し柔軟な対応が求められます。
機能単位でシステムを開発するアジャイル開発であれば、優先順位の高い部分から開発を進められ、さらにはユーザーニーズへの都度対応なども容易であり、よりスピーディな開発が可能です。

具体的な例として「マイナポータル」の開発が挙げられます。
マイナポータルは、行政手続きのオンラインサービスです。所得税や地方税から子育て、介護まで、行政機関からのお知らせなどを確認できます。

過去、行政機関における開発は、長い期間をかけて開発し一気にリリースするウォーターフォール型が多く、開発の間に利用者を取り巻く状況が変わったり、利用者の視点でチェックして改善したりするような機会が少ないという課題がありました。

「マイナポータル」の開発では、行政の大規模な開発にもかかわらず、開発したものをいろいろな視点でチェックしたり、利用者のフィードバックを受けてどんどん改善したりするアジャイル開発を取り入れたのが特徴の一つとなっています。

SMBCグループとアジャイル開発の関わり

SMBCグループのITソリューションを担う日本総研では、機能要件の不確定度、納期の必達度、開発体制などからプロジェクトの特性を見極め、プロジェクト毎にウォーターフォール開発とアジャイル開発を使い分けてシステム開発を遂行しています。

日本総研のアジャイル開発をリードするDXシステム本部は、開発プロセスをより効率的かつスムーズに進めるため、「開発(Development)」と「運用(Operations)」それぞれの担当者が緊密に連携して、継続的インテグレーション(CI)、継続的テスト(CT)、継続的デプロイメント(CD)の仕組みを導入し、コミュニケーションコストを低く抑える「ワンチーム」の体制を構築するなど、多数のアジャイル開発案件を通じて獲得したノウハウを活用しながらSMBCグループのシステム開発に取り組んでいます。

まとめ

アジャイル開発とは、小さなプログラム開発によりテストや実装を繰り返し、ソフトウェアを開発していく思想です。ユーザーニーズの変化に素早く対応できる開発手法と言えるでしょう。
さまざまな変化に対して柔軟な対応力を持つメリットがある一方、全体像やゴールが見えにくいというデメリットがあります。
アジャイル開発の具体的な手法はさまざまで、上手に組み合わせて使う必要があります。
アジャイル開発の手法は、2001年の「アジャイルソフトウェア開発宣言」によって始まり、DX推進においても有効な手法と見られ、多くの場面で取り入れられています。

SHARE
  • Facebook
  • X
  • Line
  • Linkedin
  • Mail

新着用語

DX
(Digital Transformation)

類義語:

  • デジタルトランスフォーメーション

「Digital Transformation(デジタルトランスフォーメーション)」の頭文字をとった言葉。「Digital」は「デジタル」、「Transformation」は「変容」という意味で、簡単に言えば「デジタル技術を用いることによる、生活やビジネスの変容」のことを指す。