アジャイル・ブームの再来

2010年9月2日(木)
西口 直樹

はじめに

"アジャイル"という言葉が、ソフトウエア開発現場において、広く知られています。皆さんも1度は耳にしたことがあると思います。

筆者は、開発者として、新人時代、社外常駐時代、プロジェクト・リーダー時代に、アジャイル開発に携わりました。本連載では、これらの経験から得たアジャイルの知見を示します。

第1回では、アジャイルの経緯と現状など、事前に知っておくべき内容を説明します。2000年代前半に立ち上がったアジャイルが「試行錯誤の時代」を経て再び注目されるようになった要因について解説します。

アジャイルに共通する4つの価値と12の原則

あらためて、アジャイルとは何かをおさらいします。

アジャイルとは、いくつかのソフトウエア開発手法の総称です。数多くのアジャイル開発手法が存在します。以下は、具体的なアジャイル開発手法の例です。

  • Agile Modeling
  • Agile Unified Process (AUP)
  • Dynamic Systems Development Method (DSDM)
  • Essential Unified Process (EssUP)
  • eXtreme Programming (XP)
  • Feature Driven Development (FDD)
  • Open Unified Process (OpenUP)
  • Scrum

これらはもともと、それぞれ異なる開発手法として提案されました。その後、各手法の提唱者たちが集まり、アジャイルの理念となる4つの価値と、アジャイル・ソフトウエアの12の原則をまとめ、アジャイル・マニフェストとして発表しました。

アジャイル・マニフェストは、あらゆるアジャイル開発方法に共通する根底となっています。

図1: アジャイル・マニフェスト(http://agilemanifesto.org/

アジャイル・マニフェストに記された価値や原則を実現する手段として、個々のアジャイル開発手法は、フレームワークやプラクティス(習慣)を定義しています。

例えば、アジャイル開発手法の1つである「Scrum」では、開発の流れを以下のように説明しています。

  1. チームは "スプリント"と呼ばれる2~4週間のタイム・ボックスを切って、この期間に開発・テストを実施し、納品可能なプロダクトをアウトプットする
  2. スプリントの前には、"スプリント計画"と呼ばれる、ビジネスを考慮して優先順位が付けられた作業一覧(プロダクト・バックログ)から、次のスプリントで着手する項目の選定と詳細化、見積もりを実施する
  3. スプリント期間中は毎日、 "デイリー・スクラム" と呼ばれるチーム内の状況確認ミーティングを行い、進ちょく、その日の作業内容、問題点を共有する
  4. スプリント終了時には、成果を確認し、次のスプリントで何をやるかを検討する"スプリント・レビュー"や、"ふりかえり" と呼ばれるスプリント期間での問題の改良点の検討を行う
  5. プロジェクトの期間中、上記の内容を繰り返す

また、「eXtreme Programming (XP)」では、チームが行うべき19のプラクティス(習慣)を定義しています。

具体的にプラクティスの一部を抜粋したものは、以下の通りです。いずれも、何をやればどのような効果が得られるのか、を示しています。

  1. テスト駆動開発
    • やること: 実装を行う前に、自動化されたテスト、もしくは手順を明確化したテストを作成し、実装はそのテストをパスすることを目標に行う
    • 効果: 入力に対する期待値が明確になり、テストを通すことだけに専念できる。これにより、設計や実装がシンプルになる
  2. ペア・プログラミング
    • やること: すべてのコードは、2人のプログラマで書く
    • 効果: 技術力の向上、実装内容の共有、相互レビューによるプロダクトの品質の向上が図れる
  3. リファクタリング
    • やること: 実装されたコードに対し、動作を変えずに内部構造の改善を行う
    • 効果: コードの継続的な改善により、保守性が高くなる

このように、個々のアジャイル開発手法ごとに、いろいろな要素が定義されています。しかし、軸となるのは、共通のマニフェストです。まずはアジャイル・マニフェストを理解したうえで、個々の開発手法ごとに用意されたフレームワークやプラクティスを利用することが大切です。

TIS株式会社

先端技術センター所属。Ruby好きなプログラマ。Ruby on Railsを利用したWebアプリケーション開発に従事。最近は、スマートフォンアプリの開発に取り組んでいる。スクラム・アライアンス認定スクラムマスター。
Twitter: http://twitter.com/nsgc

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています