jump to navigation

アジャイル開発について 11月 8, 2009

Posted by hyhy in 技術情報.
Tags:
trackback

アジャイルソフトウェア開発は、ソフトウェア工学において迅速かつ適応的にソフトウェア開発を行う軽量な開発手法群の総称です。 近年、アジャイルソフトウェア開発手法が数多く考案されています。 ソフトウェア開発で実際に採用される事例も少しずつではあるが増えつつあります。 アジャイルソフトウェア開発手法の例としては、エクストリーム・プログラミング (XP) などがあります。 非営利組織 Agile Alliance がアジャイルソフトウェア開発手法を推進しています。

■概要
アジャイルソフトウェア開発手法の多くは、反復 (イテレーション) と呼ばれる短い期間単位を採用することで、リスクを最小化しようとしている。 1つの反復の期間は、プロジェクトごとに異なるが、1週間から4週間くらいであることが多いです。
アジャイル開発手法においては、開発対象を多数の小さな機能に分割し、1つの反復 (イテレーション) で1機能を開発する(⇒反復型開発)。 この反復のサイクルを継続して行い、1つずつ機能を追加開発してゆきます。 おのおのの反復は、小規模なソフトウェア開発プロジェクトに似ています。 各反復では、それまでに開発した成果物に1つの小さな機能を追加します。 計画、要求分析、設計、実装(コーディング)、テスト、文書化といった、ソフトウェアプロジェクトに要する全ての工程を、1つの反復内で行います。場合によっては、1つの反復内で開発すると計画していたソフトウェア機能を、必ずしも期間内で充分に実現できるとは限りません。このように時にはうまくゆかない反復もあるが、アジャイル開発手法では、各反復が終了するごとに、機能追加された新しいソフトウェア (ビルド) をリリースすることを目指します。 各反復が終了するごとに、プロジェクトチームは、プロジェクトにおける優先度を評価し直します。

アジャイル開発では、たくさんの文書を書くことよりも、プロジェクト関係者間で必要な時に即座に直接顔を合わせて意思疎通を行うべきであることを強調します。 ほとんどのアジャイル開発チームでは、ソフトウェア開発に必要な関係者全員が、1か所の作業場所で仕事をします。この場合の関係者には、少なくともプログラマと「顧客」が含まれます (ここでの顧客とは開発対象のソフトウェアが何であるかを定義する人々です。「顧客」は、時にはプロジェクト管理者であったり、ビジネスアナリストや本物の顧客である場合もあります) 。 この作業場所では、テスト担当者、ユーザインタフェース設計者、テクニカルライタ、管理職も一緒に作業する場合があります。

またアジャイル開発手法では、実際に動くソフトウェアこそが最重要なプロジェクト進行尺度であることを、強調します。この実際に動くソフトウェアという進行尺度の採用と、直接顔を合わせた意思疎通の重視とがあいまって、アジャイル開発手法で作成する文書の量は、他の開発手法と比較すると、非常に少ないです。 この少ない文書化については、無統制で雑な作業 (ハッキング、カウボーイコーディング) であるとして、アジャイル開発に対する批判材料の一つとなっています。

適応的開発をとるアジャイルに対し、計画重視のウォーターフォール

■記事
アジャイル トランスペアレンシー ~アジャイル開発における透明性の確保について~
イテレーション設計における透明性
選択される開発内容
設計作業としてのテスト駆動開発
アジャイル開発を成功に導く26のヒント
アジャイルの本質的な要素

■イベント
Agile Conference tokyo 2009」12月8日(火)開催本カンファレンスは,400名規模のアジャイル開発事例を持ち,世界No.1のアジャイル開発の企業として名高い ThoughtWorks社からスピーカーを招いて,最新の大規模アジャイル開発について講演していただく、そんなイベントです。

広告
%d人のブロガーが「いいね」をつけました。