アトラシアンのアジャイルプロセス、アップデート

ChrisMChrisuserpic-31-100x100.png*本ブログは ATLASSIAN blogs を翻訳したものです。本文中の日時などは投稿当時のものですのでご了承ください。
*原文 : 2009 年 6 月 10 日、Chris Mountford 投稿 “Atlassian Agile Process Revisited

agile_development_blog_badge-thumb-185x99.png2007年に、私はアトラシアンのアジャイルプロセスについて一連のブログ記事を書き、それは驚くほど人気がありました。私たちのアジャイルストーリーを再度お話しするために、私の以前のブログについてアップデートしたいと思います。前回、私はXPのプラクティスを列挙し、それらをアトラシアンのプラクティスにマッピングしました。私は同じことは繰り返したくありません(D.R.Y.)ので、もしアトラシアンのアジャイルプロセスの最初のブログに興味がありましたら、こちらのパート1をご覧下さい。

今日、エンジニアリング部門において、私たちは依然として各開発チーム毎に、そのチームのために、そのチームにより定義されたアジャイルプロセスを持っております。今でも2007年の時と同様にです。変化があったことは、ほとんどが二次的影響のカテゴリーにおいてです。

拡散

この2年間におけるアトラシアンのアジャイルプロセスの最も大きな変更点は、エンジニアリング作業プロセスだけではありません。どの部門も機敏になりつつあるということです。アジャイルプラクティスに関する人気のある本は、手にとって回され、共同使用している本棚に積まれ、また、黄色くて汚い付箋紙がはみ出た状態で、散らかった机の上によく置いてあります。そして今では、皆がそれらを読んでいると思い始めました。アジャイルプロセスがアトラシアンで大量に導入され始めたというもう一つの兆候は、約1年前に、中間管理職(アトラシアンにおいてその時にできたばかり)がスタンドアップを開始したことでした。その後、まるで、クリティカルマス(注:その点を超えると普及率が跳ね上がる)に到達し、スタンドアップミーティングのプラクティスはどこででも見られるかのようになりました。アトラシアンだけではなく、何かを成し遂げたい賢い人々の間では、ミーティングを最小限にするという文化があるように見えます。

それはスタンドアップミーティングだけではありません。カイゼンのように、一部の組織が考慮するものはもちろん、ユーザーストーリーそれは必要ないだろううまくいきそうなもっともシンプルなことを行う繰り返さない、などは今ではアトラシアンの用語集の一部です。私は、この導入を3つの属性に分けました:

1. それが上手くいくのを人々が見ていた。
2. リーダーたちがそれを好きである。
3. それは新しいことではなく、すでに確立された多くの知恵に当てはまることである。

agilebooks.jpg拡大

アトラシアンは、スタッフの数においても、オフィスの数においても、6年間の歴史の中で急速に成長してきました。プロセスは、長距離とタイムゾーンにまたがって拡大させる必要がありました。成長による痛みの良い例は、自動化されたJIRAの一連のテストです。それは素晴らしいケダモノです。ユニットテスト(junit)、機能テスト(jwebunit)、ウェブブラウザードライバーテスト(selenium)、の数は増加しています。また今では、テストを含む、品質保証体制に関する全ての側面を見直し、改善するQA部門があります。

JIRA は複数のOS、JDK、アプリケーションサーバー、データベース、そしてそれらのバージョンをサポートしています。そして、異なるフィーチャーセットをもつ3つのエディション(スタンダード、プロフェッショナル、エンタープライズ)があります。(注:JIRA 4から、エディションは1つになりました)各エディションは、異なる形式で配布されます。EAR/WAR版、アプリケーションサーバーとしてTomcatを含んだスタンドアローン版、そして実行可能なWindowsインストーラー版です。それだけはなく、JIRAはまた異なるウェブブラウザーの複数のバージョンで動作します。

つまり、テストしなければならない多くの組み合わせがあるのです!全ての組み合わせを自動的にテストできれば良いと本当に願っています。現在、私たちの全機能テスト一式は、2時間以上を必要としています。それに全ての組み合わせを乗じると、おそらく完了するまでに数日のCPU時間を要するでしょう。もちろん、ユニットテストは、比較的素早く実行でき、そのグリーンバーにより、十分な自信を持つことができますが、もし、コードのリファクタリングを行った時に、JIRAのユーザーインターフェースがどこか壊れていないか確認したいのならば、少なくとも2時間は待つ必要があります。

数千もの機能テストを実行することは、恥ずかしくなるほど並列な作業負荷として知られていることであり、それ故に、作業を適切に “並列化” して完了できなかったことを恥ずかしく思います。

しかし今では、BambooがEC2クラウド内で動作するエージェントをサポー