昨今、企業においてDX(デジタル・トランスフォーメーション)を推進するにあたって、「アジャイル」という言葉が注目されるようになっています。アジャイルという用語は元々、ソフトウェア開発の領域で使われていましたが、最近ではビジネスシーンでもよく耳にするようになっています。企業におけるDXの目標は、市場の要求やビジネスの環境が急激に変わる今の時代に合わせて、柔軟に対応できるように組織を変革することです。この変革を実現するために、デジタル技術を積極的に使い、新たな価値を生み出すことがDXの核心だと言えます。こうしたDXの目標を実現するうえで、「アジャイル」は重要な価値観や原則、システム開発手法として注目されているのです。本記事では、DX推進にアジャイルを活用する理由やメリット・デメリットを中心に分かりやすく解説します。DXにアジャイルを活用する理由企業がDXを推進するにあたって、アジャイルを採用すべき理由は主に2つあります。1つ目は、アジャイルは短いスパンのリリースを繰り返すシステム開発手法であり、移り変わりの早いニーズに対して仕様を徐々に近づけていけることから、顧客の課題解決に繋がるシステム開発の成功確率を高めることができます。それにより、顧客に対して高い価値や新しい価値を創造することでDXに求められる競争上の優位性を得ることが可能です2つ目は競合優位性を獲得すべく、よりスピーディな生産性を実現するために、アジャイルは有効なシステム開発手法であると考えられているためです。変化のスピードが急速化している現代では、プロジェクトを始める時点ですべての要件を固定してシステム開発を進めても、完成時にはその要件が古くなってしまうことがよくあります。その結果、新しく作ったシステムがすでに時代遅れなものとなり、期待した価値を提供できなくなるリスクがあります。そこで「より短いタイムスパンで仮説を立て、それを実際に動くシステムで検証しながら次の仮説を立て、さらに検証を重ねていく」といった試行錯誤の中で完成度を高めることで、顧客・市場に対してシステムが提供する価値の最大化を図る「アジャイル」の考え方が求められるようになってきました。ひとくちにDXと言っても、DXについては様々な定義を存在しています。アジャイルを取り入れたい方は、様々なDXについて知っておくことで柔軟に対応できる可能性が高まりますので、併せてご一読ください。DX(デジタルトランスフォーメーション)とは?定義や必要性、IT化との違いを解説アジャイルとは?本来、アジャイルは主にソフトウェア開発の分野で使われていた概念ですが、最近ではさまざまな業界・ビジネスで目にすることが増えてきました。「アジャイル(英語:Agile)」の名詞形「アジリティ(英語:Agility)」は、「敏捷」や「機敏」といった意味を持つ言葉です。ここから転じて、ITやビジネスの分野では、方針の変更やニーズの変化などに機敏に対応する能力を指す言葉として使用されています。急激に変化を続ける環境において企業を存続・成長させていくためには、常にあるべき姿に向けて改善・進化を続けなければなりません。これを実現するうえで、「アジャイル」の考え方は非常に重要であると考えられています。アジャイルマインドとアジャイル開発アジャイルは単にソフトウェア開発の方法論だけではなく、昨今は新しいビジネスを立ち上げる方法、組織の変革・働き方の改善に役立てられる考え方としても認識されています。このように応用範囲が広く、抽象的な概念であるため、理解が難しいという人もいるでしょう。ただし、本質を理解せずに形式だけをまねていても、DXを効果的に推進することは難しいです。そこで本章では、DXを推進するうえで把握しておくべき「アジャイルマインド」と「アジャイル開発」の概要を順番に解説します。アジャイルマインドアジャイルマインドとは、ビジネスや社会における価値の実現を主眼にして探索と適応を繰り返す思考のスタイルを指します。要するに、「価値駆動でものごとを進めていく考え方」のことです。冒頭でも説明したように、DXの目標は「市場の要求やビジネス環境に柔軟に対応できるように組織を変革すること」です。そのため、アジャイルマインドは、DXを推進するうえで重要な考え方だと言えます。2001年、従来のソフトウェア開発方法とは異なるアプローチを取っていた17人の開発者が集まり、「アジャイルソフトウェア開発宣言(※)」を発表しました。この宣言には、アジャイルの価値観や基本原則が記されています。※ソフトウェア開発におけるアジャイルアプローチを導く4つの基本的な価値観とそれを支持する12の原則で構成されている宣言のこと(詳しくは後の章「アジャイル開発の歴史」にて解説)参考:アジャイルソフトウェア開発宣言アジャイル開発アジャイル開発(英語:Agile Development)とは、設計・企画・テスト・実装を短期間で行い、これら一連のサイクルを繰り返しながらリリースを目指していく開発方法を指します。現在のシステム開発において主流とされている手法です。近年はシステム開発の分野に限らず、経営にもアジャイルの考え方を取り入れる動きが見られます。なお、従来のシステム開発では、ウォーターフォール開発と呼ばれる開発手法が主流とされていました。ウォーターフォール開発とは、上流工程から下流工程へと順番にプロセスを進めていく開発方法のことです(アジャイル開発とウォーターフォール開発の違いについては後ほど詳しく解説します)。アジャイル開発では、優先順位の高い要件から着手し、開発したそれぞれの機能の集合体として、1つの大きなシステムの形成を目指していきます。適応型の開発手法であり「プロジェクトの進行中に変化やトラブルが起こるのは当然」という前提で開発を進めるため、途中からの仕様変更に対応しやすい点が特徴的です。DX時代のソフトウェア開発では、「いかに効率化して人件費をはじめとするコストを削減するか」よりも、「いかに新しい価値を創造して競争優位を獲得するか」が重視されるようになってきています。しかし、新しい価値の創造は単純な一本道で実現できるものではなく、試行錯誤を伴うことが多いです。そのため、途中からの計画変更を想定しない「予測型」のソフトウェア開発手法(ウォーターフォール開発)は試行錯誤に向いておらず、計画途中でも状況変化への対応を繰り返す「適応型」のアプローチであるアジャイル開発が有用だと考えられています。なお、システム開発においてアジャイル開発を採用する場合は、ラボ型開発の形態が取られるケースが多く見られます。ラボ型開発とは、オフショア開発の一種で、一定期間にわたり専属チームを確保して発注側の指示で開発を行うことです。アジャイル開発とウォーターフォール開発の違いアジャイル開発とウォーターフォール開発の最も大きな違いは、予測型か適応型かという点にあります。ウォーターフォール開発は予測型の開発手法です。開発プロジェクトの最初のフェーズで完璧な計画を策定し、基本的にプロジェクト開始後に計画が変更することはありません。最初にすべての要求事項や機能を詳細に設定するため、予算や開発スタッフのアサイン計画などが立てやすくなります。一方で、開発が始まるまでに比較的多くの時間がかかってしまう点はデメリットです。そのほか、ウォーターフォール開発では、開発途中での仕様変更や追加対応を柔軟に実施できない点も、アジャイル開発との違いの一つです。仕様の抜け漏れが見つかったり、開発途中で要求に変更があったりすると、1つ手前の工程から見直さなければならないため、追加費用が発生したり、開発期間が延期になったりするおそれがあります。アジャイル開発のメリット・デメリット本章では、DXを推進する企業がアジャイル開発を導入するうえで想定される代表的なメリット・デメリットを順番に取り上げます。アジャイル開発のメリットまずは、DXを推進する企業がアジャイル開発を導入するメリットとして代表的なものを3つピックアップし、それぞれ順番に解説します。メリット①顧客のニーズに最大限応えられるアジャイル開発では、イテレーション(開発サイクルの単位)が比較的短くなることから、顧客のニーズに応えやすくなります。一般的に、開発プロセスの進行中に顧客のニーズを反映させることは簡単ではありません。特にウォーターフォール開発では、テストの工程に進むまで顧客(発注側)が実物をチェックする機会がなく、この段階で意見を取り入れるには多くの工程を遡らなければならないケースもあります。意見を取り入れることで、納期に間に合わなくなるおそれもあります。これに対して、アジャイル開発ではイテレーションを短くできるうえに、一つのイテレーションが終了するたびに顧客とコミュニケーションが取れます。このタイミングで顧客からニーズを汲み取ることで、次回のイテレーションで即座に反映させることが可能です。顧客からしても、アジャイル開発はプロダクトとニーズの間に齟齬がないかチェックするタイミングが多いため、安心感の強い開発手法であると考えられています。メリット②トラブルへ対処しやすいアジャイル開発では、初期段階で綿密な計画を立てないことから、開発途中で発生したトラブルにも柔軟に対処しやすくなります。テストの段階になってトラブルが発生しても、遡る工程が比較的少ないため、結果として修正対応にかかる時間を短縮することが可能です。これに対して、ウォーターフォール開発では初期段階で綿密な計画を策定するため、トラブル発生時の手戻り工数が大きくなりやすいです。メリット③開発スピードが早いアジャイル開発では、プロダクトの機能単位で「設計」「開発」「実装」「テスト」を繰り返すため、不具合が発生したとしても修正に求められる工数が少なくて済みます。そのため、開発スピードが比較的短くなりやすいです。これに対して、ウォーターフォール開発では、初期段階に決定した設計・計画を重視するため、トラブル発生時の修正にかかる時間が膨大になる可能性があり、開発ペースが低下しやすいです。アジャイル開発のデメリット続いて、DXを推進する企業がアジャイル開発を採用することで発生するおそれのあるデメリットの中から、代表的な内容を2つピックアップし、順番に解説します。デメリット①スケジュール・進捗管理が行いにくいウォーターフォール開発では、事前に計画を細かく立てることから、同僚や顧客との進行状況の共有をスムーズに行えます。これに対して、アジャイル開発では、計画を綿密に決定しない状態で開発に着手するため、スケジュール・進捗状況の管理・共有が難しいです。全体像を把握しにくいため、「現在の進行具合で目標を達成できるのか」を見極めることが難しいでしょう。予期せぬ変更への対応や顧客とのやり取りなどに時間を取られることで、納期に間に合わなくなる可能性が高まります。こうしたトラブルを避けるためには、納期を考慮したうえで、どれほどの変更であれば対応できるのかを検討し、適切に調整するといった対応が欠かせません。デメリット②開発の方向性や目的がブレやすい経験豊富なメンバーからすると、最小限の計画で作業を進められるアジャイル開発は、最大限に力を発揮できる開発環境になり得ます。ただし、アジャイル開発の「走り出してから考える」というスタイルは、開発の方向性や目的をブレさせる要因にもなるでしょう。開発プロジェクトについて詳細な文書化を行わずに、最終的な製品や成果の明確なイメージがないままプロジェクトを進行させると、スコープ(プロジェクトの成果物・機能として含まれる範囲)の膨張や手直しが発生しやすくなります。プロジェクトの不確定さがストレスに変わり、タスクの漏れや期限超過などが発生するおそれもあるため注意が必要です。アジャイル開発が向いている/向いていないシステム開発例アジャイル開発であれウォーターフォール開発であれメリットとデメリットの双方があります。DX推進の手段として活用する場合であっても、むやみにアジャイル開発を導入するのではなく、自社のシチュエーションを鑑みつつ適した開発手法を選択することが重要です。ここからは、アジャイル開発の導入が向いている(いない)システム開発の事例を順番に紹介します。向いている開発例アジャイル開発は、開発の途中で仕様変更の必要が生じる可能性が高いプロジェクトに向いていると考えられています。例えば、モバイル業界や研究分野などにおける開発プロジェクトでは、開発途中で市場のニーズが変わる可能性があるため、仕様変更の必要性が生じやすいです。また、簡単に操作できるUIが求められるソフトウェア開発のように、顧客のニーズに柔軟に対応する必要があるケースでも、アジャイル開発が向いているでしょう。以下に、アジャイル開発の手法が向いているといわれているシステム開発の一例をまとめました。アプリケーションWeb関連サービスゲームこのように、DX推進にあたって開発途中で多くの仕様変更が生じることが予想されるシステム開発を行う場合、ウォーターフォール開発ではなく、アジャイル開発の導入を検討することが望ましいです。向いていない開発例アジャイル開発が向いていないケースとして、綿密に品質を担保する必要のあるプロジェクトや、煩雑になりやすい大規模なプロジェクトなどが挙げられます。アジャイル開発は、プロジェクト進行中の変更を前提とする開発手法であるため、そもそも仕様変更がない(少ない)ことが判明しているシステム開発も不向きといえます。上記に挙げた開発ケースでは、要件定義で全工程のスケジュールを綿密に決定したうえで開発を進めていく重要性が高いため、アジャイル開発ではなくウォーターフォール開発の方が向いていると考えられています。以下に、アジャイル開発の手法が不向きといわれているシステム開発の一例をまとめました。企業の基幹システム医療関連のシステム組込系ソフトウェアこのようなシステムを開発する場面では、DXを推進する企業であってもアジャイル開発ではなく、ウォーターフォール開発の導入を検討することが望ましいです。アジャイル開発の歴史アジャイル開発の誕生は、2001年にアメリカ・ユタ州で行われた会議まで遡ります。この会議には17名のプログラマーが集まり、新しい開発手法について考えを練りました。彼らの討議の結果、生まれたのが「アジャイルソフトウェア開発宣言」です。この宣言には、彼らがソフトウェア開発を行ううえで大切にしているマインドセット、つまり「ソフトウェア開発で何を最も重要とするか」という価値観が明記されました。このマインドセットはソフトウェア開発者たちに広く受け入れられ、「アジャイルソフトウェア開発」の名前で世界中に急速に普及しました。そして現在、アジャイル開発の手法は多くの現場で活用されています。アジャイル開発が登場・普及した主な背景には、従来型のシステム開発において立ちはだかっていた「マネジメントの不確実性」と「ビジネスの不確実性」という2つの課題があります。それぞれの課題と、アジャイル開発の位置付けについて順番に解説します。マネジメントの不確実性いかなる見積もり手法を用いたとしても、システム開発にかかる時間を正確に算出することは不可能です。そのため、従来型のシステム開発では、予想外の工数の膨らみによって品質の低下・納期の遅れなどが頻繁に発生するという問題がありました。これに対して、アジャイル開発では、品質・コスト・納期を固定しつつ、スコープを柔軟に調整することで、マネジメントの不確実性の克服を図れます。ビジネスの不確実性たとえ自分たちが考える最高のプロダクトが完成したとしても、実際に顧客に使用してもらえなければ無価値です。そして、開発中のプロダクトを顧客に使用してもらえるかどうか判断するためには、実際に使用できる状態にする必要があります。従来型のシステム開発では、企画から市場リリースまでに時間がかかり過ぎてしまい、顧客への提供が遅れます。これでは、複雑かつ高速化しているビジネスのスピードについていけません。これに対して、アジャイル開発では、短い期間・小さな単位で開発を行います。まず顧客に使用してもらいフィードバックを得ることで、ビジネスの不確実性を軽減できるのです。このマネジメントとビジネスの不確実性の2つが、従来型のシステム開発で見られた課題です。これらの課題を克服できる開発手法として、現在はアジャイル開発が広く活用されています。まとめ企業が環境変化の激しい時代に対応していくためには、DXを推進しつつ、それに適した手法であるアジャイルの考え方を導入することが望ましいです。アジャイルの仮説検証サイクルを継続的に繰り返すことが、社会や顧客へ新たな価値を届けることにつながるでしょう。アジャイル開発では、顧客のニーズに最大限応えられたり、トラブルへの対処がしやすかったりする点が主なメリットです。その反面、スケジュール・進捗管理が行いにくかったり、開発の方向性や目的がブレやすかったりする点はデメリットとして考えられています。ウォーターフォール開発との大きな違いは、予測型か適応型かという点にあります。双方の特徴を十分に把握したうえで、自社の状況に適した開発方法を採用しましょう。