アジャイルとは?何故アジャイル開発が必要なのか?をまとめてみた

エンジニア
エンジニア

まずは、結論を簡単に。アジャイルとは?

  • 素早く開発しながら、より良いものを作るためにアジャイル手法を使います。
  • 最低限動く範囲で部分的に開発を行い、確認・改善する。これを繰り返しながら開発していく手法です。
  • ノウハウの無い分野や新しい技術を使い、開発の途中で仕様の変更があるだろうと予測されるプロジェクトに向いています。

なぜアジャイル開発が必要なのか?

IT化が急速に進み、複雑化している現代でのモノづくりは以下のような課題があります。

  • これだ、と決めた仕様が、開発中に簡単に変わる
  • ITシステムやWEBサービスの開発において、「仕様を決定する顧客」や「サービスを立ち上げる私たち自身」ですら、最終的な開発物を完璧にイメージするのは難しくなってきている。

従来では、プロジェクトを開始する段階で「こういうシステム・サービスを作る」と決めて、それに向かって計画立てて開発を行います。そのため、途中で仕様を変更する場合は、プロジェクトに大きな影響を与えます

また、仕様の変更だけでなく。スピード感も求められるようになってきています。

しかし、そもそも最終的な開発物のイメージができず、試行錯誤しながら全体の形を整えていくやり方では、求められるスピード感に対応できません。

つまり、従来の方法では、冒頭の課題に対応できなくなってきています。

このような背景があり、柔軟に開発しつつもスピード感をもって開発できる方法のひとつとして、アジャイル開発が注目されています。

アジャイル開発の概要

アジャイル(agile=機敏な、早い)という言葉のように、機敏にソフトウェアを開発していくことを目指したものです。元はRADと呼ばれる開発手法をベースに考えられた思想です。具体的な開発手法という訳ではなく、次の基本指針を掲げた開発方針のようなものです。

  • プロセス・ツールよりも、個人の対話を重視
  • 包括的なドキュメントよりも、動くソフトウェアを重視
  • 契約交渉よりも、顧客との協調を重視
  • 計画に従うことよりも、変化への対応を重視

これだけ聞くと「ドキュメントを残す必要はない、とにかく物を作る」「特に計画はせず、話し合いながら進めていく」という風に、準備・計画や設計といった上流工程は不要、と勘違いする方がいるかもしれません。

そうではなく、開発を行う本質である「要求を叶える」という点を早期確認するために、曖昧な要件や仕様を明確化する方法として、「対話」や「動くソフトウェア」を優先しているだけです。決して重視しない方を捨てているわけではありません

「今分かる範囲でも計画や要件を定義すること」「要件や仕様が明確になったら必要なドキュメント化を行い共通認識をはかること」これらが大切です。

アジャイル開発では、 最初に大まかな仕様を決めて、 イテレーションと呼ばれる一定の期間内での「計画→設計→プログラミング→テスト」を繰り返しながら、開発を進めます。開発途中の仕様や設計の変更は許容します。

ただし、「サービスを提供する分野を変える」「用途の違うシステムを作る」などのビジネス根本の変更は許容しません。それは要件や仕様のレベルではなく、プロジェクト自体の変更から考えるべきです。

イテレーションは1週間程度~長くても半月程度が一般的です。イテレーションごとにリリースして開発を進めます。

アジャイル開発には、このようなイテレーションのサイクルを繰り返して開発する手法がいくつか提言されています。

アジャイルの具体的な手法や流れについて→準備中

コメント

タイトルとURLをコピーしました