ALM Summit 3 レポート 第3回 (全3回) ~ ALM Reimagined
エバンジェリストの長沢です。3日間の日程で本カンファレンスが行われ、閉幕した ALM Summit 3 の総括レポートをしたいと思います。なお、Post-Workshop が明日も開催されています。
今までのレポート
最終日のまとめ
最終日は、「ALM Leadership」 と 「Agile Development」の 2トラック制が基本でした。そこに Testing と DevOps の要素が入っている形です。
最終日は、「これからのソフトウェアの方向性」が強く打ち出されていました。3日間の日程でもよく考えられてあり、この3日目で、総括しつつ、「これから」がうまく自然と入ってくるように構成されていたように感じます。各トラックのオーナーが世界的にも名のある、通用する人物ばかりなのですが、さらにきっとトラックオーナーで綿密に話あって構成したのだろうなと思いました。
基調講演
基調講演は、リーンスタートアップについてでした。
Lean Startup, Demystified by Scott Porad ここではリーン スタートアップの原則を紹介しつつ、いくつかの着目点で特徴を示していました。たとえば、
Agile:
- 大枠の所見:
- This is not working because we can not define the solution - ソリューションが定義できていないなら作業しない
- 大枠のアイデア:
- Shorter Feedback Loops - より短いフィードバックループの連続
- Eliminating Waste - ムダ取り
- Measure of progress was working code - 進捗の測定は動くコード
そして、成功する企業の構築サイクルについて紹介しました。
- Customer Discovery のループ
- Customer Validation のループ (*Discovery に戻ることもある)
- Customer Creation のループ
- Customer Building のループ
顧客を中心にし、顧客をよく理解するところから始め、理解できないなら進まないという感じですね。
Eric Ries の文献と言葉を引用しながら、以下の式を紹介しました。
Customer Development + Agile = Giant B-M-L good or early stage
* B-M-L: Build, Measure, Learn
またポイントとして、
- Minimize the total time through the loop - ループにかかる時間を最小化する
- Unit of Measure is Validated Learning - 計測の単位は、認識できた知見
そして、忘れてならないこととして、
Lean is not Cheap
を述べていました。Agile も Lean も何もそうですが、銀の弾丸でもない(当然ではありますが、私はこれを言及したくないタイプですがあえて)ですし、楽でも、安くもないです。地に足ついて、しっかりと愚直にやるべきことをやるこれは避けるものでもないですし、スキップできるものでもない。ただ、アプローチや実施する方法、経験ノウハウはたくさんあるので、やみくもにやるのではなく、守破離もそうですが、身に着けていくことが大切なのだということですね。その意味でも、この3日間の構成は素晴らしく感じました。
テストと ALM Leadership、Agile
さて、この日は、「ALM Leadership と テスト」、「Agile と テスト」 のセッションがありました。私も予定を急きょ変更し、「テスト」にフォーカスをしてセッション選択をしました。
- Testing and Agile: the Team Approach – Anna Russo
- Agile Testing – Anutthara Bharadwaj
Anna は、Microsoft MVP for Visual Studio ALM で、TFS 2012 Tester Power Tool の開発者であり提供者です。このツールもセッションの中で「テストを効率化する一つの大きな取り組み」として、紹介していました。このツールは、より簡素になる要求からテストへの流れをより簡潔に自動化する仕組みを提供してくれます。
プロダクトバックログ項目の受け入れ基準のテキストボックスに、受け入れ基準を箇条書きしておき、このツールを使うと、このプロダクトバックログ項目とトレーサビリティの取れた探索的テストケースを自動生成してくれます。この受け入れ基準に従い Microsoft Test Manager を使って探索的テストを行えば、探索的テストの機能を使って操作をテストステップとして自動起票してくれるため、次からは、手動テストのテストケースとして使えるようになるわけです。したがって、プロダクトバックログ項目→受け入れ基準→テストケース→テスト結果の一連の流れが可能な限り自動化により効率化ができるようになるというわけです。詳細は、彼女のブログをご覧ください。
さて、このセッションでは、まずバグのコストのかかり方の「おさらい」から入りました。グラフを使っての説明でしたが、ここではグラフを示すのは差し控えておきますが、機能テストからフィールドテストの間で、バグ改修のコストが実に $750 が増加し、フィールド テストからリリース後の改修では、 $15,000 も増加することが示されました。すなわち、前倒しでバグを発見し、かつ改修できていれば、コストを大幅に削減できるということです。コストをお金とだけ取らずに、QCD の Q と D にも影響があるものとしてしっかりととらえると今の時代のソフトウェア開発にとって、先の基調講演での Customer Development の関係からも決して見逃してはならないということがわかります。
また、バグ改修でのコスト削減のインセンティブが経営者やマネージャにとって90%のメリットがあり、エンジニア(Worker Bee)には 10% のメリットしかない現状の課題も指摘しています。これが逆転されるべきということです。 さらに、アジャイルテストの4象限を用いつつ、どこにコストをかけるべきか、どこに力を注ぐべきかについても参加者に意識を促す話もありました。
そして、CMMI、 Agile、 Scrum とあえてカテゴライズし、これらについて、「テストケースの情報源、テストケースの作成方法」、「いつテストケースを作成するのか」、「テストケースの作成に費やす時間」、「テストの実行とその方法」、「テストの実行結果の扱い方」について特長をまとめて解説していました。これがすなわち「テストのゴール」となるわけです。
以下引用です。
CMMI |
Agile |
Scrum |
|
Test Case Source | Spec | User Story Acceptance Criteria | PBI (Product Backlog Item) Acceptance Critetia |
Test Case Creation | Manual | Automated stub test case from Acceptance Criteria | Automated |
When are test cases created? | Upfront |
Upfront | During Test Execution |
Amount of time to create test cases? | A lot | Minimal | Minimal |
Test Execution | Defined Automated | Defined & Exploratory Automated | Exploratory Automated |
Test Execution Results | Pass/Fail/Bugs | Pass/Fail/Bugs | Bugs |
そして、これからのテストにおいて重要なキーワードとして、「Quality is Everyone’s Job」 が示されました。また、QA の新たなる役割や、テストは誰が作成するのか、自動化するのか、テストの管理は誰がいつどのように行うのか、テストとテスト環境はどうあるべきかについても触れられていました。
Anutthara は、Microsoft の Program Manager です。まず初めに挙げたのが 「Key Shift」です。テストを考える上でももう顧客中心は欠かせないということです。
- Facilitate Shortest Possible path to customer value
- Quality is a collective responsibility
- Continuous Quality – testing is not a separate phase
そのための課題も挙げています。
- Generating the right documentation despite doing lightweight testing by whole team
- Rapid, reliable, repeatable testing to keep up with short iteration in the lifecycle
- Continuous quality throughout instead of relying on a separate distinct testing phase
様々な考察と Test Manager、Visual Studio によるデモも交えて解説があり、アジャイルテストは、様々なニーズに適応が可能であること、正しいプラクティスとツールを使えば上記に挙げた課題は克服できること、テストによる自己文書化によりよりライトウエイトにできること、テスト自動化により、効率化され、信頼でき、繰り返し可能にできること、ビルドしたら常に品質が確認できる Continuous Quality が実現可能であることが示されました。
Lightning Sessions
このライトニング セッションは、15分~20分くらいのショートセッションをいくつか展開するというものです。私は Agile Development の Lighting Sessions に参加しましたが、都合 4つセッションが行われ、事例であったり、主張で当たったりが展開されました。一番興味深かったのは、Microsoft の Visual Studio 開発部門による開発現場の実演です。
TFS によるバックログ管理とタスクボード、Visual Studio での効率的な作業の流れとテストエクスプローラーの効果の当たりに的を絞って、二人で普段やっていることをやって見せるというのをやっていました。挨拶すらなく、いきなり現場が展開され、笑いあり、どよめきありで非常に楽しめました。デモの流れは私がいつも行っているものとなんら変わりあえ居ませんが、現場のやり取りというコミュニケーションの円滑さが色濃く表現されていて非常によかったです。私も相方がいればそういうデモができるのですが(笑)。
また、Kinect を使って、TFS のタスクボードのタスクを遷移させるデモを実演してる人もいました。
全体会議セッション
Plenary Session – Agile 2.0: Software Development in the Era of the Open Graph by Israel Gat
このセッションでは、これからの IT における新しいやり方についての示唆が含まれていました。会場の反応も、100% 同意というものでもありませんでしたが、非常に面白いセッションでした。
2012年のマーケット動向のおさらいとして以下を挙げていました。
- Hyper-segmented
- Fast changing
- OMO IT budget > CIO IT budget in a few years
そしてこれからは、
Everything as a Service から Everything is a Service へ
と向かうとしていました。その中で、4つのトレンドとして以下を挙げていました。
- Software –> Apps (API Economy, New classes of productive assets)
- Cloud (Everything as a Service, Monetize your API)
- Mobile (The Super-Fresh contextual Web)
- Social (Assembly and Brokering of Services)
また、今後の傾向として、Traditional Scrum と Agile 2.0 の対比として、特に頻度、間隔がどのように変わっていくのかという一つの見通しを立てていました。
クロージング 基調講演
Reimaging the Application Lifecycle by Sam Guchenheimer
『アジャイルソフトウェアエンジニアリング』の著者でもある Sam Guchenheimer による総括です。彼は4つのパートに分けて総括を行いました。
- Roots of “Build. Measure. Learn.”
- Inside the Practice
- State of the industry
- ALM reimagined
まず、アジャイルは、我々によりよいプロダクトの開発の教えを提供してくれたと述べ、以下のアジャイルコンセンサスを紹介しました。
- Reduction of Waste
- Flow of Value
- Transparency Practices including (Scrum, Unit Testing, Continuous Integration, Small Batches, Definition of done, Exploratory testing, …)
さらにこのプロダクト開発は、 Customer Development にということで、リーン スタートアップから Running Lean の流れを紹介していました。
これを1枚のスライドで紹介をしていました。Visual Studio 2012 のコンセプト図を使っての表現です。そこで紹介していた項目は、以下です。
- Make Business Hypothesis a testable experiment
- Define experiment as minimum viable product (MVP)
- Build measurement into MVP
- Measure the results
- Gain validated learning
- Persevere or pivot
そのうえで、今後のトレンドとして初日に Brian Harry も触れていた点を挙げていました。
- Modern Application Architecture is Different
- Development teams are becoming more distributed
- Enterprise Leveraging open source components
投資のモデルも変化してきていて、先の全体会議講演でもあったように、CMO の予算が CIO の予算を逆転する時代になることが述べられていました。これらのビジネスプラクティスの変化は、テクノロジーの進化によってもたらされたものでもあります。Connected Devices、Continuous Services、Big Data, Public/Hybrid Infrastructure によるところが大きいということです。これらには、スタートアップやクラウド サービス ベンダーが実践し、経験してきてものが多く影響をしてきます。これらはすでに Enterprise でも活かされ、実践させるフェーズに入ってきました。それにより、新たなエコシステムとビジネスニーズが生み出され、ビジネスが展開されていきます。
したがって、小規模用のプラクティスだからとか、スタートアップだからそれくらいやらないと。。。などではまったくなく、どの領域でも等しく業界の得た知見を活かしていかなければならない時代に突入をしていると理解をしました。
ここで例示したのは、オバマ大統領を勝利に導いたとされる事例です。そこでの A/B Test の例を挙げていかに機敏に動き続けることが大事になっているのか、勝負の分かれ目になるのかを解説していました。
そのうえで、ALM 自体が再創造の時代になっていることを示唆しました。
- Addressed Technical Debt
- Amplified Flow of Value
- Focused on Cycle Time
ALM はこの1つの Waves によって推進されてきました。Visual Studio でいうと、2008、 2010、2012 とマッピングさせるとわかりやすいです。
Visual Studio 2012 のコンセプトでもある Continuous Feedback では、サイクルタイムと MTTR の短縮というメジャーしやすい基準が設けられています。これは、如何にビジネスアイディアを動くソフトウェアとして運用し続けるかという点(サイクルタイム)と、動いているソフトウェアの問題をいかに迅速に対処するか(MTTR)に焦点を当てることで、DevOps な振る舞いと、継続的デリバリーの実現につなげる考え方でもあります。これに、もうひとつ、Build → Measure → Learn のサイクルを追加し、メジャーすることで、Product Development → Customer Development を行うという考え方へシフトをしてきているということです。
今後も私の方でも、この部分を正しく、わかりやすくお伝えできるように準備を進めていこうと思います。
まず、ご理解いただきたいのは、時代が動いているということ、そして、その時代についていくことも、おいつき、追い抜くことも今ならまだ可能であるということです。ぜひキャッチアップのきっかけにしていただければ幸いです。
ストリーミングが公開されました。
Reimagining the Application Lifecycle
日本マイクロソフトとしての取り組み
日本マイクロソフトとしても、プラットフォームベンダーとして、そして、開発プラットフォームの技術と環境を提供するものとして、これからもソフトウェア開発の最新動向をお伝えし続けてまいります。そこで、以下のサイトを立ち上げました。
ソフトウェア開発環境の最新動向
このページでは、このレポート記事をはじめとして、動向についての最新動向、セッション資料の公開を行うほか、無償によるエバンジェリストの出張講演の取り組みなどを行っていきます。
ALM Summit での動向をはじめ、Continuous Feedback、Continuous Value Delivery の解説や Visual Studio ソリューションでの ALM の具体例のデモンストレーションなどを提供する予定です。現時点では告知にとどめていますが、問い合わせ先からお気軽にお問合せいただければ、詳細をお伝えできますので、今のうちからぜひ積極的にお問合せいただければと思います。
Visual Studio の製品ページのトップからも行けるようになっていますので、ぜひ、周囲の方にもお伝えいただければ幸いです。
(長沢)