アジャイル開発とは?システム開発の新たな潮流を考えてみる

 2019.02.23  ビジネスプロセス改革推進室

 システムの開発現場において「アジャイル開発」はすっかり中心的な存在になりました。なぜ「アジャイル開発」はそれほど注目されるのでしょうか。

本稿ではそのアジャイル開発について解説し、業務システム開発のあり方について考えてみたいと思います。

アジャイル開発という概念が誕生したのは2001年代に、システム開発において専門性の高い有識者が集まり「アジャイルソフトウェア開発宣言」を策定したことが始まりです。

これによるとアジャイル開発は以下12の原則に従ってシステム開発を進めることと定義されています。 

  1. 顧客満足を最優先し、価値のあるソフトウェアを早く継続的に提供します。
  2. 要求の変更はたとえ開発の後期であっても歓迎します。変化を味方につけることによって、お客様の競争力を引き上げます。
  3. 動くソフトウェアを、2-3週間から2-3ヶ月というできるだけ短い時間間隔でリリースします。
  4. ビジネス側の人と開発者は、プロジェクトを通して日々一緒に働かなければなりません。
  5. 意欲に満ちた人々を集めてプロジェクトを構成します。環境と支援を与え仕事が無事終わるまで彼らを信頼します。
  6. 情報を伝えるもっとも効率的で効果的な方法はフェイス・トゥ・フェイスで話をすることです。
  7. 動くソフトウェアこそが進捗の最も重要な尺度です。
  8. アジャイル・プロセスは持続可能な開発を促進します。一定のペースを継続的に維持できるようにしなければなりません。
  9. 技術的卓越性と優れた設計に対する不断の注意が機敏さを高めます。
  10. シンプルさ(ムダなく作れる量を最大限にすること)が本質です。
  11. 最良のアーキテクチャ・要求・設計は、自己組織的なチームから生み出されます。
  12. チームがもっと効率を高めることができるかを定期的に振り返り、それに基づいて自分たちのやり方を最適に調整します。

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

アジャイル開発ってなに?

上記の12原則を見ただけでは「結局のところアジャイル開発って何なの?」という疑問が残ります。

アジャイル開発とは簡単にいえば「小さな開発単位を設けて要件を分離し、開発とテスト、さらに改善を繰り返していくことで従来のシステム開発手法よりも早く、そして柔軟性を持って進めるシステム開発手法」のことです。ちなみにアジャイル(Agile)とは「素早い」「俊敏」という意味です。

そんなアジャイル開発の基本プロセルは「リリース計画」と「イテレーション」のたった2つで構成されています。

リリース計画

新しいソフトウェアを開発したり新しい機能を実装するにあたって、大体の仕様と要件を定義するのがリリース計画です。

仕様および要件は細部まで定義するのではなく、あくまで「大体」定義します。これはアジャイル開発が「システム開発途中に仕様や要件が変更されるのは当たり前」という前提を持った開発手法だからであり、仕様および要件が明確に定義されていないからこそ顧客からの急な変更にも対応できるようになっています。

従来のシステム開発モデルである「ウォーターフォール開発では、最初にシステム全体の仕様と要件を細かく定義して、一連の流れに沿って開発を進めていきます。しかし、それでも仕様および要件の変更は起こるものです。

ウォーターフォール開発は工程の後戻りが難しい側面があるため、ちょっとした変更が開発スケジュール全体に影響を及ぼすこともあります。

その点アジャイル開発はそうした不測の事態を想定しているため、ちょっとした仕様や要件の変更が起こっても即座に対応でき、かつ開発スピードを落とさずにプロジェクトを進行できるというメリットがあります。 

イテレーション

イテレーション(Iteration)とは「反復」という意味です。

アジャイル開発においては小さく区切った開発単位を指します。リリース計画によって仕様と要件の定義が完了すると、優先度の高いものから「計画」「設計」「実装」「テスト」を反復的に行います。

このことから、アジャイル開発はイテレーションごとにウォーターフォール開発のようなプロセスを持っていると考えてよいでしょう。

 「計画」「設計」「実装」「テスト」という開発プロセスをイテレーションごとに区切るとより手間がかかるのではないか?と考えることもできますが、実際には仕様および要件ごとの基準をクリアするスピードが早く、かつ柔軟性の高い対応ができるため効率良くシステム開発を進めていくことが可能です。

イテレーションは通常、開発するシステムや実装する機能に応じて1週間~4習慣程度で区切ります。それ以上長くなるとアジャイル開発としての利点を失うことが多いためです。

こうしたアジャイル開発に適したシステム開発とは、モバイル向けのアプリケーション開発やWebサービス開発等です。これらの分野は技術進歩が早く、かつ顧客ニーズも多様に変化します。そうした変化のスピードに対応するためにも、アジャイル開発によって素早い開発を行うことが有効的です。 

その反対に、長年手作業で行われてきた業務プロセスをシステム化することには不向きです。一連の流れで開発し、開発工程ごとに成果物を設けて着実にプロジェクトを進めていくウォーターフォール開発が有効的です。

ただ、業務プロセスの中にも、完全な定型業務ばかりでなく、変則的な非定処理の開発や部門を横断する業務プロセスの改善、コラボレーション強化などによる生産性向上のためのシステムなどは、アジャイル型のシステム開発をトライしやすいプロジェクトと言えます。

アジャイル開発の中にも種類がある

一言でアジャイル開発といっても、その種類によって特徴が異なります。

代表的なものとして「スクラム」「XP(エクストリームプログラミング)」「FDD(Feature Driven Development:ユーザー機能駆動開発)」などがあります。

それぞれ簡単にご紹介して行きます。

スクラム

メンバー自身がイテレーションごとの計画や設計、実装を進めていき進行に問題はないかを精査するコミュニケーション重視のアジャイル開発です。

メンバー同士で定期的に進捗を管理します。コミュニケーションが不足するとリリースした機能が正常に動作しなかったりといった問題が生じます。

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

プログラマー中心のアジャイル開発であり、「コミュニケーション」「シンプル」「フィードバック」「勇気」という4つの価値を共有することで開発を進めていきます。

仕様や要件の途中変更への柔軟性を重視したものなので、変更に立ち向かう「勇気」がとっても重要です。

FDD(Feature Driven Development:ユーザー機能駆動開発)

顧客にとっての機能価値(Feature)とは何か?に主眼を置いてプロジェクトを進めるアジャイル開発です。

ユーザー側のビジネスの見える化を実施してから、実際に動作するソフトウェアを適切な間隔で開発していきます。 

アジャイル開発をビジネスを加速する!

企業にとって、システム開発やITツールの利用目的は、事業に直結するサービスを提供することや、業務プロセスを効率化(自動化)させることで、コストを抑えながら、事業スピードを高めることにあります。

そんなニーズがシステム開発に高まる中、アジャイル型の開発手法は、スパイラル型のシステム開発を行うアプローチで、段階的に機能追加を行ったり、稼働の安定化を図るなど、システムのあり方そのものを変えつつあります。

従来の開発アプローチでは、全ての業務要件が網羅され、システム要件として定義するため、設計段階で多くの時間を要する点と、リリース前に再三にわたり結合テストや総合テストを繰り返すため、どうしてもコストと時間を多く費やします。

アジャイル開発のもっともポピュラーな利用例は、Web開発やモバイルアプリサービスなどですが、社内業務システムのプラットホームもWeb化されモバイルサービス化されてきていますから、十分にアジャイル開発の入る余地があります。

旧来型企業の代表例である、製造業などにおいても徐々に社内で利用される業務システムがWeb化モバイル対応が進んでいるため、社内システムにアジャイル型開発を利用するメリットを十分に享受することが可能です。

従業員のニーズや社内規定などのルールにも対応できるばかりか、システム開発とビジネス現場の距離が縮むことで、社内全体の一体感や達成感が共有される環境に変わっていきます。

まとめ

システム開発の手法が変わることで、スピーディーにシステム開発やリリースを行うことが可能になって行くことを述べてきました。

その一方で、事業部門の方にとっては、本当に必要なものを正確に理解し、サービス要件として開発側に伝える必要があります。また、システム化の成果についても正しく定量化する必要があります。

また業務部門のシステム開発の場合も同様で、現在の業務プロセスの把握やフローの見直しを行うことで、本来あるべき業務システムの機能が見えてきます。

アジャイル開発手法を使用することで、短いスパイラルで段階的な開発が可能となりますので、優先度が高いところから着手し効果を測定しながら、全体に展開するなど、従来とは違ったダイナミックなシステム展開も可能になりますので、一度アジャイル開発を特性について検討してみてはいかがでしょうか。

業務プロセス改善の進め方まるわかりガイドブック

RECOMMEND関連記事


RECENT POST「ビジネスプロセスについて」の最新記事


この記事が気に入ったらいいねしよう!