メソッド屋のブログ

米マイクロソフト Software Development Engineer 牛尾の日記です。ソフトウェア開発の上手なやり方を追求するのがライフワーク。本ブログは、個人の意見であり、所属会社とは関係がありません。

DevOps ハッカソンは日本で通用したのか? 〜ハッカソン運営での学びと中の人〜

私は入社以来、月1回以上のペースで、DevOps ハッカソンという無料イベントを実施しています。

f:id:simplearchitect:20160403010452j:plain

DevOps が学べて、関連技術を自由にハックして楽しめるイベントです。マイクロソフトが、DevOps を広く普及させて将来DevOps の良い事例になってくれるお客様を探すことを目的としています。マイクロソフトというとWindowsみたいなイメージがありますが、このハッカソンはそういった縛りはありません。Azureを使っていただくことと、 Visual Studio Team Services という Git / Kanban / Build(CI) / Release Management / Testingみたいなのが便利にできる SaaSサービスをちょっとだけでいいので使っていただくこと、DevOpsプラクティス (例えばInfrastructure as Code)をどんな技術を使ってもいいので、実装するという条件です。

 だから、Linux でも、Docker でも HashiCorp でも技術は好きな物を使って楽しんでもらえればいいイベント になっています。もちろんMSのフルスタックで決めていただいても問題ありません。

 実際何回も開催しているとだんだんとコツがわかってくるものです。Microsoftでは、NSATという顧客満足度の指標が あるのですが、この数値もFESTやde:codeの最高レベルぐらいの点数を稼ぐことができています。(もちろん、プレゼン とハッカソンという違いはあるので、一概に比較できませんが)きっと少なくとも、来ていただいた人には体感的にも とても喜んでいただいているようです。

正直に言うと、これは私の努力ではありません。私をサポートしてくれている人が素晴らしいのです。 だから日頃からの感謝を込めて、その内情を正直にお話させていただきます。

DevOps ハッカソン上陸の経緯

 私がマイクロソフトに入社したのは、昨年の8月になります。入社した当時最も重要な私の仕事はこの DevOps ハッカソンでした。私は結構チャレンジャー体質かつ、不器用なので「失敗は学ぶチャンス!」と考えています。ですので、「もちろんやるよ〜」と上司に言いました。しかし、正直に言うと、上手くいく確信など何もありませんでした。「最初は失敗して学ぶかな」ぐらいに思っていました。

 私の上司はフランスに住んでいるフランス人です。エンタープライズの技術者がメインのターゲットと言っていましたが、少なくとも当時は、日本のエンタープライズの人がハッカソンに参加してくれるイメージがありませんでした。もちろんイベントとしてはスタートアップ系の皆さんも大歓迎です。日本へDevOpsを広める為のイベントという目的がありますので、楽しんでいただければどなたでも大歓迎です。

 当時、開催まで3週間ぐらいしかありませんでした。私はマイクロソフトに入りたてで、「Azure とか全然しらんしどうするんよ?そもそも集客大変ちゃうか?」と思っていました。しかし、なんでもやろうと思えばなんとかなるものです。

 初回は David という向こうのトップの DevOps エバンジェリストが来てくれることになっていました。本来それは私にやり方を伝えるためなのですが、私たちは、彼がガチハンサムということもあり、「DevOps プリンス」と名前をつけて、「外タレきますよ!」的なノリで宣伝させていただいた。もちろん、個別で自分の知り合いに直接アタックして、DevOps 好きそうな人に声をかけました。

f:id:simplearchitect:20160403011359j:plain

通常のMSのルートじゃない、connpass なども活用して、日英両方でアタックすることで、第一回はかなり盛況で終えることができました。

超絶優秀なマーケティングマネージャが活躍

 実は私のポジション(米マイクロソフトのDevOpsエバンジェリスト) は「RG」と内部でよばれているポジションで、マイクロソフトがある技術に力を入れたいときに、3年ぐらい一時的にできるポジションです。過去には Azureのエバとして、尊敬する佐藤(NEO)直生さんや増渕大輔さんが、このポジションにいました。そういう重要なポジションなので、だからきっと凄く優秀な人をアサインしてくれたのだと思います。

 今もDevOps のマーケティングは秋山さんという人が担当しています。初回から、今まで変わらず超優秀です。彼女はこのタイミングを逃さず、完璧にプレスの各社にリークをしてしっかり記事にすることをしかけました。

codezine.jp

www.atmarkit.co.jp

special.nikkeibp.co.jp

 おかげさまで今回話題になっている de:code も彼女が活躍が裏にあります。さらに素晴らしいのが、この初回の成功を一瞬でシンプルで楽しめるレポートにまとめ、本社側のマーケティングやエバンジェリストに共有して、素晴らしい評価を受けたことです。  本社側は、日本市場は相当やりにくい場所と思っていたらしく、とても喜んでもらえたようでした。後に本社から、日本のDevOps ハッカソンはうまくいっているということで、視察が来ることになります。

simplearchitect.hatenablog.com

 正直私はエバンジェリストとしては相当「ひよこちゃん」です。人前に出るから目立つけど、「アイコン」みたいなもので、実際の成功のエンジンは彼女なのです。彼女は、その他の細かい手配、アレンジなども完璧です。

f:id:simplearchitect:20160403011857j:plain 視察に来た本社メンバと日本メンバ

ただ、一回目の課題としては、Azure や Visual Sutdio Team Services のセットアップで、混乱し、初日のハックがスムースにいかなかったことがありました。

第二回目からが勝負のタイミング

 私は1回目は David がきてくれるのだから、集客さえできればある程度上手くいくのは当然と思っていました。問題は二回目です。 1回目はエッジな人が来てくれました。ですので、ハッカソンという形態も大丈夫でしたが、2回目からはそうとは限りません。

 いろいろなレベルの人が来てくれる。そして、Davidはいない。MS入社2ヶ月の私は対応できるだろうか?

 私はアジャイルコンサルタントだったので、DevOps のプロセスや考え方、プラクティスに関しては得意分野です。そして、OSSのIaCも大丈夫なところ。問題は、Azure や Visual Studio Team Services だ。さすがにマスターするには時間はありませんでした。

もちろん、自分でデモを作ったり、ランスルーをしてみたりはしているが、ハックを支援できるほどできるだろうか?

 ここでも、先の秋山氏がファインプレーを見せました。彼女は、ハッカソンの立案をするだけではなく、他のテクニカルエバンジェリストに適切に助けを求めるだけではなく、ハッカソンごとに、誰が支援するかのアレンジを行って、支援が薄いところは、調整をして、適切なサポートを得られるようにしてくれた。もちろん会場の手配も同じだ。むっちゃ美味しいお弁当や、お菓子もしっかり用意して、みんなが楽しめる雰囲気を巧みに演出してくれました。

f:id:simplearchitect:20160403013007p:plain

無限の守備範囲を持つ神エバンジェリストが支援

 私は DevOps といっても、プロセスが最も強く、技術力はスーパー高くない。技術は アジャイル系技術、IaC やコンテナなどの技術は得意な方ですが、ITPro系は経験がありません。(私の所属はITPro - Japanなのだがw) DevOps 系の技術に強いエバといえば高添さんが有名だが、彼はご存知の通り超絶売れっ子です。どうしたものか、、、と考えていたら、秋山さんがまたもやファインプレーをして、エバンジェリストの小塚さんをこのタスクにアサインしてくれました。

f:id:simplearchitect:20160403014319j:plain 吉田パクえさんと小塚さん

彼ははっきり言って超絶優秀。そして無限の守備範囲。VSTSから、Azure、OSのディープなところから、Azure Stack、コンテナ、PowerBI、Office 思いつく限り殆どの分野をカバーする超人なのだ。(ちなみに、たくさんできるが本人は、OSとかのディープな部分が好きらしい。高添さんがやっている分野をやってるのが楽しそう。彼は高添さんのサポートと兼務) 実際、彼は優秀すぎて、いろんなエバンジェリストから引っ張りだこになってしまうので、秋山さんがいろんなエバから要求される彼のアサインをブロックしていた。

 彼の才能はそれだけではなく、こういったイベントの運営も完璧なプロフェッショナル。彼はパフォーマンスネックあったときのために、予備のWifiを準備していたり、初回に混乱を招いたVSTS/Azureの導入手順、審査のためのプレゼンテーションのテンプレートから、会場の案内まで完璧にこなした。正直雑な私では到底できないことだ。彼の才能は神がかっている。

DevOps T-シャツ登場

 さらに、このイベントを盛り上げるべく、秋山さんが、密かに発注してたのが、DevOps T-シャツだ。背面の毛筆は書道家の友人に書いてもらったらしい。DevとOps が協力して、ソフトウェアのライフサイクルを改善するDevOpsのコンセプトのごとく、DevとOpsのT-シャツを作成した。これはとても喜んでもらえて、海外の同僚もとても羨ましがっている様子だった!参加者はこのDevOps T-シャツがもらえることになっている(現在のところ。在庫切れ後は秋山さんのアイデア次第w)このハッカソンのあと、ハックフェストという別イベントをやったときもわざわざ来てくれて人もいてなかなか嬉しいものだ。

f:id:simplearchitect:20160403014452j:plain

エンタープライズにハッカソンは通用したか?

 私が得意のプロセス、プラクティス、アジャイル系技術のデモを行い、秋山さんが私の足りない技術を持ったエバンジェリストを集め、小塚さんが、最高の運営と、高度な技術で参加者の皆さんの問題をガンガンに解決していった。やはり想定した通り特にエンタープライズ系やSI系の方はハッカソンが初めてで、参加に躊躇したとおっしゃっておられる方多くいました。

f:id:simplearchitect:20160403014646j:plain

ハッカソンはすごい技術力が無いと来れないみたいなイメージがあります。

 しかし、終わってみると、殆どの方は、「来て良かった」「楽しかった」と言っていただけてほっと一安心です。さすがに、プログラミングが出来る、もしくは、インフラ構築や運用したことがあるとか、そういう基礎的なスキルは必要ですが、エッジでないと楽しめないとかではないので、お気軽に参加されたら楽しんでいただけると思います。

 エッジな方はエッジな方で、いろいろな技術をハックできて楽しんでいただけている様子です。大体チームは、毎回マイクロソフト系と、オープンソース系のチームが半々ぐらいになることが多くて、秋山さんのファインプレーもあり、DevとOps を別サイトで募集しているので、Devが8割何てことはこのハッカソンに関しては存在しません。だから、どのチームも、DevとOps が一緒のチームになります。だから、普段体験でき無い、DevとOpsが一緒になって一つのチームでコミュニケーションをとりながら作業をするという体験が得られて喜んでいただけている様子です。    技術に関してもOSSだとDockerやChef、DockerCloud、Jenkins、Slack + Hubot などは人気が高いです。中にはMesosやAzure Container Servicesを実施した人もいます。MS系で固めるチームは、.NET - VSTS - WebApps - SQL serviceの構成で、CI / CD / Release Management を決めて、さらに PowerBI や Application Insight で可視化して、Iacは、 Azure Resource Manager を使ってキメるというパターンが多くありました。

いつもびっくりしますが、たった二日で、CI / CD / Release Management までがっつり自動化したり、ブルーグリーン やロールバックを実装したり、負荷テストを決めたり、監視までうまく回したり、いつもびっくりさせられます。レベルは関係なく 皆さん、みなさんになりに役割分担して、楽しんでいただけているようです。日本でハッカソンなんてできるだろうか?と 思っていましたが、本当にやってみて良かったです。

f:id:simplearchitect:20160403014840j:plain

 先日福岡のチームは、このハッカソンで作ったソリューション(Minecraft のサーバーをプロビジョンするサービス)を立ち上げて、GitHub に公開してくれました。そして、このチームは、Dev x Ops だけではなく、デザイナーもいました。もちろん優勝です。

f:id:simplearchitect:20160403015004j:plain

github.com

 尚、このハッカソンでは、商品のためにハックして欲しくないので、優勝チームは決めますが特に豪華景品はありません。弁当は美味しいですが。

### DevOps ハッカソンの効能

 観察してみると、通常のプレゼンテーションやハンズオンと比べて、ハッカソンはどういう効果があるでしょうか?実はマイクロソフト の社内の教育でも、近年では必ずハッカソンのイベントがあります。私も社内イベントがあるのですが、そこでもハッカソンに参加して きました。マイクロソフトでは、スキルレベルを四段階に定義しています。100, 200, 300, 400 のレベルです。100は知ってるレベル 200 は使えるレベル、300 はコードを含む深いレベル 400 がハッカソン主催とかのレベルです。社内のハッカソンに出れば、自動的に その分野で200のレベルを獲得することができます。

f:id:simplearchitect:20160403015344j:plain Redmond で行われた MS 社内ハッカソンの様子

 何かの技術を習得したいときに、プレゼンだけだと、聞いて満足して終わりというパターンが多いでしょう。デモを見てもある意味わかったきになるだけで、実際にできるとは別問題です。その点ハンズオンはいい感じですが、「失敗」がないので理解が浅くてもなんとかなります。

 ハッカソンは違います。明確なゴールや目的があり、最初から「応用」を目指して考える必要があります。だから、理解せずできるものではありません。そしていいのは必ず、チームメートがいますし、エバンジェリストスペシャルゲストがいるので「聞ける」のです。

しかも、懇切丁寧に教えてくれたり、一緒にペアプログラミングまでしてくれたりもします。

f:id:simplearchitect:20160403015635j:plain

 何かをマスターするときに、達人の人に聞いて、一緒にやることほど最速で本質がわかる方法はありません。自分で実感していますが、これは最強です。

 私も昔は教育コースに出たら分厚い資料をもらってありがたがっていましたが、今から考えると、それを見返すことはどれぐらいあったかな?と思います。自分が「実際できるようになる」ことこそが最高の宝だと思います!そして、何より技術ハックが楽しいものだ!とうまくいってもうまくいかなくても、新しい技術に触れたり試せたり、それをディスカッションするのは最高に楽しいことですね!  ちなみに、主催する側も空き時間が発生するケースがあって、その時はハックを楽しんでいます。もちろん質問があって、参加者の皆さんとハックするのも非常に楽しいですし、勉強にもなっています。本番で対面する「課題」は、決してハンズオンでは体験できません!

f:id:simplearchitect:20160403015904j:plain

 それ以外にも、DevOps という要素が大きいです。DevOps という概念は、ソフトウェアライフサイクルの改善を実施するので、範囲が大変広いのです。それとプラクティス、ツール、マインドセットまであるので、これを座学で学ぶのは相当難しいでしょう。しかし、ハッカソンなら概念を理解したのち、本番に程なく近い状態で体験できます。そのため、かなり効率よく理解できると思います。当初は懐疑的でしたが私も、ハッカソンは日本でも、エンタープライズ系でも有効という確信が得られました。

f:id:simplearchitect:20160403024244j:plain

DevOps で使われるツールセット。多すぎっす

 後はどうやってみんなに知ってもらうかが課題です。このブログポストもその一つの手段です。無料ですし、マイクロソフトのロックインもないですし、DevOps を広める楽しいものですので、是非広めるのにご協力いただければと思います。

DevOps ハッカソンの改善

 実は安定したハッカソンを提供できるためには、いろいろ施策を打っています。秋山さん、小塚さんが完璧に支援してくれていることもありますが、私たちは毎回振り返りをして、改善点と解決策を考えたり、いろいろ手を変え品を変えて、A/Bテストみたいなことをやったりもしています。休日に開催してみたり、平日にしてみたり、品川のマイクロソフトでやってみたり、渋谷の.dots でやってみたり、Java User Groupでやってみたり、ゲストを呼んでみたり。様々です。私のパートも、一人でやったり、小塚さんと分担してみたり、ゲストを加えてみたりと様々なトライをして、その実践から学んで改善をかけています。

 大きな傾向としては、平日はよりエンタープライズ色が濃くなる傾向にあるようです。休日の場合の方はオープンソース色、サービス、スタートアップ色が若干濃くなります。ただし、これは、色という程度で、味見程度です。  地方は、大阪、福岡、札幌と実施しましたが、集客に苦労しました。来ていただいた皆さんには楽しんでいただいたようですが、今後も継続して開催するためには、どのように地方で集客するかは大きな課題です。やはり、「ハッカソン」というハードルがまだ高いのかもしれません。

このままでは、地方開催は福岡を除いて厳しい状況になるかもしれません。是非いいアイデアや、ご支援などありましたらコメントいただければと思います。

DevOps ハッカソンの満足度を高めるポイント

 さて、様々なテストや試行を繰り返して、現在のところの DevOps ハッカソンの満足度をあげる為の必殺パターンを共有させていただきます。 コンテンツはもちろんあるのですが、「安定した運営」です。DevOps だとネットワークの帯域を消費しますので、しょぼいWifi環境だと相当ストレスになります。ですので、Wifiの帯域はかなり気を使っています。Azure のセットアップや、VSTSのセットアップで、苦労すると、本来のハックが楽しめません。そういう部分をスムースにするのも大変重要です。

 次に、オーバービューと、具体的な技術の解説の両方という要素があります。私がするトークやデモはあくまでDevOps の概念やプラクティスを理解するためのオーバービューになっています。それだけにしてしまうと、満足度が落ちることがわかりました。私と小塚さんで2人で担当して同じことをしても、私一人でやる時よりスコアは良い傾向にありました。そこで、1人より2人でやる方がいいことを学びました。

f:id:simplearchitect:20160403024022j:plain

 何回か実施して観察してみると特定の回の満足度が高いことがわかりました。それは概要をお話したのち、何か一つのとんがった技術を解説するスペシャルセッションを設けた回が常に非常に高い満足度を得ていることがわかりました。

 それをヒントに今は、概要と、詳細の技術を解説したスペシャルセッションを実施する形態にしています。その学びを得た後は毎回満足度が高い状態をキープできています。ちなみにスペシャルゲストがいた回の内訳は次のようになっています。

おそらく、DevOps の場合、概念だけだと、ふわっとしていますし、技術だけだと、腹落ち感がないので、両方をうまくミックスさせて、概念、オーバービューと、詳細な尖った面白い技術 というコンビネーションが良いようです。

  • Jug CCC スペシャル: Java エバンジェリスト 寺田が、JenkinsやDocker / Tutum を解説
  • Dockerスペシャル : 吉田パクえさんがDocker解説そして、真壁さんと共にサポート
  • Chefスペシャル   : Chef社から Andrewが来日して通訳付きで、解説とサポート
  • Doker / HashiCorpスペシャル: Creationline社の前佛さんが Docker やHashiCorpの解説とサポート
  • 地方開催スペシャル : 自動化マスター安納さん、松崎さんのコンビでARM解説とサポート

一般的なプレゼンテーションやハンズオンに比べてスコアが高いのは、秋山さんの努力があり、スペシャルゲスト以外にもテクニカルエバンジェリストが合計4名ほどいる分厚いサポート体制が効いていると思います。そして、何より「ハック」を自分で実施する楽しさが大きいと思います。

自分でハックして、むっちゃ詳しい人に簡単に聞けるのは本当に楽しいことです。それは、チーム内でもあり、サポート陣でもあります。普段交流をあまりしない Dev / Ops そして、他の会社の皆さんと交流するのもいろいろ刺激があって楽しいのかもしれません。

f:id:simplearchitect:20160403020229j:plain

Ruby好きのOSSエンジニアがAzureアーキテクトになった理由 - ZDNet Japanより

スペシャルの回も、吉田パクえさんの回が非常にスコアが高かったため、そこからいろいろ学ばせていただいて、その後の運営に多大な影響を与えてもらっています。

ちなみに、スペシャルの回であっても、それと違う技術でハックしてもまったく問題ないので、MS系技術の人でも、OSS系技術の人でも皆さん楽しんでいただけます。

この DevOps ハッカソンは上記でお話した通り、いろんな皆さんのおかげで非常に高い満足度をいただいています。私はほんま踊ってる程度なのですが、運営の裏でこんなたくさんの人が活躍していただいているのです。

次回以降のアイデアベースのお話。

5月に関しては、DevOps ハッカソンは実施しません。de:code に集中させていただきます。de:code ではDevOps系の 強烈ゲストと、それに対抗するMS技術のDevOpsを楽しんでいただきます。

6月以降のアイデアですが、次のような思いつきがあります。どれをやるか決めていません。是非これ実現してほしい!というのがありましたら、是非ともお気軽にコメントいただければと思います! では、今後とも、DevOps ハッカソン 1ヶ月に1回ペースで実施していきますので、よろしくお願いいたします! ちなみに、ここで書いていあるのはジャストアイデアであり、本人たちにもまだ開催可能か聞いていませんw ですが、コメントがいろいろつけば、その後押しになるような気がします。

  • マイクロサービス監訳 佐藤(NEO) 直生氏をゲストにした「マイクロサービス」スペシャル!
  • Xamarin エバンジェリスト兼漫画家 ちょまど氏をゲストにした Xamarin Mobile DevOps スペシャル!
  • 高添・小塚ペア Windows コンテナ / Service Fabric スペシャル!
  • Docker 日本唯一の公認トレーナー 前佛氏をゲストにした「Docker / HashiCorp」 スペシャル!
  • 高添・小塚・安納・前佛さん Ops技術中心! DevOps スペシャル (OSS、MSの両方のOps技術にフォーカスを当てた回)
  • 安納・松崎ペア ARM自動化&MS技術でDevOps スペシャル!
  • Microsoft Bot Framework x Cortana スペシャル! ChatOps の先を行け!
  • Microsoft IoT x DevOps スペシャル! 

books.rakuten.co.jp f:id:simplearchitect:20160403020437j:plain f:id:simplearchitect:20160403020745j:plain f:id:simplearchitect:20160403020902j:plain f:id:simplearchitect:20160403022312j:plain f:id:simplearchitect:20160403021107j:plain

などなど、他にこんなのしてほしいとかありましたら是非ともコメントいただければと思います!

次回の 4/15,16 DevOps ハッカソン 

 折角なので次回の宣伝をさせてください。次回は 4/15, 16 の金土どいう新たなパターンで実施させていただきます。必勝パターンに則って、今回も「Chefスペシャル」と銘打ってお届けします。Chef を日本にインストールしてきた問いっても過言ではないクリエーションラインさんがその中でも特にスペシャリストである荒井さんがきてお話をしてくれます。しかも、緊急参戦で、Chef社からAlex Vinyar氏が参戦してくれます。彼がサポートした顧客は、IBM, GE, HP, Rakuten, Yahoo, Bloomberg といった超一流どころばかり。これはChef に興味がある人はこんな機会は滅多にないかと思われます。また、Chef x Azure の組み合わせに興味がある人も見逃せない回になりそうですね!

devopsjp.connpass.com

今回も凄いゲストが参戦していただいて、本当に嬉しいです!

f:id:simplearchitect:20160403021845j:plain

Alex Vinyar

I am an Automation Consultant with Chef (Opscode). I help companies get started with the DevOps journey by working with management team to create a roadmap, assessing current state of the organizaton and DevOps readiness, and leading teams in the early stages of implementation. Presently I am in Japan until August to supporting Chef in the APAC region. Some of the companies I've helped: GE Capital,HP,IBM,Microsoft,Rakuten,Yahoo,Walgreens,Bloomberg,etc.

f:id:simplearchitect:20160403021859j:plain

荒井 裕貴

クリエーションライン株式会社のChefエンジニア 前職ではネットワークの運用保守業務をしながら、ネットワークの管理自動化WEBシステムの開発等を行っていた。 クリエーションラインではChefを担当しており、コミュニティーでの講演やChefのトレーニング、COOKBOOK開発等を行っている。 趣味はガンプラと熱帯魚。