Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

グラス片手にアジャイル開発 第2回
- アジャイルの主な実践手法とその取捨選択

  • LINEで送る
  • このエントリーをはてなブックマークに追加

 第1回ではアジャイル開発の理念や位置付け、特徴について紹介しました。今回は、アジャイル開発の代表的な手法「XP」と「スクラム」の特徴を紹介し、これらの手法を実際の開発現場にどのように適用していくのかを示します。

目次

アジャイルの主な実践手法とその取捨選択

 第1回ではアジャイル開発の理念や位置付け、特徴について紹介しました。アジャイル開発にはより良いソフトウェアを低コストで、かつ高品質に開発できる大きなポテンシャルが秘められていると感じたことでしょう。今回は、アジャイル開発の代表的な手法「XP」と「スクラム」の特徴を紹介し、これらの手法を実際の開発現場にどのように適用していくのかを示します。

アジャイル開発の代表的手法

 アジャイル開発には、さまざまな手法があります。

  • XP
  • スクラム
  • 動的システム開発手法(DSDM:Dynamic Systems Development Method)
  • クリスタル
  • 機能駆動型開発(FDD:Feature Driven Development)
  • アジャイルユニファイドプロセス(AUP:Agile Unified Process)
  • リーンソフトウェア開発

 このように数え上げればきりがないほどですが、この中で人気を二分しているのが「XP」と「スクラム」です。今回はこの2つの手法について解説します。

XP~開発メンバー個々の責任を重視~

 XPはExtreme Programmingの略で、通常は「エックスピー」とそのまま読みます。この手法は1996年頃にケント・ベックらにより考案されました。XPは開発主体に内容を定義しており、比較的少人数での開発に向いていると言われています。

 XPでは10個程度の具体的なプラクティス(実践)を定義し、ドキュメントの整備よりもソースコードを重んじると共に、開発者1人1人の責任を重視しています。以下に代表的なプラクティスを示します。

  • 反復
  •  開発期間を1~4週間の短い期間(イテレーション)に区切り、期間ごとに部分的な設計/実装/テストを行ない、半完成システムのリリースを繰り返す。

  • テスト駆動型開発
  •  Test Driven Development(TDD)とも呼ばれる。プログラムロジックをコーディングする前に、(自動化された)テストを作成する。プログラムロジックのコーディングは、そのテストをパスすることを目標に行なう。

  • ペアプログラミング
  •  2人1組で実装を行ない、1人がコードを書き、もう1人はそれをチェックしながらナビゲートする。

  • リファクタリング
  •  完成済みコードでも、随時改善する。外部から見た動作は変更しない。

  • ソースコードの共同所有
  •  ソースコードをチーム全員が断りなく修正できる。

  • 継続した結合
  •  単体テストをパスするコードが完成するたび、すぐに結合テストを行なう。

  • YAGNI
  •  「You Aren't Going to Need It」の略。いま必要なことだけを行なう。必要な機能だけのシンプルな実装に止める。

  • ストーリーの作成
  •  求める機能のコンセプトを短い文章で記し、より詳細な仕様をチームミーティングを通して決定する。

  • リリース計画
  •  どのストーリーをどの反復で実現するか、チームミーティングで決定する。

  • 受け入れテスト
  •  反復ごとに機能やコンセプトが実現できているかを確認する。

 これらのプラクティスに従った開発の全体像は図1のとおりです。

図1:XPによる開発の全体像
図1:XPによる開発の全体像

 特に注目すべきは、開発全体を細かい反復(イテレーション)に分割し、その期間中に開発~テストまでを完了させる(テスト駆動型開発)ことにあります。また、必要な機能だけを実装し(YAGNI)、随時改良を施していく(リファクタリング)ことを認めている点です。さらに、ソースコードを書くにあたっては、誰もがソースコードを作成/改造して良く(ソースコードの共同所有)、必ず2人1組で実施していく(ペアプログラミング)ことが重要です。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • アクセラテクノロジ株式会社 萩原 純一(ハギワラ ジュンイチ)

    前職でスーパーコンピュータ向けのコンパイラやデータマイニングソフトウェア、テキスト検索ソフトウェアを設計/開発したのち、2001年にアクセラテクノロジ株式会社の設立に携わる。アクセラテクノロジ社ではエンタープライズサーチシステム「Accela BizSearch」シリーズの企画/設計/開発を担当。一...

バックナンバー

連載:グラス片手にアジャイル開発
All contents copyright © 2005-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5