アジャイル開発をより迅速に進めるために必要なポイントとは?

アジャイル開発をより迅速に進めるために必要なポイントとは?

敏捷(びんしょう)や機敏といった意味を持つ「agility(アジリティ)」を語源にした「agile(アジャイル)」という言葉があります。アジャイル開発とは、顧客の方針、ニーズの変化に機敏かつ柔軟に対応しながら進めていく開発手法を意味します。従来の一般的な開発手法であるウォーターフォール開発に比べて、アジャイル開発では短期間で実現が可能なため、現在では主流になりつつあるのです。アジャイル開発の概要、メリットとデメリット、アジャイル開発を行ううえで大容量ストレージが重要になる理由についてお伝えします。

顧客の要求に柔軟に対応するアジャイル開発とは?

海外市場からの競合の参入、市場の成熟化、製品のコモディティ化。現在、企業を取り巻く環境が厳しくなっているなか、製品開発のスピードを少しでも早めることは喫緊(きっきん)の課題となっています。また、競合や市場の変化を見ながら柔軟に仕様を変更していくことも、生き残るために重要なポイントのひとつです。

従来の一般的な開発手法であったウォーターフォール開発は、企画書作成や市場調査を行ったうえで綿密な計画書のもとに進められます。あらかじめ完成形が見えているため、品質の担保、進捗状況が明確といったメリットがありました。その反面、計画から完成までに多額の予算と月日がかかる、途中での仕様変更に応えにくい、といったデメリットがあり、急速に変化する市場の要求に応えるのが困難になっています。

アジャイル開発は、こうした市場の変化に対応すべく登場した開発手法です。1週間から最長でも1ヶ月間のサイクルで、計画から実装、テストまでを反復(イテレーション)しながら開発を進めていきます。市場や競合の動向を見ながら柔軟に仕様変更することが可能で、短期間での開発が実現できます。

アジャイル開発にはさまざまな手法がありますが、そのなかで代表的なものを3つ紹介します。

1. スクラム

ラグビー用語のスクラムを語源に持つスクラム開発は、ひとつのチームが協力しあい、メンバー主導で計画、開発、動作確認などのイテレーションを行います。顧客が提示した順番に機能を提供することを重視したもので、アジャイル開発のなかでもっとも一般的な開発手法です。

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

プログラマーが主導し、「計画にもとづいた設計、開発」よりも「顧客の要求する仕様変更」に柔軟に対応していくことを重視した開発手法です。

3. ユーザー機能駆動開発(FDD)

まず顧客のビジネスを可視化し、そのうえで適切な間隔で機能を提供していきます。顧客にとっての機能価値を重視しながら進めていく開発手法です。

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

アジャイル開発は、昨今のビジネスモデルにあわせた開発手法といえます。アジャイル開発のメリットとデメリットについて見ていきましょう。

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

  • 短期間での開発が可能
    アジャイル開発では、1週間から1ヶ月間のサイクルで計画、開発、実装、テストをイテレーションしていきます。そのため、事前に綿密な企画書を作成する、市場調査を行う、といった工数を削減でき、短期間での開発が可能となります。
  • 顧客の要望に応じた柔軟な対応が可能
    短いサイクルで開発を進めていくため、顧客からの急な仕様変更にも柔軟に対応できます。
  • 開発対象を最小化することで、不具合時にも迅速に対応できる
    アジャイル開発では開発対象を最小化していきます。なんらかのトラブルが発生しても戻る工数が少ないため、長期計画で進めるウォーターフォール開発に比べて、迅速な対応が可能です。
  • 仕様変更や要望が増えるため、納期が遅くなる場合がある
    仕様変更や追加要求に柔軟に対応できることもあって、頻繁に要望が出る可能性が高まります。その結果、当初の予定より納期が遅くなることもあります。
  • スケジュールをたてづらい
    頻繁な仕様変更や追加要求があることで、スケジュール変更をせざるをえない状況が増えると、短い期間中でのスケジュール設定が難しくなります。
  • 当初の開発目的がぶれやすくなる
    ウォーターフォール開発のように、初期段階で最後まで計画を立てるわけではないため、当初の目的がぶれやすくなります。その結果、無駄な工数が増えてしまう場合もありえます。

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

アジャイル開発のデメリットを克服する方法

いくつかのデメリットはあるものの、それを上回るメリットがあるため、現在、ウォーターフォール開発から主流の座を奪いつつあるアジャイル開発。ただし、アジャイル開発の効果を高めるには、デメリットとなる部分をできるかぎり克服しなければなりません。アジャイル開発のデメリットを克服する主な方法を紹介します。

1. 顧客の要望に対応できるように、大容量のストレージを用意する

機能をひとつずつ開発、リリースしていくとはいえ、仕様変更や機能追加が重なっていけば、それだけストレージ容量を圧迫し、開発の遅れにつながっていきます。ストレージはあらかじめ大容量のものを用意しておく必要があります。

2. テストや改修の手間を軽減させるために、高速なストレージを用意する

大容量のストレージを用意すると同時に、もうひとつ重要なポイントは、高速処理が可能なストレージを選択することです。どんなに大容量であっても、処理に時間がかかれば、結果としてテストや改修の手間がかかり、全体の進行も遅れてしまいかねません。

3. 顧客やプロジェクトチーム内で常に連携をとり、情報共有を欠かさない

柔軟な仕様変更や機能追加を実現するためには、顧客とはもちろん、プロジェクトチーム内でも連携と情報共有をこまめに行う必要があります。アジャイル開発では、全体のスケジュール設定が難しいからこそ、コミュニケーションを欠かさず、最新の情報を共有することが重要なのです。

4. 全体を見た開発の進捗管理、顧客との折衝を行えるリーダーを設置する

アジャイル開発の効果を最大限に発揮させるには、チーム内の各メンバーがそれぞれの役割に集中することです。その環境をつくるためのポイントは、全体を見ながら開発の進捗管理、顧客との折衝などを行えるリーダーをすえることです。各メンバーが安心して業務に集中できるようにすることで、柔軟な対応も可能となり、アジャイル開発の成功につながります。

まとめ:大容量ストレージの存在がアジャイル開発の可能性をさらに広げる

一般的に、大企業がすすめる大規模プロジェクトはウォーターフォール開発、スタートアップ企業や中小企業でのプロジェクトにはアジャイル開発、といったイメージがあるかもしれません。しかし現在では、状況に応じて柔軟に対応し、迅速な開発により先行者優位の立場をつくらなければ、競合他社との差別化を図ることが難しくなっています。いまや大規模プロジェクトであっても、アジャイル開発が行われることはめずらしくないのです。

事前に100%の要件定義を行わずに、常に改善を続けていくアジャイル開発は、ある意味、終わりがない開発手法ともいえます。したがって、顧客からの要望がどれだけ増えても対応できるような、高速かつ大容量のストレージを用意しておく必要があります。INFINIDATは、数PBのスケーラビリティとFlashを超えるパフォーマンスを誇り、大規模プロジェクトであっても十分に対応可能なストレージです。これからの時代に適したアジャイル開発を行ううえで、欠かすことのできない大容量ストレージをぜひご検討ください。