2008年10月14日
_ Manage It! 現場開発者のための達人式プロジェクトマネジメント
献本いただきました。ありがとうございました。
この本の著者はJohanna Rothman。彼女は今年のAgile2008でLeadership&Team StageのProducerを務めていました。そんなこともあって、何度かメールをやりとりしたり、現地 (カナダ) で実際に会って話をしたりしました。
著者であるJohannaと言葉を交わしたことがある数少ない日本人として言っておきます。この本は絶対に買いです。
今年のXP祭りに参加された方はご存知かとは思いますが、私はAgile2008に行くにあたって、ひょんなことでExperience Reportという論文を書くことになってしまいました。つたない英語で書いた論文をレビューしてくれたのがJohannaでした。もっとボロカスに言われるかと思って覚悟していたのですが、論文をレビューに出して最初に返ってきた返事が "I really like your paper. Your English is quite good!" だったのを見て、「よかったぁ。優しい人で」と思って胸を撫で下ろしましたよ。
論文をレビューしてもらうために何度かメールでやりとりしたのですが、とにかく返事が早いんです。それから、メールに必ず一言、褒め言葉を入れてくれるんです。本当に救われましたね。
そんな彼女の人柄を反映してか、Agile2008のBanquetと呼ばれる懇親会でも彼女は大人気で、いつも周りに人が集まってきていました。
『Manage It!』の日本語版が近々出版されるということ、しかも、私の監訳した『Practices of an Agile Developer』と同じ出版社から出版されることを伝えたら、すごく喜んでいました。ついに出版されたので、またJohannaに報告しておきたいと思います。
本書の最初にある「読者の声」のページを見ても、この本に対する推薦の言葉というより、Johannaの人柄や考え方に対する賛辞が多数を占めていることに気づきます。
本編はまだ読み始めたばかりですが、実感として「うんうん。そうそう」と思えるところが多くて、ワクワクしながら読み進めています。また、読み終わったら感想を書きたいと思います。
2014年10月14日
_ 5分で分かるアジャイルムーブメントの歴史
この記事は "Brief History of Agile Movement" の全文を日本語に翻訳したものです。
この記事の著者であり、日本語版の公開を快諾いただいた Udayan Banerjee 氏 に感謝します。
翻訳の間違いなどの責任は私 (@fkino) にあります。コメントなどで指摘していただけると嬉しいです。
2012年2月にアジャイルムーブメントは丸11年を迎えました*1。みなさんも何らかのアジャイル開発手法を既に取り入れているか、アジャイル開発に取り組もうと検討されていることではないでしょうか。さて、みなさんはアジャイルムーブメントがどのようにして起こったのかご存知ですか?それは、偶然だったのか?それとも、必然だったのか?アジャイルマニフェストに影響を与えたのは何だったのか?アジャイルマニフェストの執筆者の名前は言える?彼らにどんな背景があり、彼らは今何をしているのでしょうか?どうして「アジャイル」という名前が選ばれたのでしょうか?
影響を与えた人たち
Jon Kern が公開したメモによると、次の4つの方法論がアジャイルマニフェストに非常に大きな影響を与えたのは明らかです。
- Scrum (Jeff Sutherland と Ken Schwaber 、そして Mike Beedle)
- DSDM (Arie van Bennekum を中心とする DSDM コンソーシアム)
- ASD (Jim Highsmith)
- XP (Kent Beck 、 Ward Cunningham 、 Ron Jeffries それから、 Martin Fowler)
アジャイルマニフェスト以前は、これらの方法論は「軽量ソフトウェア開発手法」と総称されていました。これらの方法論の関係者が一同に会した会合は Kent Beck を中心とする初期の XP 支持者の集まりが発展して、当然の成り行きとして起こりました。実際の会合の呼びかけは Bob Martin からありました。以下に、アジャイルムーブメントに非常に大きな影響を与えたマイルストーン (1992-2003) を紹介します。さらに、みなさんに興味を持ってもらえるように、顔写真付きで紹介しています。
1992年 クリスタル (Crystal Methods)
クリスタルはのちにアジャイルムーブメントとして知られることになる方法論の元になったソフトウェア開発方法論の進化の出発点でした。クリスタルの提唱者は Alistair Cockburn です。この方法論は1997年になって「クリスタル」と名付けられました。
クリスタルは人命に関わらないシステムを開発している6〜8人のチームに適用することができます。次のことに焦点をあてていることから、クリスタルがアジャイルマニフェストの元ネタになっていることが分かります。(1) ユーザーに動くコードを頻繁に届ける、(2) ふりかえって改善する、(3) なるべく同じ場所にいてコミュニケーションを浸透させる。
彼は "Notes on the writing of the agile manifesto" という文書を書いています。
彼は自ら創設した Humans and Technology 社のコンサルティングフェローです。 (参照 : Biography page)
LinkedIn で彼を見つけることはできませんでした。
1993年 リファクタリング (Refactoring)
リファクタリングは "Creating Abstract Superclasses by Refactoring" と題された論文で Bill Opdyke によって新たに生み出された言葉です。Wikipedia ではコードのリファクタリングについて次のように解説されています。
コードのリファクタリングは、ソフトウェアの非機能的な属性の一部を改善するために行われ、「プログラムの外部から見た動作を変えずにソースコードの内部構造を整理し、既存のコードを再構築するための規律的なテクニック」です。
現在、彼は JPMorgan Chase 社でアーキテクチャリードを努めています。(出典 : LinkedIn profile)
1994年 動的システム開発方法論 (Dynamic Systems Development Method)
DSDM は、この記事でとりあげている他の手法とは異なり、あるコンソーシアムによって策定されました。そのコンソーシアムはソフトウェアエンジニアリングの分野のベンダや専門家によって構成される団体でした。目的は、コンソーシアム会員のベストな実践経験を持ち寄ることで、「独自RADフレームワークの共同開発と利用促進」をすることでした。DSDM の策定に関わった特定の個人を持ち上げることはできません。しかし、とりわけ Jennifer Stapleton はDSDMコンソーシアムの立ち上げメンバーのひとりとして、DSDMの考え方を最初に紹介するなど、尽力しました。
現在、彼女はイギリスで経営コンサルタントを務めています。 (参照 : LinkedIn profile)
アジャイルマニフェストの執筆者のひとりである Arie van Bennekum は、1997年以来、DSDM と DSDMコンソーシアムに積極的に関わってきました。DSDM は次の8つの原則に注目しています。(1) ビジネスニーズに焦点を当てる、(2) 期限に間に合わせる、(3) 協力する、(4) 決して品質に妥協しない、(5) しっかりした基盤の上にインクリメンタルに構築する、(6) イテレーティブに開発する、(7) 継続的かつ明瞭なコミュニケーション、(8) コントロールしてることを証明する。ここでもまた、アジャイルマニフェストの元ネタを見ることができます。
現在、彼はオランダでシニアコンサルタント、プログラマ、プロジェクトマネージャ、ファシリテータ、トレーナー、コーチ、メンター、講師などを務めています。 (参照 : LinkedIn profile)
1995年 スクラムとペア開発
スクラム (Scrum)
スクラムは Jeff Sutherland と Ken Schwaber によって考案され、テキサス州オースティンで開催された OOPSLA '95 の論文で発表されたのが最初です。Jeff Sutherland は Scrum 社の CEO です。 (出典 : LinkedIn profile) Ken Schwaber は Scrum.org の創設者です。 (出典 : LinkedIn profile)
Mike Beedle は非常に早い時期に スクラム に目をつけたひとりで、1990年代半ば以降、多くの組織にスクラムを導入しています。みなさんもご存知のように、スクラムは言わばアジャイルのデファクトスタンダードになっています。
現在、彼は Enterprise Scrum 社の創設者であり、CEO を務めています。 (参照 : LinkedIn profile)
ペア開発 (Pair Development)
ペア開発のコンセプトは同時期に関連のない複数の人によって提唱されました。Jim Coplien は "ペアで開発する (Developing in Pairs)" というパターンを含む "A Development Process Generative Pattern Language" というタイトルの論文を発表しました。
彼はデンマークのリーンとアジャイルソフトウェア開発のコーチです。 (出典 : LinkedIn profile)
Larry Constantine は(Coplienの論文と)同じ年に出版された『Constantine on Peopleware』という書籍の中で "Dynamic Duos" について言及しました。このコンセプトはエクストリームプログラミングにとってなくてはならないものになっていったのです。 多くの調査はペアプログラミングの有効性を示すために実施されましたが、コンセプトや原理はアジャイルマニフェストにはそれほど反映されていません。
彼は現在、小説家であり、米国で大学教授を務めています。(出典 : LinkedIn profile)
1997年 ユーザー機能駆動開発 (Feature Driven Development)
ユーザー機能駆動開発は当初、Jeff De Luca によって考案されました。FDD のベストプラクティスは次の通りです。(1) ドメイン・オブジェクト・モデリング、 (2) フィーチャ毎の開発、(3) クラス (コード) の個人所有、(4) フィーチャ・チーム、(5) インスペクション、(6) 構成管理、(7) 定期ビルド、(8) 進捗状況と成果の可視化。
興味深いことに、「クラス (コード) の個人所有」は今日、主要プラクティスとされているコードの共同所有のコンセプトと真逆のことを言っています。
彼は現在、Nebulon 社の社長です。(出典 : LinkedIn profile)
FDD プロセスは Peter Coad との共著『Javaエンタープライズ・コンポーネント―カラーUMLによるJavaモデリング』の出版によって世の中に知られるようになりました。Peter Coad は TogetherSoft を設立し、Borland 社に売却しました。現在はアジャイル以外にも多くのことに夢中になっています。(参照 : petercoad.com)
彼の LinkedIn page はありますが、特に何も書かれていません。
アジャイルマニフェストの著者のひとりである Jon Kern は Jeff De Luca や Peter Coad と一緒に働くほど親密な関係で、FDDの体系をまとめる手助けをした。ここ (Agile Manifesto Notes – Feb 2001, Snowbird, Utah) に彼のメモがあります。これは Jeff Sutherland が探し出して、提供してくれたものです。
Jon Kern はソフトウェア開発のクォーターバックであると称しており、複数の企業と関連を持っています。(参照 : LinkedIn profile)
1999年 たくさんのことが起こった
適応型ソフトウェア開発 (Adaptive Software Development)
Jim Highsmith は適応型ソフトウェア開発のコンセプトを確立し、同名の書籍を出版しました。このアイデアは Rapid Application Development 手法を発展させたものです。彼は次の3つのフェーズからなるライフサイクルを提唱しました。(1) 思索、(2) コラボレーション、(3) 学習。
彼はアジャイルマニフェスト策定の背景となった歴史を執筆しています。彼は現在、ThoughtWorks 社の上級コンサルタントです。(参照 : LinkedIn profile)
達人プログラマー (The Pragmatic Programmer)
Andrew Hunt は書籍『達人プログラマー―システム開発の職人から名匠への道』を出版しました。この書籍では達人プログラマーの性格がきちんと説明されています。達人プログラマーは、(1) 新しいもの好き、(2) 研究好き、(3) 批判的, (4) 現実的、(5) 何でも屋です。
彼は自分自身のことを「Pragmatic /\ndy — 講演者、著者、編集発行人」と称しています。 (参照 : LinkedIn profile)
この本の共著者が Dave Thomas です。達人プログラマーのクイックリファレンスに目を通すと、アジャイルマニフェストへの影響がよく分かるでしょう。"Some Agile History" は2001年2月の会合で何が起こったのかを記した彼の回想録です。
彼は自分自身のことをソフトウェア・ビジョナリと称しています。(参照 : LinkedIn profile)
エクストリームプログラミング、ユーザーストーリー、リリースプランニング、継続的インテグレーション (Extreme Programming, User Stories, Release Planning and Continuous Integration)
Kent Beck はクライスラーで働いているあいだに、エクストリームプログラミングのコンセプトを育てました。彼は1999年に『XPエクストリーム・プログラミング入門: ソフトウェア開発の究極の手法』という本を出版し、エクストリームプログラミングを世に知らしめました。エクストリームプログラミングの一環として、ユーザーストーリーとリリースプランニングのコンセプトについても紹介しました。プランニング、マネジメント、設計、コーディング、テスティングのベストプラクティスが細かく書かれています。
彼は Facebook にいます。彼はプログラマーと名乗っています。(参照 : LinkedIn profile)
Ward Cunningham は XP の共同発案者であると当時に、Wiki の発明者でもあります。また、彼は Cunningham & Cunningham 社の創設者であるとともに、CitizenGlobal 社の CTO でもあります。 (参照 : LinkedIn profile)
Ron Jeffries も XP の共同発案者です。この3人が XP の創始者であると言われています。彼の経歴のページにはほとんどの人がこれまで生きてきたのよりも長くソフトウェア開発に関わっていると書かれています。(参照 : Biographical Notes)
LinkedIn で彼を見つけることはできませんでした。
Martin Fowler は継続的インテグレーション (CI) という言葉を紹介し、広めました。ちなみに、CIという言葉を最初に使い出したのはKent Beck です。"Writing The Agile Manifesto" という彼のブログの記事は回想録です。
彼は執筆者であり、講演者であると名乗っています。Thoughtworks 社で働いています。 (参照 : About Martin Fowler)
LinkedIn で彼を見つけることはできませんでした。
2000年 アジャイルマニフェストに至るまでの出来事
Bob Martin はユタ州ワサッチ山脈にあるスノーバード・スキーリゾートの「The Lodge」というホテルで開催された歴史的な会合の言い出しっぺであり、イニシアティブを取りました。彼は Uncle Bob Consulting 社のオーナーです。(参照 : LinkedIn profile)
2001年 アジャイルマニフェスト (Agile Manifesto)
2001年2月 + ユタ州スノーバード・スキーリゾートの「The Lodge」 + 17人の方法論者 = アジャイルマニフェスト
Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Bob Martin, Stephen Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas
2002年 その他のアジャイルのコンセプト
テスト駆動開発 (Test Driven Development)
TDD の功績は Kent Beck によるものです。テスト駆動開発のコンセプトも XP のテストファーストの考え方が元になっています。これは後に Kent Beck によって『テスト駆動開発入門』という本にまとめられました。
プランニングポーカー (Planning Poker)
プランニングポーカーのコンセプトは James Grennig によって策定されました。これがオリジナルの論文です。
彼は Renaissance Software Consulting 社の創設者です。 (出典 : LinkedIn Profile)
Brian Marick と Stephen Mellor はどうだろう?
彼は Exampler Consulting 社のオーナーであり、自分自身をテスト好きのアジャイル手法専門ソフトウェアコンサルタントと称しています。 (参照 : LinkedIn profile)
彼は「フリーター」と名乗っています。(出典 : stephenmellor.com) 彼はジンバブエに居住しています*2。これが彼の LinkedIn profile です。
2003年 リーンソフトウェア開発 (Lean Software Development)
リーンソフトウェア開発はアジャイル方法論の拡張でしょうか?アジャイルとは別のものとして見るべきでしょうか?そもそも、この記事で取りあげるべきでしょうか?私は取りあげました。一番の理由は多くのアジャイリストがアジャイルムーブメントの今後のひとつの方向性と考えているからです。さて、「リーンソフトウェア開発」という言葉は2003年に Mary Poppendieck と Tom Poppendieck によって作られました。これはリーン生産方式の原則やプラクティスをソフトウェア開発に適用したものです。次の7つの原則があります。(1) ムダをなくす、(2) 知識を作り出す、(3) 決定を遅らせる、(4) 速く提供する、(5) 人を尊重する、(6) 品質を作り込む、(7) 全体を最適化する。知識を作り出す、速く提供する、人を尊重するなど、アジャイル原則とも非常に通じるところがあります。
私(Udayan Banerjee)は「ムダをなくす」と「全体を最適化する」については、アジャイル原則とそれほど関連がないと思っています。