「アジャイルでやっています」の「アジャイル」とはなんなのかを探る
アジャイル
ITが関わる企業で働いていると、「アジャイル」という言葉をよく耳にします。
たとえば求人票などに歓迎要件:アジャイル開発の経験
という文言が書いてあることは多くの企業で見られるのではないでしょうか。
あるいは、どこかの営業マンが様々な文脈で売り文句の一つとして「アジャイル」という言葉を使っているのを聞いたことがある人や、何らかの構造を批判する意図で誰かが「アジャイル」を使っているのをみたことがある人もいるでしょう。
しかしながら「アジャイル」という言葉だけでは具体的にどのようなことを指しているのかはよく考えてみると分かりません。
「アジャイル」とともに「スクラム」という言葉も同時によく聞きます。IT界隈のカタカナ語はバズワードとして業界内に膾炙し、前提かのように語られる割にそれの意味するところは何なのかというところを説明してくれる人は多くありません。
そこでこの記事では「アジャイル」という言葉の源流であるアジャイルマニフェストとその起草者たちの業績や考えなどを調べながら、「アジャイル」という言葉の意味するところを探りたいと思います。
人によっては退屈に長いかもしれません。書いている方は結構楽しかったです。
アジャイルマニフェスト
ここに書かれている内容(アジャイルソフトウェア開発宣言、アジャイルソフトウェアの12の原則)
を読む限り、目指すところは開発者と顧客、ビジネス側のひとが一体となって良いソフトウェアをできるだけ速くリリースしましょう、そしてそれを繰り返していきましょうというような状態を目指していて、特定の開発手法ややり方を押し付けたりするものではなさそうです。
それもそのはずで、このとき集まった17人はそれぞれに自分の考えた、良いソフトウェアを作るための持論や手法があり、それらのなかで具体的な手法というよりも共通する価値観をまとめたものをこのようにまとめたものがアジャイルマニフェストです。
(現在の日本でアジャイルといった場合、これは僕の感覚に過ぎませんが、あたかもスクラム的な手法を取ることがアジャイルなのだという雰囲気がある気がします。しかしながら、スクラムはこの時点ではそこまで支配的なものでもなくここに集まった17人の何人かが提唱していた手段の一つのようです。)
ところで、このアジャイルマニフェストの集まりには誘われたけど都合がつかなくなって来れなくなった人もいて、この17人だけが同じような考えを持っていたわけではありません。
アジャイルな17人
以下に、このとき集まった人々の主な業績と考え方をまとめていきます。
開発実践方法の派閥的なものにエクストリーム・プログラミング(XP)とスクラムがあり、分けるとしたらこうかなという分類で17名を分類しています。XPもスクラムも、その始まりはこの17人の中にいます。
XP派
Kent Beck
まずは言わずとしれたケント・ベックさんです。
彼はエクストリームプログラミング(XP)という手法の提唱者です。
XPは割と具体的な開発の実践手法であり
テスト、テスト自動化
頻繁なデプロイ
短い開発サイクルを繰り返す
ペアプロ
などに割と重きを置いています。
XPはよく知られたアジャイル開発手法の一つですが、スクラムほどには書籍は執筆されておりません。
具体的な開発手法のそれぞれは後世に単独ではばたいてはいますが。
それ以外にも、テスト駆動開発、JUnitでも知られており、執筆活動も盛んです。
Ward Cunningham
ウォード・カニンガムさんです。
カニンガムさんはベックさんと二人でXPを発展させた人です。さらには、ソフトウェア開発におけるデザインパターンもまた、カニンガムさんとベックさんの二人で発展させたものだそうです。
(この二人が着想元にした建築学、クリストファーアレグザンダーとかパタン・ランゲージについては僕はまったく詳しくないです。)
「技術的負債」のメタファーを考えたのも彼だとか
(ソフトウェア開発の歴史においてカニンガムさんとベックさんの関係は深いはずなのに、なぜアジャイルマニフェストの名簿だと遠いんだ...?)
Martin Fowler
マーティン・ファウラーさんです。
ファウラーさんも書籍で有名です。
リファクタリング
エンタープライズアプリケーションアーキテクチャパターン
が有名ですね。読んだことや積んだことがある人は多いと思います。
彼はThoughtworksの中心人物としても知られています。
毎年テック系のトレンドを詳しく出してくれるのでみたことがあるかもしれませんね。書籍以外にもBlikiというサイトでパターンや開発手法についての記事を書いてくれています。
Is it best to think of the agile world as one school or many (are Scrum and XP different schools or part of the same)? What are the major schools out there? What exactly defines a school of thought?
アジャイルとは一つの学派なのか、スクラムとXPは同じ学派なのか、それとも異なった学派なのか?と本人も悩んでいるのは面白いですね。
Robert C. Martin
ロバートCマーティンさんです(通称ボブおじさん)
さまざまな議論を呼びがちなあのクリーンアーキテクチャの作者として知られています。
また、カニンガムさんの考えたテストフレームワークFit
をもとにしたテストのためのソフトウェア、FitNesse
も開発しています。
アジャイル開発の実践についてはClean Agileなどの書籍にもかいてありますが、XPの手法を好んでいるようです。
ボブおじさんは17人の中でも相当多産な作家であり、2024年にも最新作を発表しています。
Ron Jeffries
ロンジェフェリーさんです。
内容的にはベックさんの書籍の実践版的なもののよう?
James Grenning
ジェームスグレニングさん。
もともと組み込み系を専門とされているかたで、組み込みにおけるテスト駆動開発に関する本を書いています。
さらには、プランニングポーカーの祖でもあります。
これによってチーム全体の参加や見積もり精度の向上、プロジェクトのリリースまでの大まかな見通しが見込めます。
プランニングポーカーについての論文を書いたのはグレニングさんですが、Mike Cohn(アジャイル界の重要人物ではあるがマニフェストには参加していない)さんによって広まったようです。
Twitterを見る限りTDD、XP強硬派のようですが、彼の考えたプランニングポーカーが別名スクラムポーカーなのはちょっと皮肉です。
Scrum派
Jeff Sutherland
ジェフサザーランドさんです。Wikipediaによるとベトナム戦争に行っていたよう。
ケンシュウェーバーさんとともにScrumの祖です。Scrumはまず竹内野中論文という、製造業における新製品開発のスピードと柔軟性がいかにして実現されるかを分析した論文から着想を得ています。
スクラムはXPと比較してチームや組織がどうあるべきかという点に焦点が当てられている印象です。
スクラムチームは、プロダクトオーナー、開発者、スクラムマスターという役割があり、より管理的です。
(XP派は建築業からの影響がつよく、Scrum派は製造業からの影響がつよいのだろうか...?)
Ken Schwaber
ケンシュウェーバーさんです。
サザーランドさんとの共著論文がシュウェーバーさんの名前で出されています
この論文は最初1995年のOOPSLAというカンファレンスで発表され、オブジェクト指向技術がスクラム開発の基礎を提供すると述べています。(それはなぜ...?というところはよくわからないです)
どうやらシュウェーバーさんとサザーランドさんはもともと別のところで開発していて、二人のやり方が類似していたのでそれをまとめてScrumとなったようです。
Mike Beedle
マイクビードルさん
これもまた、ソフトウェアのデザインパターンなどと同様に、成功する組織はどうなっているのかパターンを発見しようという試みです。
Wikipediaによるとファウラーさんとボブおじさんに誘われてAgile Manifestoの集まりに来たらしいです。
そして、かれら共通の考えをアジャイルと呼ぼうと言い出した、アジャイルの名付け親でもあります。
ビードルさんはシュウェーバーさんとともにこんな書籍を出しています。
eXtreme Programming is an ideal many software shops would love to reach, but with the constant pressures to produce software quickly, they cannot actually implement it. The Agile software process allows a company to implement eXtreme Programming quickly and immediately-and to begin producing software incrementally in as little as 30 days! Implementing eXtreme Programming is easier said than done. The process can be time consuming and actually slow down current software projects that are in process. This book shows readers how to use SCRUM, an Agile software development process, to quickly and seamlessly implement XP in their shop-while still producing actual software. Using SCRUM and the Agile process can virtually eliminate all downtime during an XP implementation.
この本の紹介文をみるとScrumで効率的にXPしようというようなことが書いてあります。
自分では派閥だと思っていたのですが、アジャイルの祖に言わせると別に派閥じゃないのかもしれませんね。
Jon Kern
ジョンカーンさんです。
経歴を見る限り面白いのは、航空技術やミサイルに関するエンジニアだったということです。
ブログの内容を見るにRubyに造詣が深く、KanbanやScrumに関する記事を書いていますが、XPについての言及はないようなのでScrum派閥としました。
中立、諸派
Alistair Cockburn
アリスターコーバーン。コックバーンと言う人も多いが、コーバーンのほうがまだもとの発音にちかそう。
彼もよく知られた人物です、開発手法としてはクリスタルというものを提唱していました。
クリスタルは最近の日本のIT界隈ではあまり聞くことのない開発手法だと思います。これについての書籍ほほとんどが絶版です。
このような状況で書籍もなく語るのも恐縮ですが、本人によるスライドを見つけたのでそれを読んでみました。
この手法は、より人の性質に重きを置いているものだと思います。プロジェクトが成功するためには、以下の7つが重要と述べています
- 頻繁なデリバリー
- 反復的な改善
- 密接なコミュニケーション
- 個人の安全(悪いニュースでも上司に言おう)
- 集中(優先順位の高いものから対処、中断されない環境)
- 熟練したユーザーへの容易なアクセス(顧客に聞こうってことか?)
- 技術的な環境(テスト自動化など)
さらには、密接なコミュニケーションのためにはフェイストゥフェイスが一番いいとも述べています。
他には彼はユースケース(Use case)についての書籍や、ヘキサゴナルアーキテクチャ、KPTでも有名です。
ヘキサゴナルアーキテクチャについては以前記事を書きました。
Andrew Hunt
アンドリューハントさん
The Pragmatic Programmer(邦題:達人プログラマー)の作者として知られています。実は彼は2015年にこんな記事を書いています
アジャイルが形式的になっていてその型さえ守って満足みたいな実践が多く(開発者としてはそういう場も何度か見ましたし、自分としても同じような考えになりがちなのでよくわかる)、変化に適応できなくなっているという批判です。パターンとソフトウェアという潮流によって影響を受けたアジャイルが、そのせいで(?)型にはまって動けないというのはなんだか皮肉ですね。
Dave Thomas
デイブトーマスさん
彼はハントさんと、Pragmatic Bookshelfという出版社を経営しています。上で貼ったThe Pragmatic Programmerはそこから刊行されており、共著者でもあります。Jim Highsmith
ジムハイスミスさん。
NASAでかつて働いていて、アポロ計画にも関わっていたようです。Adaptive Software Developmentというものを1992年に生み出していて、まさにアジャイルの原型といった感じの、反復的な開発サイクルを行う手法のようです。
Brian Marick
ブライアンマリックさん。
彼についてはWikipediaが存在しません。ブログを見る限り、テストに強みを持つエンジニアのようです。
って思ったらアジャイルテストの4象限の作者でした。
テストをビジネス面と技術面、チームサポート、プロダクトの検証といった観点で分類し、アジャイルの反復的な開発のフェーズでそれをいかに行うのかみたいなことのために使われる図です。詳しくはこの本に書いてあるかもしれません。
Steve Mellor
スティーブメラーさん
この人もWikipediaが充実していません...このインタビューによると、メラーさんの関心は主にオブジェクト分析や設計、UMLであって、コーディング的な面にはそれほど関心がなく、ベックさんのXPにモデルやドキュメントについての考えが欠如していると考えていたようです。アジャイルマニフェストの集まりに参加した際も、こんなものが世間で支持を集められたらたまらないということでスパイとして参加したらしいです。
アジャイルという言葉とモデルという言葉が同時に現れることは稀だが、それは対立するものではないということも言っています。
最近では、メラーさん的な考え(モデル大事)を持っているひとも多いのではないでしょうか。
Arie van Bennekum
アリーファンベネクムさん
このかたの略歴はあまりわかりません。
アジャイルはITや開発手法だけではなく、企業全体に適用されるべきという主張をしています。
最近ではアジャイル組織という言葉もありますし、彼の考えは経営層てきにも響くのでしょうか
まとめと感想
書き始めた動機はアジャイルという言葉は使われる頻度が高く、一度くらいスタート地点を見に行ってみようというものでした。
方法論や考え方はそもそも結構最初の17人からして異なるところもあり、それらも発表から数十年たって変わっていたり変わっていなかったり、批判されていたりして面白いですね。
普段当たり前に受け入れている概念や考え方の祖がこのアジャイルマニフェストの17人の中にいたりして、改めてこの人たちの礎の上にソフトウェア開発を行っていたんだなということを認識させられます。
また、ソフトウェア開発においてアジャイルが勃興した時期にオブジェクト指向やパタン・ランゲージが流行っていて盛んに研究されていたことがよくわかりました。
クリストファーアレグザンダーを読まないといけないかもしれません。
記事を書くにあたって、notebooklmにたくさん記事や論文を入れて質問しながら書いたのですがとっても便利ですね。
もし今後アジャイルという言葉を聞いたときに、それはアジャイルのどの考え方や誰の方法論を指しているのかそれとも何も指していないのか考えるときにこの記事が役立てば幸いです。
私見では、日本国内で日常会話や求人情報、営業文句で使われる場合のアジャイルは今日書いたこの記事のいずれも指していないです。
Discussion