アジャイルソフトウェア開発 ~ 基本情報と入門記事などのまとめ

2009年5月13日

変化に対応しやすく、反復的に開発していくソフトウェア開発の手法の入門記事、プラクティスの解説記事など


アジャイルソフトウェア開発は、ソフトウェア開発手法の1つです。開発者同士の協力や顧客とのコミュニケーションに重きを置きつつ、早い段階から小さくとも動作するプログラムを作り上げ、それを迅速な反復により改善していくことで完成へ近づけていく手法です。

アジャイルソフトウェア開発にはいくつかの手法があります。代表的なものとしては、XP(Extreme Programming)やScrumなどが挙げられます。

アジャイルソフトウェア開発宣言

Manifesto for Agile Software Development

アジャイルソフトウェア開発には厳密な定義はありませんが、その精神を表す「Manifesto for Agile Software Development」(アジャイルソフトウェア開発宣言)が、 アジャイルソフトウェア開発を提唱する人たちにによって公開されています。

アジャイルソフトウェア開発宣言の日本語訳

アジャイルソフトウェア開発に関する団体

Agile Alliance

アジャイルソフトウェア開発の団体として、米国にはAgile Allianceがあります。

日本には、アジャイルプロセス協議会があります。

また、アジャイル開発手法の1つであるScrumにはScrum Allianceがあり、公認のScrum Masterの育成やセミナーなどを行っています。DSDM ConsortiumではDSDMの普及啓蒙を目指しています。

アジャイルソフトウェア開発の入門記事

アジャイルソフトウェア開発 - Wikipedia

アジャイルソフトウェア開発が何であるかを手短に把握するのには、Wikipediaと@IT情報マネジメントの用語解説が便利でしょう。

もう少し詳しい、アジャイルソフトウェア開発の入門記事を読みたいのであれば、ITProのアジャイルをゼロから学ぶやThinkITのアジャイル開発を問い直すなど、以下の記事をおすすめします。

アジャイルをゼロから学ぶ:selfup

@ITの特集は.NETプログラマー向けに書かれていますが、内容は一般的なアジャイルソフトウェア開発を理解するのにも適した記事になっています。一読をおすすめします。

@IT:特集:.NET開発者のための開発プロセス入門

アジャイルソフトウェア開発は誰にでもできるものなのか? ドキュメントを作らなくてもいいのか? 選任のテスターは不要なのか? そんな素朴な疑問に答えてくれるのが、アジャイル勘違い集です。

アジャイルソフトウェア開発手法

7つのアジャイル開発手法の実践ガイド

アジャイルソフトウェア開発を実現する方法として、いくつかの開発手法があります。7つのアジャイル開発手法の実践ガイドでは代表的な7つの手法、XP、Scrum、リーンソフトウェア開発、機能駆動型開発(FDD)、ユニファイドプロセス(UP)、クリスタル、動的システム開発手法(DSDM)についてのそれぞれの解説と比較について紹介しています。

個々の開発手法について紹介していくことにしましょう。

XP(eXtreme Programming)

eXtreme Programmingの魅力を探る

XPはアジャイルソフトウェア開発手法の中でもよく知られる手法で、ペアプログラミング、リファクタリング、テスト駆動開発などのプラクティスを備えています。

Scrum

スクラム組んで開発しよう!

Scrumは、最近ではもっとも採用されているといわれるアジャイル開発手法です。1カ月を1期間とするスプリント、毎日のミーティングなどを特徴とします。

RUP/UP(ラショナル統一プロセス/統一プロセス)

何百人ものエンジニアがかかわる大規模な開発プロジェクトにも応用できる開発手法として知られるのがRUP/UPです。RUPはIBMのラショナルがライセンス提供するUPの詳細版であり、同社のツールによってプロセスがサポートされています。

そのほかのアジャイル開発手法

アジャイルソフトウェア開発の参考書籍

アジャイルソフトウェア開発については、ネットよりも書籍と雑誌での情報の方が圧倒的に充実しています。関連書籍の点数は非常に多いのですが、ここでは入門と実践のためにそれぞれ1冊ずつを紹介しましょう。

初めてのアジャイル開発 ~スクラム、XP、UP、Evoで学ぶ反復型開発の進め方 初めてのアジャイル開発 ~スクラム、XP、UP、Evoで学ぶ反復型開発の進め方
最初の一冊を選ぶならこの本。ソフトウェア開発は何であり、なぜアジャイル開発が有効であるかが語られる前半。後半では代表的な手法としてXP、スクラム、RUP/UPなどが解説される(目次
アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣 アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣
特定の手法の解説ではなく、チーム作りやコーディング、デバッグなどの実際の現場に対応した心得、プラクティスを教えてくれる。そしてできそうなプラクティスから取り入れられるあくまで実践的な本(目次


アジャイルソフトウェア開発の実践

実際にアジャイルソフトウェア開発を行っている人たちのインタビューや実践例の記事を集めました。

アジャイル実践者インタビュー(1) 発注者はアジャイル開発をこうみている

アジャイルソフトウェア開発についての議論

アジャイルソフトウェア開発の有効性については多く語られていますが、一方でその使いこなしや位置づけ、そしてアジャイルソフトウェア開発の中身そのものも少しずつ変化してきています。

InfoQのこの2つの記事は、アジャイルソフトウェア開発の基本的な考え方であるマニュフェストでは表現し切れていない部分があることを指摘しているように思います。多くの人が、2本目のようにアジャイルは文化的な側面が大きく、採用できるかどうかは企業風土などによって左右することを感じており、その点についてはつねに議論のまととなっているようです。

萩本氏による上アジャイル開発と反復開発の落とし穴は、しばしば同列に語られがちな反復開発とアジャイル開発を明確に区分して解説することで、アジャイルソフトウェア開発を採用するときに陥りがちなポイントを読者に気付かせてくれます。

アジャイルソフトウェア開発は開発者同士や顧客との密なコミュニケーションを重視するため、同じ空間を共有することを強く勧める傾向にあります。そのため、オフショアや複数の拠点に分散した体制での開発に向かないと見られています。上記の連載ではこの点について日本IBMの藤井氏がそうした分散環境でも有効と思えるプラクティスやツールなどを紹介しています。また、「XP」で大規模なソフト開発は不可能か?は、少数精鋭に向いているといわれるXPでは大規模開発ができないのかどうか考察しています。

2008年に公開されたこの記事は、主に米国におけるアジャイルソフトウェア開発の現状や事例を紹介しています。

あわせて読みたい

DevOps アジャイル開発 スクラム XP




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本