アジャイルとは?代表的な2つの手法

みなさんは、「アジャイル開発」という言葉を聞いたことがありますか? IT業界にいる方なら、おそらくよく耳にする言葉ではないかと思います。ここでは、初めてアジャイル開発という言葉を聞いたという方や、よく聞くけど、あまり詳しくは分からないといった方のために、この言葉の意味や歴史、現状などについて詳しく説明していきたいと思います。

アジャイル開発とは?

アジャイル(agile)という言葉は、英語で「俊敏な」「迅速な」という意味です。アジャイル開発は、従来の計画駆動型の重量級な開発手法(ウォーターフォール開発手法など)とは異なり、素早く軽量なソフトウェア開発の手法で短期間開発することできる特徴があります。

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

ウォーターフォール開発とは、名前の通り水が上から下に流れるように進行することから、一度次の工程に進むと戻ることができない特徴があります。比較的長期間にわたるプロジェクトにおいては全体の進行状況の把握がしやすい半面、柔軟性が無いことが挙げられます。

メリットとして、

  • 当初の計画通りに進む
  • 工程の順序が決まっている

一方のデメリットは、以下のようになります。

  • 途中で計画の変更不可
  • 前の工程に戻れない
  • 長期間にわたるため、開発まで時間がかかる

アジャイル開発は、開発を進めていく中で仕様や設計の変更があることを前提とするため、最初から綿密に仕様を計画するのではなく、大まかなプランにもとづいて、小単位で開発を進めていくというやり方です。

主なメリットは、

  • 柔軟性があるため、途中で計画の変更が可能
  • スピードを大事にできる
  • フィードバックが反映される

デメリットとしては、次のとおりです。

  • 品質が落ちてしまう恐れがある
  • 大規模なプロジェクトには向いてない

2001年にIT業界において著名な人々が集まり、アジャイルソフトウェア開発宣言をまとめたことがきっかけで広まったと言われています。

アジャイルソフトウェア開発宣言

アジャイルソフトウェア開発宣言には以下のようなことが書かれています。

「私たちは、ソフトウェア開発の実践あるいは実践を手助けをする活動を通じて、よりよい開発方法を見つけだそうとしている。この活動を通して、私たちは以下の価値に至った。プロセスやツールよりも個人と対話を、包括的なドキュメントよりも動くソフトウェアを、契約交渉よりも顧客との協調を、計画に従うことよりも変化への対応を、価値とする。すなわち、左記のことがらに価値があることを認めながらも、私たちは右記のことがらにより価値をおく。」

http://agilemanifesto.org/iso/ja/manifesto.html

このような考え方の下で、アジャイル開発は、従来のやり方とは異なる革命的な手法として発信され、欧米を中心に浸透していきました。

アジャイル開発の具体的な手法

アジャイル開発はあくまでソフトウェア開発における全体的なコンセプトであり、その概念にもとづいた手法が複数存在します。その中でも、実際に多くの企業が取り入れているのが、 2つの手法です。

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

ここではこの代表的な2つの手法について見ていきます。

XP

XPは、プログラマー中心の開発手法で、特に技術的な実践を重視しています。1990年代後半に入って、著名なプログラマーであるKent Beck(ケント・ベック)氏らによって考案されました。XPの中心には、「コミュニケーション」「シンプル」「フィードバック」「勇気」の4つの価値観があります。さらに、4つの価値観を組み合わせるとこうなります。

プロジェクトにおけるコミュニケーション不足を解消し、プログラマーが陥りやすい過度な実装を減らすためにシンプルさを意識します。そして、クライアントやユーザーからのフィードバックを積極的に得ることで、そこに必要な部分を把握します。上記のそれぞれの価値を実現するために勇気という価値観で変化を受け入れる姿勢を示します。

これらの価値を実現するためにいくつかの実践方法が定義されていますが、その中でも特徴的なのが、サイクルタイムとペア・プログラミングです。

  • サイクルタイム

開発期間を1~2週間という短い期間に区切り、「設計→実装→テスト→リリース」を繰り返すことです。そうすることで、クライアントからより早くフィードバックを得ることができます。

  • ペア・プログラミング

2人1組となってプログラミングを行なうやり方で、1人がコードを書き、もう1人がコードのレビューや全体の設計の確認をすることで、よりリアルタイムでディスカッションを図ることができるプラクティスです。

スクラム

スクラムは、技術的な概念ではなく、チーム一体となってプロジェクトを進めることに重きをおいた手法です。その名のとおり、言葉の語源はラグビーなどのスポーツから来ています。スクラム開発は、1986年に竹内弘高氏、野中郁二郎氏が発表した論文をもとにJeff Sutherland(ジェフ・サザーランド)氏らが1993年に考案、適用した手法です。スクラム開発では、チーム一体となって活動するためのプロセスが定義されています。

プロセス1)デイリースクラム(朝会): 短時間で現状の共有をするため、毎朝朝礼を実施
プロセス2)リリースプランニング: プロジェクト立ち上げ時に、優先順位や工数についてチーム全体でプランを立てる
プロセス3)スプリントプランニング: 約1~4週間のイテレーション(開発期間サイクル)で、どのくらいの範囲の機能を実現するかについて、チームでプランを立てる
プロセス4)スプリント: ひとつのイテレーションにおける開発フェーズ。ステップ3で立てたプランをもとに開発を進める
プロセス5)スプリントレビュー: ひとつのイテレーションで開発したもののデモを行ない、ステークホルダとともにレビューする
プロセス6)ふりかえり: スプリントごとにチームでふりかえりを行い、次のスプリントに活かす

このようにスクラム手法は、プロセスが中心なので、ソフトウェア開発以外のプロジェクトにも取り入れることができるやり方なのです。

「スクラム開発の歴史や事例」に関する記事はこちら

アジャイル開発の現状

それでは現在、実際のソフトウェア開発において、どのくらいの企業がこのアジャイル開発を取り入れているのでしょうか?

欧米とは異なり、日本ではなかなか浸透しなかったアジャイル開発ですが、2018年4〜6月に実施されたガードナージャパンによる調査では、日本の約7割のIT関連企業がアジャイル開発を導入中または導入予定であると回答しました(対象:IT関連企業715社)。そのきっかけとして多く挙がった理由は「ビジネス要求のスピードに対応するため」、「新たなビジネス価値を創造するため」でした。

しかし、アジャイル開発を導入している企業のうち、約6割の企業で、アジャイル開発に実際に取り組んでいるのは全体組織の25%であると回答しています。このことから、アジャイル開発はそれぞれの企業の組織全体にはまだ広まっていないことが分かります。その原因としてあげられているのが、

  • アジャイルに対する理解度が組織全体ではばらつきがある
  • 識者がほとんどいないため、アジャイル開発に求めていた効果や結果が出ていない 

といった内容で、今後さらにアジャイル開発を推進していくためには、社内トレーニングや具体的な好事例のシェアなどが必要だということが明らかになっています。

まとめ

競争の激しいIT業界では、よりスピーディーな対応が求められることが多く、短期間で成果を生み出すことのできるアジャイル開発は非常に効果的です。

しかし、日本においてアジャイル開発実践の歴史はまだ浅く、経験者も少ないことから、今後この手法を広げていくためには、積極的な取り組みが欠かせません。まずはさまざまなプロジェクトからアジャイル開発の基礎をおさえて、この手法の強みを理解したうえで、実践していただければと思います。

新入社員「オレ、定時で帰ります。」上司より先に退社キメてみたら…

この記事を読む

イチオシ記事

最新情報をチェックしよう!
>TeamHackで、タスク管理を驚くほどラクに。

TeamHackで、タスク管理を驚くほどラクに。

TeamHackは、タスク管理とチャットが同時にできる「業務コミュニケーションのしやすさ」に特化したオンラインワークスペースです。コミュニケーションツールとタスク管理ツールを行ったり来たりして、二重に管理の手間がかかる問題をスッキリ解決します。

CTR IMG