ALM Summit 3 レポート 第2回 (全3回) ~ New Era に向けた継続的なアップデート VS 2012 Update 2, Git 発表
エバンジェリストの長沢です。現在参加している ALM Summit 3 の参加レポート第2弾をお送りします。
ALM Summit については、第1回のレポートをご覧ください。
基調講演
Brian Harry – Building an Engineering Organization for Continuous Delivery
昨日の基調講演、ブレイクアウトセッションではあまりツールについて触れられることはありませんでした (※ DevOps のセッションで TFS と System Center での Enterprise DevOps があったくらいです)。
今回は基調講演で TFS の総責任者である Microsoft の Brian Harry から新しい情報が飛び出しました。Visual Studio 2012 と Team Foundation Server 2012 の Update 2 のアナウンスと Team Foundation Service の更新、そして、TFS の DVCS 対応のさらなる手だてとして、ソース管理に Git を選択できるようにしました。
これらのアップデートをただ単に機能追加や対応ととらえると開発環境の進化とトレンドを見誤ってしまう危険性があります。詳細は、この基調講演に限り、ライブストリーミングも行っていたのでご覧になった方もいらっしゃるかと思いますが、のちにオンデマンドでも配信される予定ですので、じっくりとご覧ください。英語があまり得意でなくても見ていただけます(デモが多いです)。
ストリーミングが公開されました。
Building an Engineering Organization for Continuous Delivery (Git Announcement)
冒頭で、アプリケーションライフサイクルにおいてのトレンドとして、以下が挙げられました。
- Change is the new normal
- The Build, Measure, Learn virtuous cycle
- Continuous feedback and delivery
- Blurring functional boundaries
- Distributed Teams
これらは、簡潔に言うと、今間のやり方が通用するとは限らない世界になりますよ、顧客もソフトウェアも待ってくれませんよといことだと感じました。私も常日頃から講演でお伝えしていますが、まさにもう待ったなしになってきました。
さらに BML Virtuous Cycle を詳説していました。BML とは、Build – Measure – Learn のサイクルです。 このサイクルの中で、Dev も Ops も Commerce も一つの方向に集中していきます。DevOps ムーブメントはこのひとつという位置づけです。
そして継続的な価値の提供(Contunious Value Delivery)のメッセージもより具体的に進化をしていました。文字だけでは伝わりませんので、撮影したものをご紹介します。
今までの 「Define」、「Develop」、「Operate」 からより詳細化されており、「Define」、「Develop」、「Operate」、「Adapt」、「Feedback」 をあることがわかります。そして大切なのは、中央に位置する「Team」です。先日のレポートでも触れましたが、Team の エンゲージメント は、これから必須で意識しなければならない重要事項です。それを行うためにも、持続可能かつ、カイゼン可能な、ケイデンス(リズム)が重要になってきます。この Continuous Value Delivery のコンセプト図は、まさにそれを示しています。
この中での分散開発へのより強い拡張として、DVCS の Git を TFS のソース管理(バージョン管理)として選択ができるようになったことは非常に意味があります。Brian は Git について以下の3つのポイントを挙げて、対応の必要性を説きました。
- Git は DVCS をリードする立場である
- Git はデプロイメントのプロトコルとしても実績がある
- Git は多種多様なプラットフォームで機能する
TFS 自体も、クライアントは、Team Explorer Everywhere や Git-TF、Web インターフェイスにより、多くの開発で利用可能ですが、それだけに足らず、DVCS の利点を活かす必要性がでてきています。そこで Brian が挙げたポイントは以下の3つです。
- Modern Application Architecture is different
- Development Teams are becoming more distributed
- Enterprise leveraging open-source components
先進的なアプリケーションで対応しなければならないアーキテクチャが多種多様な点は、昨日の基調講演で Jason が触れています。さらに、開発は分散傾向にあるというのは、単に分散拠点という意味だけではなく、開発者の体験を豊かにし、分離と統合のバランスを取るためにも重要です。たとえば、テスト駆動開発(TDD)を行う際には、頻繁にコミットを繰り返しつつ、Green なコードのみを統合したいわけです。OSS の利用についてはあらゆるシーンでの活用がでてきました。この流れは、Microsoft のソリューションや Microsoft の OSS への貢献からも自然な流れでもあります。
TFS 自身が、オリジナルの DVCS 化をするよりもとてもリーズナブルな対応をしたと個人的にも感じています。また、必ずしもすべてのプロジェクトで DVCS が必要ではない点も TFS の集中型のソース管理の良さが継続して活かされるため、重要な点です。
先に触れたように、Brian の基調講演は、自らによりデモンストレーションに大半の時間を費やしていました。ここでは、簡潔なスクリーンショット(私の環境下で取得したもの)でその概略をお伝えします。のちにご紹介する各種の情報リソースにも、スクリーンショットがたくさん盛り込まれていますので、英語が苦手な方も見ていただければ幸いです。
■TFS 2012 Update 2 および Team Foundation Service での Git ソース管理対応
Team Foundation Service ではすでに Git ソース管理が実装済みです。チームプロジェクトの作成の際にどちらかを選択ができるようになっています。
Git のサポートの状況および、利用のガイダンスもすでに整備されています。
■Visual Studio 2012 Update 2 での Git 対応
Visual Studio 2012 および、チーム エクスプローラーも Git リポジトリに対応します。Git 接続を行うには、以下の条件を用意する必要がありますので、現時点ではお試しで行っていただくほうがいいと思います。
・Visual Studio 2012 Update 2 を適用すること
・Visual Studio Tools for Git をインストールすること
たとえば、新規のソリューションやプロジェクトをソース管理に追加する際にも、以下のダイアログが表示されます。
これで、チームエクスプローラーから TFS の流儀で、自然流れで Git を扱えるようになります。
用語もチェックインではなく、コミットなど今のトレンドに合わせた用語に変更になっています。
Git の操作が難しいと感じていたエンジニアであっても、GUI でより直観的に操作が行える点も見逃せないポイントです。また、Visual Studio だけでなく、Git のクライアントがあれば、利用できる点でこれからの Modern Applications で iOS や Android、Windows や各種クラウドプラットフォームが混在している環境での開発もリポジトリを TFS で一本化ができます。この価値はとてつもなく大きく、これからのソフトウェア開発は、ビジネス価値を最大化し、継続的にデリバリーし続けることに注力が可能となります。
■チームエクスプローラーで複数 TFS 環境の接続を容易に
Update 2 により、複数のチーム プロジェクトの行き来が容易になります。
アイコンをクリックするだけで、自分がつなぎたいところへつなぎ、即座に開発にまい進することができるようになります。
■テストエクスプローラーの進化 ~ テスト実行の容易性
Update 1 で改良されたフィルタリングしてのテスト実行でクラス単位など Visual Studio 2010 の時に容易に実行できたことができるようになります。
■TFS Web インターフェイスの進化 ~ テストケース管理と手動テストの実行
TFS の定評のあるインターフェイスからテストケースの管理(テストケースの作成も含む)が行えるようになります。
また、手動テストの実行も Web ベースでおこなうことができます。
このように、Web ブラウザがあれば、実行が行えますので、あらゆるプラットフォームでの手動テストの効率化と改善が期待できます。
Test Manager の該当機能が使えるようになったと想像していただければと思いますが、Test Manager では、様々な診断データの自動収集や、手動テストの自動実行につながる再生機能、操作ログやビデオキャプチャの収集などよりリッチな機能が提供されています。
■TFS Web インターフェイスの進化 ~ 作業項目のタグ付け
作業項目にタグをつけて、フィルタリングがより容易になります。たとえば、プロダクト バックログ項目が増えすぎて、ユーザーや開発チームとの意思疎通に支障をきたすようなシーンでも、タグでフィルタすることで、目的の共有を即座に行えます。
プロダクトバックログにも記載されています。
タグつけは、非常に容易ですし、過去に作成/利用したタグは、選択肢から選ぶだけです。
■TFS Web インターフェイスの進化 ~ Kanban ボードのカスタマイズと WIP 制限の設定
Kanban のステータスに WIP の個数制限(WIP Limit)を設けることができます。これにより、「詰め込みすぎ」や「駆け込みやっつけ作業」などが起こりにくくなります。
昨日のセッションでも WIP Limit が効果的であるとの共有がありました。
■情報リソース
情報リソースについては、下記をご覧ください。 Visual Studio 2012 Update 2 で予定しているのは、上記だけではなく、たとえば、Blend For Visual Studio のフルサポートや、Windows Phone アプリの単体テストプロジェクトなどまだまだたくさんあります。
- Somasegar's blog: Improving the Modern Application Lifecycle
- Brian Harry's blog: Announcing Visual Studio 2012 Update 2 (VS2012.2)
- Visual Studio ALM blog: CTP for Visual Studio Update 2 now available
- Brian Harry's blog: Git init VS
- Visual Studio ALM blog: Getting Started with Git in Visual Studio and Team Foundation Service
- Scott Hanselman's blog: Git support for Visual Studio – Git, TFS, and VS put into Context
- Team Foundation Service: Team Foundation Service updates – Jan 30
- Team Foundation Service: Team Foundation Service Learn – Create net team project
- Visual Studio Tools for Git
- Git 対応の10分間ビデオ: https://channel9.msdn.com/posts/GitForVisualStudioTFS
Agile under a Waterfall
Agile Development by Benjamin Day
まずは、スピーカの意味する Waterfall の定義から入りました。コンテキストを表明する姿勢がすばらしいですね。
前提は、以下です。
- Plan-driven (全体計画駆動)
- Gant Charts (ガントチャート)
- Microsoft Project (笑)
- Start & End Dates (開始日と終了日)
- Phases (工程)
Agile はとても人気があるやり方になっています。約39%がAgileを適用しているデータが2011年の時点であります(Waterfall は 9%程度です)。
また、Agile と Waterfwall で成功率を比べると、Agile : Waterfall = 42% : 14% に。失敗率で比べると、Agile : Watefall = 9% : 29% というデータがあいます。
また、Watefall と Agile プロセスの一つである Scrum を比較してみると次の特長があると示しました。
Waterfall | Scrum |
Requirements docs | Just-in-Time, informal requirements |
Occasional "Cusotmer" involvement | Frequent "Customer" involvement |
Start-to-finish Project Plan | Product Backlog. Plan for Sprint. Details are sketchy beyond that. Priorities shift based on new data. |
Tasks are assigned | Assigned tasks are a bottleneck |
Potentially large team size | Teams of 3 - 9 people |
Multiple phases, eventual delivery | Working software each Sprint / Iteration |
Resistant to change | Change is expected |
Contract says what we build, deliver | Contract is a lot closer to T&E |
この比較を踏まえて、なぜ Scum がよいのかを解説し,Waterfall な人は、計画がないと落ち着かないとしました。
その後、特徴と対応について解説をしていたったのですが、時間オーバーとなってしまいました。10項目くらいあるうちの5項目くらいで時間を10分オーバーしており、完了の定義 (Definition of Done: DoD) は、どちらにも共通で重要だし、理解ができるものなので、そこは解決の道がある、バックログは言葉に抵抗があることが見受けられるので、プロジェクト計画としてしまえば話が通じやすくなるなどいろいろ語っていたところで、ファシリテーターから「ところで、君の DoD は大丈夫だと思う?」と突っ込みが!こういうやりとりが米国のカンファレンスで好きなところです。
私が受け取った感じだと、結局は「問題 vs. 私たち」にするために、お互いに歩み寄ること、顧客指向でものごとを考えるようにすること、形にこだわらず、それぞれの現場で最適解を見つけること。そこの柱として DoD は妥協してはいけないことではないでしょうか?
Scrum のやり方を Waterfall な人が見ると Rework に見えることなどがあり、不安になります。ただ、アプローチが異なるだけで最終的なゴールは一致しているはずなので、やり方は、工夫ができるのではないでしょうか。
A New Era of Computing
Plenary Session by James Whittaker
非常に示唆に富んだ素晴らしいセッションでした。この一言につきます。開発のテクニックでもなく、マネージメントのテクニックでもなく、今とこれからの IT による Magic について時に熱く、時にユーモラスに語っていました。
時と共に Magic が変わってきている。それをしっかりと受け止め、受け入れ、Magic を作るエンジニアであり続けるべし!というメッセージととらえました。
- 90s: Store & Compute
- 00s: Search & Browse
- 10s: Know & Do
この遷移は、私が、同じ尺度でビジネスと IT の関係を資料しかしたものとも通じるところがあります。
何がどう変わっていくのかを分かりやすく解説をしていました。いくつか挙げると、
- Input → Intents
- SERP → Answers
- Web → Structured Data
- Browser → Magizine
- Ads → Offers
- Apps → Experiences
たとえば、「おなかがすいた」に対してコンピューティングの力でPCを開いて、ブラウザを立ち上げて、検索サービスを開いて、キーワード入れて、リストから選択しクリックし、さらに結果をみて、・・・ではなく、デバイスに音声で「腹減った!」といえば、位置情報と時間の情報と過去の履歴、好みからおすすめの店を教えてくれ、そこまでのルートがでて、予約も入れてくれる・・・という世界にもうすでになりつつあるということですね。
ここで Microsoft の戦略が活きてきますね。 Multi Devices & Cloud においける Modern Apps & Modern Lifecycle の必要性が見えてきます。
そして、「Data is new currency」、「Data is curency of know to do」という言葉は Magic を生み出すエンジニアは意識しないといけないと感じました。
もし、ストリーミングが公開されたら必須でご覧いただくといいと思います。
Twitter での Tweets まとめ
2日目の Twitter での #ALMSummit, #ALMSummitJa をまとめました。 Visual Studio 2012 Update 2、Git 対応、 James のセッションなどの参加者の反応を感じていただければと思います。
Togetter: https://togetter.com/li/447979
TFS の価値と最新動向をキャッチアップできるイベント
翔泳社主催の Developers Summit 2013 (通称 デブサミ) にて Team Foundation Server と Team Foundation Service についてのセッションがあります。
【14-B-4】チーム×ツール Team Foundation Server & Service "共感しActionできる開発基盤" アルティメイタム
無償イベントですが、事前登録制です。本セッションは、【残席わずか】となっていますので、早めに参加登録することをお勧めいたします。
(長沢)