ソフトウェア工学としてソフトウェアの開発・運用・保守に体系的・学問的・定量的手法を応用する分野です。今まで、アジャイルの事例を運用することも少しずつではあるが増えつつある。アジャイルソフトウェア開発は、ソフトウェア工学において迅速かつ適応的にソフトウェア開発を行う軽量な開発手法群の総称である。アジャイルについて、強い団体能力が必要なければならないが、単体能力も一番重要だと思う。プロジェクトマネジャーは団体の精神領袖として各単体能力によって別々タスクを割り当てる。
引書:
== 概要 ==
アジャイル[[ソフトウェア開発]]手法の多くは、反復 (イテレーション) と呼ばれる短い期間単位を採用することで、リスクを最小化しようとしている。1つの反復の期間は、プロジェクトごとに異なるが、1週間から4週間くらいであることが多い。アジャイル開発手法においては、開発対象を多数の小さな機能に分割し、1つの反復 (イテレーション) で1機能を開発する(⇒[[反復型開発]])。この反復のサイクルを継続して行い、1つずつ機能を追加開発してゆくのである。おのおのの反復は、<!--1つの-->小規模なソフトウェア開発プロジェクトに似ている。
各反復では、それまでに開発した成果物に1つの小さな機能を追加する。計画、[[要求分析]]、設計、実装(コーディング)、テスト、[[ソフトウェアドキュメンテーション|文書化]]といった、ソフトウェアプロジェクトに要する全ての工程を、1つの反復内で行う。場合によっては、1つの反復内で開発すると計画していたソフトウェア機能を、必ずしも期間内で充分に実現できるとは限らない。このように時にはうまくゆかない反復もあるが、アジャイル開発手法では、各反復が終了するごとに、機能追加された新しいソフトウェア (ビルド) をリリースすることを目指す。
各反復が終了するごとに、プロジェクトチームは、プロジェクトにおける優先度を評価し直す。アジャイル開発では、たくさんの文書を書くことよりも、プロジェクト関係者間で必要な時に即座に直接顔を合わせて意思疎通を行うべきであることを強調する。ほとんどのアジャイル開発チームでは、ソフトウェア開発に必要な関係者全員が、1か所の作業場所で仕事をする。この場合の関係者には、少なくとも[[プログラマ]]と「顧客」が含まれる (ここでの顧客とは開発対象のソフトウェアが何であるかを定義する人々である。「顧客」は、時にはプロジェクト管理者であったり、ビジネスアナリストや本物の顧客である場合もある) 。この作業場所では、テスト担当者、[[ユーザインタフェース]]設計者、テクニカルライタ、管理職も一緒に作業する場合がある。
またアジャイル開発手法では、実際に動くソフトウェアこそが最重要なプロジェクト進行尺度であることを、強調する。この実際に動くソフトウェアという進行尺度の採用と、直接顔を合わせた意思疎通の重視とがあいまって、アジャイル開発手法で作成する文書の量は、他の開発手法と比較すると、非常に少ない。この少ない文書化については、無統制で雑な作業 (ハッキング、カウボーイコーディング) であるとして、アジャイル開発に対する批判材料の一つとなっている (後述する) 。