ALM Summit 3 レポート 第1回 (全3回) ~ Be Agile, Scale Up, Stay Lean


ALMSummit3logo

 

エバンジェリストの長沢です。今回より数回にわたり、現在参加している ALM Summit 3 の参加レポートをお送りします。

 

ALM Summit とは

ALM Summit は、ソフトウェア開発に不可欠な アプリケーション ライフサイクル マネージメント、開発スタイルの進化について情報を共有するグローバルなイベントです。 ALM に関わるリーダーが年に一回集う場でもあります。

ALM Summit 3 – expertise worth sharing

私は、2年ぶり2回目の参加です。第1回に参加しました。その時と今回ではおよそ3~4倍の参加者です。ちなみに第2回には、7名が日本から参加しました。参加したメンバーのうち、お二人はその後に、Microsoft MVP for Visual Studio ALM で表彰されていますし、そのほかのみなさんも、ソフトウェア開発のあらゆる分野、お仕事で活躍をされています。

ALM Summit と Microsoft の関係ですが、Microsoft は毎回、会場の提供やファシリテーションのサポートをしているダイヤモンド スポンサーという位置づけです。スポンサーには、開発ツールベンダーをはじめ、Visual Studio のパートナー企業が多く参加をしていますが、それだけではなく、毎年、Scrum.org が協賛をしているイベントとしても知られています。

今回で3回目を迎える今回は、Scrum Alliance もダイヤモンド スポンサーとして参加です。注目の開発プロセスであるスクラムの2大団体が協賛しているイベントなのです。

 

テーマ / トラック

今回の ALM Summit は、3トラック制でキーノートなどを除き、並行して3つのセッションが展開されます。

  • ALM Leadership
  • Agile Development
  • DevOps
  • Testing

Testing は単独のセッションではなく、他のテーマとアラインする形で横ぐしで取り扱われていました。また、どのトラックもきれいに区分けができるものではないため、トラックのオーナーの裁量で選定されている感じがします。要するにどのトラックも見逃せないのです。並行して実施するため、残念ながら Live ですべてのセッションを聞けないのが残念です。

 

基調講演

Jason Zander – Modern Application with Windows Azure これからは、「先進的な」 アプリケーションとライフサイクル管理が不可欠になり、そのためには、”Connected Devices” と “Continuous Services” をトータルに考え続けなければならないということを Windows Azure での対応状況と共に共有されました。

image

上図は、Jason が使っていたスライドと同等のものです。Connected Devices が External Service と Continuous Services を利用して先進的な、User Delight な体験をユーザーに提供することを示しています。また、それによりビジネス価値を継続的にデリバリーすることができることになります。これらを包括的に実践していくには、よいアプリを作るだけではなく、いかに機敏に、継続的に作り、提供し続けるかが重要になってきます。Jason の講演では、Microsoft 製品/プラットフォームとのマッピングは行っていませんでしたが、別の資料を下に補足として示します。

image

さて、Jason は先日まで Visual Studio の VP を務めており、現在は、Windows Azure の VP を務めています。したがって Windows Azure の特長を中心に、これからのアプリケーション開発の基盤となる OS (= your OS) として Azure を全面的に紹介する形となりました。

Windows Azure の特長として、Flexible, Open, Solid を挙げ、それぞれについて、Virtual Machine (VM), WebSites, Mobile Services, Cloud Services (PaaS), SQL Database について特長と、自らによるデモでわかりやすく紹介をしていました。最後の締めくくりは、

Azure is your OS.

です。

これからのビジネス価値を継続的に提供し続けるためには、Windows Azure の力もプラットフォームとして、Your OS として選択肢に必ず入れておく時代になりましたね。

ストリーミングが公開されました。

Continuous Services and Connected Devices

 

インダストリー基調講演

Dean Leffingwell – Be Agile, Scale Up. Stay Lean 続く基調講演では、長くソフトウェア要求管理の分野で貢献し続けている Dean の講演です。彼は現在、Scaled Agile Framework (SAFe) の開発とその貢献を行っております。また、彼の著書である『Agile Software Requirements』 が ALM Summit 3 の参加者全員にサイン入りで提供されました。

彼の講演では、ソフトウェア開発や単一のプロジェクト運営で語られるすぐれたプラクティスを IT ポートフォリオにまで拡張する基本的なポイントが共有されました。SAFe の紹介として「4つの価値」を「Alignment」、「Code Quality」、「Program Execution」、「Transparency」と解説しました。

SAFe については、 http://scaledagileframework.com/ で情報が共有されていますので、興味のある方は、こちらをご覧いただくか、彼の著書の『Agile Software Requirements』 をご覧ください(余談ですが、彼と私はもともと同じ会社でしたのでいろいろと昔話を少ししましたが、この書籍は日本語訳されるとのことです)。

Dean は、アジャイルをスケーリングするためには、透明性 (Transparency) が何よりも重要であると説いていました。透明性のあるハイパフォーマンスなチームの集合による IT ポートフォリオを包括するアジリティが生まれるということですね。そして、透明性の前提条件は、信頼 (Trust) であり、不可欠であると述べていました。

また、Lean Software における 5つの要素についても一つずつ触れていました。

  • The Goal: Value (Sustainably delivering value fast)
  • Pillar 1: Respect for people
  • Pillar 2: Kaizen (Continuous improvement)
  • Foundation: Leadership (Management supports)
  • Contents: Product development flow

これらの元で、「Faster Feedback」を実現する必要があります。なぜ、早期フィードバックなのかというと、「Better Decisions」につながるからです。この Decision は集中一括型から、分散ローカル型に移行するとともに、より求められてきます。これを 「Program Value Stream」と呼びます。

また、アジャイルなチームには、以下が必要と紹介していました。

  • 自己組織化
  • 価値をデリバリーするための全テスト
  • スクラムとカンバンを活用したマネージメント
  • eXtreme Programming (XP) のテクニック

また、アジャイルなチームは、

  • プログラム ビジョン
  • システム アーキテクチャ
  • UX ガイダンス

のもとで運営されるべきと紹介していました。

このほか、優先順位に関係する「Weighted Shortest Job First (WSJF)」の考え方に触れ、WSJF = CoD / Job Length で説明がつくことを紹介していました。CoD とは 「Cost of Delay」のことで、CoD = User & Business Value + Time Value + Risk Reduction & Opportunity Enablement で表現できます。

非常に示唆に富んだ内容でしたのでうまくまとめきれませんが、「権限の委譲と自己組織化により、より早いサイクルのでのデリバリーとそれに伴う早いフィードバックの基礎を作ること」が前提であり、スタート地点であるとよみました。これらはスクラムでも、継続的デリバリーでも言っている文脈ではありますが、これらをスケーリングを前提に解説しており、参加した層からすると一つの考え方としてよい情報となったようでした。

 

DevOps

ここからは、各トラックに分かれてのブレイクアウトセッションとなりました。私は、まず DevOps トラックのセッションを選択しました。

Mike Brittain – Continuous Deployment: The Dirty Details このセッションでは、継続的デプロイの実践事例として、Etsy.com の開発責任者が登壇していました。DevOps トラックは、他のトラックより少し小さ目な部屋がアサインされているのですが、このセッションは大盛況!立ち見はもとより、さすが米国です、床に座って参加する人多数でした。

最前列の席の前に床に鎮座し、通路も鎮座しての受講です。私も実は最前列で床に座って参加しました。この辺は米国流に慣れていますので、躊躇せず座りました。

さて、内容は、一日あたり30回以上の本番環境へのデプロイを行えるために何を行っているのかを詳説していました。ここですべてを触れることはできませんが、仕組みと組織とマインドセットにより、今のテクノロジーでは十分に可能であることがよくわかる解説でした。

少し上げるとすれば、構成で機能のOn/Offを切り替え可能にする(そういう仕組みであり、アーキテクチャにする)、DB スキーマの変更もデータを保全し、スキーマ変更が可能にするなどの取り組みがされています。

また、古い資産(バージョン)を捨てる基準についても触れていました。ビジネスニーズ、安定性、メンテナンス性、パフォーマンス要件に応じて決定しているとのことでしたが、要するに、自分たちのビジネス(お客様のビジネス)に応じた基準を明確に持ち、適切な意思決定を行っているということかと思います。このあたりも先の基調講演にも通じるところです。

プロセスについても紹介があり、旧来の「Dev → QA → Staging → Prod」から「Dev → Pre-Prod → Prod」と変えていったことが紹介されていました。

環境については、開発環境も本番環境もスペックの良い環境で行うというベストプラクティスも披露していました。HDD ではなく、SSD を活用するなどですね。

開発においては、Commit の前に必ず Code Review をすること、デプロイの前に自動テストを実施することを徹底し、さらにデプロイ後にも自動テストを実行することでビジネスインパクトへの影響を常に検証し続けることが大切であると紹介していました。

ここでも、一貫してでてきたのは、フィードバックサイクルについてです。また、Canary Pools についても紹介がありました。早期にフィードバックをもらい、改善し、提供し続ける姿勢が大事です。正しいことに最適化をするというよりは、誤りを早期に最適化することに集中するという考え方は、他でも適用できることだと思います。

 

Agile Development

Peter Provost – Staying in the Groove Visual Studio の Principal Program Manager の Peter のセッションでした。Visual Studio の製品群を開発するときの組織の在り方、とりわけメンバーのモチベーションについてのトークが中心でした。単なる技術論ではなく、地に足の着いたカイゼンの過程と結果から生まれる知見を惜しげもなくトークしていました。

この手の話は、How に陥りがちで、What (と Why) の話も引き出せますが、これらの後に得られたメタな部分でのサマリーは、ここだけを聞くと「精神論」と言われてしまう危険性もありますが、人のもつポテンシャルを信じ、自らが判断し、自らが実践し、自らがフィードバックのループに身を置くには、気持ちは取り払って考えることができません。

このセッションでは、この大切なことを実績のある Visual Studio の開発チームの率いている上位のマネジメントの口から聴けたこともあり、他の参加者からの絶賛されていました。

そんな中でも、「ツールは重要だが、最重要ではない」と言い切り、人と価値に重みを置きつつ、ツールによる支援も具体的な実践手段のトーク中で、披露していました。

これらのツール手段は、多くのものが TFS に組み込まれ、Visual Studio の Premium 以降で汎用的に利用できるまで進化をしてきています。

たとえば、メトリクスも様々なものが収集できますが、決してメトリクスを取ることに価値を見出さない姿勢の大切さにも触れていました。メトリクスはあくまで指標でしかなく、それ自身に価値があるわけではありません(たとえば、コードカバレッジが100%だからなに?ってことです)。カバレッジが下がってきているのか、上がってきているのかが重要であり、絶対的な数値にはそんなに意味がないということです。これらは生産性の指標にも言えることです。過去とまったく同じプロジェクトでもない限り、絶対数値ですべてを判断することはできませんし、それが正しい前提だと、チームが疲弊し、結果も芳しくなくなるのが、過去の実績からも見えてきています。

また、ゲートチェックインは、チームにとって非常によいサイクルを生むためにいろいろなところで使われています。Visual Studio の開発部門がもともとやっていたことですが、この作法は、.NET や Visual Studio だけでなくどんなプロジェクトやツールでも使えますので、ぜひ TFS を使ってみてください。

繰り返しますが、モチベーション大事ということです。

ここでもキーワードで出て来たのは、権限の委譲、自己組織化、モチベーションです。人の持つ可能性を最大化することが組織、ビジネスに大きなよい効果をもたらすことがもうすっかり浸透してきている感じを受けました。

 

ALM Leadership

Gregg Boer – Shifting to Agile Requirements in a Continuous Delivery Cadence TFS の Principal Program Manager によるアジャイルな要求との付き合い方についてのセッションです。ここでは、TFS / Visual Studio の開発ケイデンス (リズム) の紹介から始まりました。元々は2年単位でのリリースを行うのがやっとであったものを、現在であ、Team Foundation Service は 3週間の単位に、 それをベースに Team Foundation Server は3か月の単位でリリースが可能な「体力」がついたという紹介です。

このベースにあるのが、ケイデンスです。よいリズムをつくり、地に足の着いたことをすることが重要であるということです。そのうえでやみくもにではなく、味方 / ファンを社内外につくり、エンゲージしていくことで、忙しいユーザーであっても協力していただける土壌を作り続けることができるという紹介がありました。

私も、スクラムのバックログのグルーミングとタイムボックスなど「定期的」なフィードバックの機会がユーザーの協力を得やすくなるという紹介をいつもしていますが、それを地で行っている TFS の事例の紹介でした。

ここでも、チームの成熟度であり、エンゲージが重要であると述べていました。そのためには、環境を用意すること、プラクティスを活用し、実践することがケイデンスを維持する意味でも、大切となってきます。

そしてセッションのテーマでもある要求についてですが、Right-Weight を意識しましょうという紹介がありました。Light-Weight ではありません。正しい優先順位をつけるということです。

また、透明性、信頼、自己組織化、さらに「Formality is Waste」という紹介もありました。

唯一製品の機能に触れていたのが、TFS の標準搭載されているプロダクトバックログの概要レポートです。横ぐしでバックログ項目単位ですべての状況が見えることで、コマンド&コントロールに陥らず健全なチームを形成でき、自然と自律するということです。

 

BOF

BoF は、会場にいくつかのグループ(グループあたり、10~20名程度)で関心ごとについて議論、情報共有するセッションがありました。およそ10セッションくらい行われていました。

また、臨時で Ken Schwaber による Open Jam (※会場内ではなく、オープンなスペースで自然発生的に始まったセッション)が行われました。私はここに参加をしました。

Scrum での運営において(または、Scurm で運営したプロジェクトやプロダクト)何をもって成功とするべきかなど、多くの議論がなされていました。

 

Agile Development

David Starr – Estimating for Software Development, Delivery, and Deadlines  講演者は、現在、Senior Program Manager for ALM Tools をしている元 Scrum.org の人です。少し前に Microsoft への移籍で話題になった方ですので、記憶にある方もいるかと思います。

完全な見積もりが困難であることを示すため、実際に、乾燥したマカロニが入っている箱を会場に回覧しながら、参加者に「マカロニの数」を見積もりさせていました。講演しながらも、見積もりを書いた付箋紙を回収し(※回収は登壇者ではなく、スタッフです)、それをスクリーン下に予め用意しておいたメジャーを見立てたテープに付箋を貼っていきます(どれくらいの数と見積もった人がどれくらいいるのかを可視化するため)。

結論は、「正確な数など当てることができない」であったのですが、ネタを知っている人がいたらしく、見事に的中させてしまいました。

このセッションでは、見積もりのテクニックも紹介しつつ(Planning Poker や White Elephant Estimation など)も、正確な見積もりが困難なことを受け入れ、大切なことが何かを見極めたほうがよいというようなことを訴えていたと思います。たとえば、「Quality vs. Cost」で見たときに、OSS かつ自分の趣味で作っているソフトウェアと、スペースシャトルと、LOB アプリケーションで同じ尺度ということはあり得ないということや、立場によって見積もる単位も変わってくることなど重要な観点を解説していました。

計測についても、過去の実績を図る意味で用い、過去の実績に対して、今ならここまでできるといった考え方(相対的見積もりとベロシティ)が地に足がついた方法ではないかという紹介でした。

 

初日のまとめ

こては、初日だけではないと思いますが、「チームの力を最大化する」ことが最重要になってくることをどのセッションでも触れられていました。これがいわば、前提の条件となるということです。いろいろなプラクティスやナレッジがでてきますが、それを実践する際も、また、それをスケーリングや横展開できるようにする際も、この「チーム力」が前提となるわけですね。

また、グローバルで見ると、個別のプラクティス → 継続的な価値へのプラクティス活用 → 地に足つけた実践 とシフトをしてきているのではないかと個人的に感じました。

日本では、組織の理解が得られないというところから、組織論に行くことが多いように思いますが、グローバルで見ると成熟度を上げるためのステップとしての組織論に行き着いていう感触です。議論の内容だけみると似たようなことをやっているように見えますが、中身とそのアプローチはだいぶ異なるのかなとう印象でした。

 

写真でみる ALM Summit 3

いくつかの写真を掲載します。雰囲気を感じていただければ幸いです。

P1030329 P1030333
ALM Summit 3 の会場である Microsoft Conference Center のエントランスです。バナーがお出迎えしてくれています。 基調講演で講演をしている Jason Zander です。
P1030350 P1030406
DevOps | Continuous Deploy のセッションの様子です。床に座っている角度を感じていただければ幸いです。 トラックごとに、スポンサーがついています。
P1030407 P1030409
ALM Summti 3 のスポンサーのロゴバナーです。Visual Studio のほか、前述した Scrum Alliance と Scrum.org のロゴが光っています。 Visual Studio のブースです。Visual Studio の製品カラーをイメージして紫なのだと思いますが、正直センスを疑わざるを得ません。
P1030413 P1030423
Scrum Alliance のブースでは、アジャイルコーチによる相談会が行われいました。 Peter は、セッションの開始後に変身しました。ふざけているわけではなくセッションの主旨に沿った演出です。
P1030437 P1030483
TFS のリズムについてのスライドです。上が旧来ので、下が現在のです。非常に細かく定期的に開発が行われていることがわかります。 Ken Schwaber による Open Jam の様子です。
P1030501 P1030530
見積もりのセッションで、参加者が見積もったマカロニの数を少ない方か順に貼り付けていっているところです。 こちらは、本日会期後に行われた Expo Reception の模様です。人がまばらに見えますが、実は部屋の外のブッフェに人が群がっています。

ツイートのまとめ

ALM Summit 3 では、Twitter ハッシュタグ #ALMSummit で Tweets を見ることができます。また私が日本語で Tweets したものは #ALMSummitJa をつけるようにしています。これらについて トゥギャッターでまとめましたので関心のある方はご覧ください: http://togetter.com/li/447456 

 

無償セミナー開催のお知らせ

最速レポートに引き続き、2月1日に「2013年の開発トレンド先取りセミナー」を開催いたします。開催地は、東京・品川です。私はこの日も米国に滞在していますが、現地からライブ中継にてセッションで ALM Summit 3 について紹介をさせていただきます。よろしければ、ぜひご参加ください。

2013年の開発トレンド先取りセミナー 詳細情報および事前参加登録

 

明日は、2日目の様子をレポートします。

(長沢)

Comments (0)

Skip to main content