アジャイル思考とは?メリットや必要性、身につける方法をわかりやすく解説
大規模なソフトウェア開発をする際に、「アジャイル開発」という手法が大きな実績をあげています。アジャイル開発は、頻繁に変化する仕様変更の要求を柔軟に受け入れ、速やかに開発を進める手法です。
そして、目まぐるしく周囲の状況が変わる現代では、アジャイル開発から派生した「アジャイル思考」も注目を集めています。アジャイル思考を身に着ければ、時代の変化に対して、スピーディーに対応することが可能となるのです。この記事では、「アジャイル思考」とはどんなものかを、「アジャイル開発」の解説とともにわかりやすく解説します。
アジャイル(開発)とは?
アジャイル思考とは何かを考える前に、その基となるアジャイル開発について簡単におさらいしておきましょう。
アジャイル開発とは、ソフトウェアやシステムを開発する際の手法の1つです。アジャイル開発では、機能ごとの小さな単位で「要件定義・設計・開発・テスト・リリース」という工程をすすめます。
1つひとつの工程自体は、一般的に短い期間で完了します。そうしてこの工程を積み上げていくことで、ソフトウェア・システムの最終的な完成を目指すのです。
アジャイル開発のメリット
仮に開発の途中で仕様変更の要求が発生したとしても、アジャイル開発であれば少ない工程で後戻りできます。小さな単位で開発を進めていることから、対象の単位だけ見直せばよいからです。
そのためアジャイル開発では、あらかじめ開発中の仕様変更・修正があることを前提として開発を進めます。「アジャイル(Agile)」とは「機敏」という意味の英単語ですが、名前の通り変化にスピーディーに対応できるのです。
またアジャイル開発では、最初に全体の仕様を厳密に決定しません。顧客と綿密にコミュニケーションを取りながら開発を進め、開発中の仕様変更の要求にも適宜応じていきます。顧客の要望に柔軟に対応できることから、顧客の満足度を向上させられる点もメリットです。
ウォーターフォール開発との違い
ウォーターフォール開発とは、アジャイル開発が普及する前から使われていた開発手法です。ウォーターフォール開発ではアジャイル開発と異なり、あらかじめ全ての機能の要件定義や設計を細かく決定します。そうしてソフトウェア・システム全体を通して、設計・開発・テスト・リリースという工程を上から順番に実行するのです。ウォーターフォール開発では水が落ちる(=Water fall)という名前の通り、後戻り(上にさかのぼる)ことは想定していません。
そのためウォーターフォール開発の場合、途中で仕様変更の必要性が生じても柔軟に対応できません。工程途中の仕様変更は、最初の設計段階からやり直さなければならないので、膨大なコストがかかってしまいます。この点が、仕様変更の要求という変化にも、「機敏(= Agile)」にフィットするアジャイル開発との大きな違いです。
アジャイル開発の代表的なフレームワーク
一口にアジャイル開発といっても、そのフレームワークは複数あります。ここでは、その中でも代表的な種類をピックアップして紹介します。
スクラム
ラグビーの「スクラム」のように、チームが一丸となり連携しながら開発していく手法です。スクラムでは、何よりもチーム内のコミュニケーションが重要視されます。
開発の進捗や進め方、開発中の機能のクオリティ等に関して、細かく情報共有をはかるのです。スクラムでは、「デイリースクラム(朝会)」のようなコミュニケーションの機会を増やします。エクストリームプログラミング(XP)
エクストリームプログラミング(XP)は、開発中の仕様変更を特に重視するフレームワークです。エクストリームプログラミング(XP)では、顧客とのコミュニケーションやフィードバックを頻繁に行います。また顧客は開発チームのメンバーに、「オンサイト顧客」として加わるのもエクストリームプログラミング(XP)の特徴です。
そうして開発中に発生する顧客の仕様変更の要望を積極的に受け入れ、技術的な手法により臨機応変に対応します。技術面が重要となることから、アジャイル開発のなかでも、プログラマーが中心となるフレームワークと言われます。
アジャイルソフトウェア開発宣言
アジャイル開発のベースとなっているのが、「アジャイルソフトウェア開発宣言」です。
アジャイルソフトウェア開発宣言は、2001年に17名の技術者・プログラマーが米国のユタ州に集まって議論しまとめられました。その内容は以下の通りです。
私たちは、ソフトウェア開発の実践
あるいは実践を手助けをする活動を通じて、
よりよい開発方法を見つけだそうとしている。
この活動を通して、私たちは以下の価値に至った。プロセスやツールよりも個人と対話を、
包括的なドキュメントよりも動くソフトウェアを、
契約交渉よりも顧客との協調を、
計画に従うことよりも変化への対応を、価値とする。すなわち、左記のことがらに価値があることを
認めながらも、私たちは右記のことがらにより価値をおく。引用元:アジャイルソフトウェア開発宣言
https://agilemanifesto.org/iso/ja/manifesto.html
この宣言の重要なポイントは、顧客満足度を最優先して仮に開発の終盤に仕様変更の要求が生じても柔軟に対応することです。そうして顧客の要望にフィットする、品質の高いソフトウェア・システムを継続的に提供することを目指しています。
アジャイル(的な)思考とは?
アジャイル(的な)思考とは、言葉の通り上述したアジャイル開発のコンセプトに基づいた思考の仕方を指します。以下、アジャイル思考とは具体的にどんなものか、その特徴をみていきましょう。
素早く、短期間でまわしていく
アジャイル(的な)思考で重視されるのは、そのフットワークの軽さです。新しいアイデアについて、PDCAをコンパクトなサイクルで回して、その価値を高めて形にしていきます。
たとえば世界的な民泊大手「Airbnb」は、人に部屋を貸し出すという簡単なアイデアから、わずか3年で70万の民泊施設を仲介するまでになりました。アプリやウェブを通した配車サービスで知られるUberに関しても、設立から2年という短い期間で数百万ドルもの資金調達に成功しています。
トライ&エラーを繰り返す
アジャイル思考では、トライ&エラーを積極的に受け入れます。新しいアイデアを速やかに実践して、より早く失敗して改善を繰り返します。そうして一刻も早くプロトタイプを完成させ、継続してサイクルを回し、品質を向上させていくのです。
なぜ今、アジャイル思考が必要なのか
現代では、たった1つの呟きが企業や商品の評判を大きく変えうるSNSが広く使われています。また誰もが想定しなかったコロナウイルスの世界的流行によって、私たちの暮らしは大きく変化しました。
また現代は、先が見えない「VUCAの時代」と言われることがあります。VUCAとは、「Volatility(変動性)」・「Uncertainty(不確実性)」・「Complexity(複雑性)」・「Ambiguity(曖昧性)」の頭文字をとった造語です。
簡単に言えば「予測不能な状態」という意味です。2010年以降、世界の経済界では「VUCAの時代に突入した」と言われることが多くなっています。また最近では、「VUCA」に加えて「BANI」という言葉も登場しています。
【関連記事】BANIとは?VUCAに代わる新しい世界をあらわす言葉
変動の激しい時代の中で、目まぐるしい変化に対応し新しい価値を見出すためには、何よりもスピード感が重要です。今回のコロナ禍においても業績を伸ばしている企業は、いち早く消費者の新しいニーズをキャッチし、それに応えるサービスや商品を素早く形にしています。
ウォーターフォール的な悠長なスピードでは、この変化のスピードにはついていけません。アジャイル思考によって予測不能な時代の変化に柔軟に対応し、新しい価値を生み出し続けることが必要なのです。
アジャイル思考を身につけていくには
アジャイル思考を自分のものにするためには、どうすればよいでしょうか。まずは、日常的にできることから1つずつ実践していく必要があります。たとえば新しいサービスやツール、新製品はとりあえず試してみる、会議の中で提示されたアイデアは可能なものからすぐに実践してみるなど、失敗を恐れず手を動かし、行動することによって少しずつアジャイル思考が身についていきます。
まとめ
アジャイル思考とは、変動が激しく先が見えない現代において、目まぐるしい変化に柔軟に対応していくのに適した思考方法です。アジャイル思考は、新しいアイデアのトライ&エラーを積極的に推奨し、短いサイクルで新しい価値の創造・改善を推進します。
アジャイル思考において重要なのは「とにかく行動する」ことです。アジャイル思考を身に着けるには、会議で出たアイデアはできるものからすぐ実行に移すなど、日常的な事柄から実践する必要があります。
【アジャイル思考を身に着けたい方へ】
アジャイル思考を通じて、つながりや感動を生む体験や製品をデザインする、アジャイルシンキングコースを開催します!
このコースでは、顧客に共感し、インサイトに根ざした創造的なアイデアを生み出し、高速プロトタイピングとイテレーションによって製品・サービス・戦略の開発方法を変革する実践的な学びを得ることができます。アジャイルのマインドセットおよび反復的な実験的思考法を通じてVUCA時代に対応するためのアジャイル思考を身に着けたい方は、是非ご検討ください。詳細は以下のバナーよりご覧ください。
※この記事はTDSブログへ統合する以前のddpostの記事です。