読者です 読者をやめる 読者になる 読者になる

Hack & Sports

Microsoft エバンジェリスト&トライアスリート 大田 昌幸の個人ブログ

製品開発を1ヵ月ほど早める Hackfest というアプローチ

startup Technology Azure diary web イベント

最近 Hackfest という活動をしているのだけど、面白い&効果が高いので共有します。 世の中の Evangelist, Devrel 周りの方々や、製品展開に関わる方々には割と役立つかと思います!

そもそもの前提

Microsoft, Googleなどのプラットフォーマー企業は、開発者向けのSDK, API を多く提供しています。 その中で「開発者」と良い関係を作り、自分たちのプラットフォームを活用した先端事例を作るマーケティング部隊があって、それがEvangelist, Adovocate, Devrelと呼ばれる人たちです。 Microsoftの場合には Evangelistという名称なのですが、僕もその一人です。

Evangelistにも色々な流儀があって、僕の場合には以下のような気持ちで活動しています。

  1. リリースを通して担当しているお客様とともに成功したい
  2. 周囲をアッと言わせるような先端事例を作ることで、周囲に「これは乗っておいたほうが良い!これが当たり前なんだな」と思う影響を与えていく(Domino Effect)
  3. ビジネス課題を解決する手段としてテクノロジーがある
  4. 世の中にリリースされた製品で使われたテクノロジーこそ価値がある

ビジネスって結局人間関係なので1は重要だと思いますし、自分はマーケティング部門にいるので2については対応案件を決めるときにすごく意識しています。 (もちろん、まだ全部きっちりできているわけではないです。。まだまだ未熟でご迷惑をおかけすることもありますが、何卒ご容赦ください。)

また、上記のような気持ちで動いているので、僕はプレゼンしている時間よりもお客様先にいる時間のほうが圧倒的に多いです。

先端事例のメリットって?

最近市場の流れは非常に素早く、企業の盛衰も激しいです。 そんな中で先端事例を作るメリットって何かというと、だいたいこんな感じです

  • 担当企業: 先んじて先端事例を作ることで引き合いが多くなる(営業労力が減り、売り上げが立ちやすくなる)
  • 開発者 : 先行事例の分野での第1人者として認知される(社内外でのその後のキャリアにつながる)
  • プラットフォーム企業 : 「その先端事例の分野ならMicrosoft!」と思われることでより多くの開発者に注目される/好きになってもらえる

プラットフォーム企業の立場からすると、最近出したばかりの技術を使った先端事例はすごい貴重なので、とても大切にします。 大切にするというとどういうことかというと、大規模イベントの基調講演や、個別案件のミーティングでの紹介が増えます。となると、担当企業様は自然と露出機会が増えて営業機会が増えます。

具体的な例としては、aroba様があげられます。 aroba 様はMicrosoft Cognitive Serviceをいち早く活用し、店舗マーケティングソリューションアロバビュー コーロを開発/販売されました。公開されている導入事例としては、東京サマーランド様、セイバン様、マツダ様に導入されています。

まずaroba 様にはde:code 2016にて200名部屋にて講演いただきました。 f:id:NT-D:20161005224553p:plain

その後、相棒の福地さんの社内エバンジェリズムの結果Japan Partner Conference 2016 の基調講演でも紹介させていただきました。 f:id:NT-D:20161005224628p:plain

基調講演個別講演ともに動画公開されていますので中身是非も見てください。面白いです。

先端事例の作り方って?

上記のような露出は最終的なアウトプットですが、それまでに何をするのでしょうか?

  1. お客様とのミーティング
  2. 技術の紹介
  3. メール等で技術的なアドバイ
  4. 社内でマーケティングに役立ちそうな露出機会を探す
  5. 紹介枠や出展枠の獲得
  6. 露出

端的にはこんな感じです。aroba 様の場合には、常盤木さんというスーパーエバの戦略、來田CTOやエンジニアの技術力がすごかったので、「これはすごい事例になるな」という感じがしました。 (僕は3で BI 周りの集計技術を提案させていただきました。お客様とつないでくださった砂金さんには感謝です!)

6 の露出フェーズではビジネス面、技術面での課題や解決の話をするので、経営者/技術者にとってすごい役立つコンテンツになります。僕はこういう色々経たうえでのプレゼンにこそ価値があると思うので、案件時間9、プレゼン時間は1かそれ以下くらいの割合で仕事しています。

この時重要なポイントは3つです。

  • 世の中的にウケるネタか?(今回は AI/認識技術。今にあってる!)
  • プラットフォーム企業にとっても押し出したい要素か? (Cognitive + Power BI なのでYES!)
  • 先端事例を作る気概があるか?

3番目はミーティングの最中になんとなくわかります。「先行事例はないですが一緒にチャレンジしますか?」と伝えた際に「事例ないのですね!ラッキー!うちが1番だ!」という担当者/会社かどうか?ということです。

案件での悩み

スムーズにいきそうですが、悩みもあります。技術的なアドバイスって難しいんです。理由はだいたい下記のような感じです。

  • 自分が担当しているのは去年は40-50社程度だったので、対応技術範囲は広範
  • プロダクト開発のためには深い技術が来るので、調査時間がとてもかかる
  • プランニング、ミーティング、講演等で時間があまりない

対応社数を絞ったりして今年は何とかしましたが、十分な対応ができていない会社様には頭が上がりません。。 社内でも「予定空いていない」といじられるので目下改善中です (色々仕込んでいるので・・という言い訳はおいておいて、仕組化して何とかします。)

そして、これがすごい重要なのですが、ずっと一緒にいるわけではないから、細切れの質問が来るので状況確認が難しく、調査する前にそもそも時間がかかるわけです。メールだとすべてを把握できないし、お互いストレスがかかります。 むむむ・・どうしよう。さて、長くなりましたが、ここからが本題です。

Hackfest というアプローチ

Hackfest というのは超シンプルに言うと、「担当企業向けの特別Hackathon」です。 僕のような Evangelist が企業に1~2日訪問して、技術概要をプレゼンし、ハンズオントレーニングを行い、そのあとは一緒に開発をします。技術力はあるけどAzureには慣れていない開発者にはとても役立ちます。

同じ時間を共有し、同じSlack Groupでやり取りして、同じレポジトリにpushしていくので、めちゃくちゃ開発効率が上がります!! (エンジニアさんも2日間完全ブロックになるので、お互い集中できてうれしいw もちろん、レポジトリやSlackのセキュリティは意識して問題ない範囲でやります)

Hackfestを実施した Future Standard CEO 鳥海さんからは下記のように感想いただいています。口頭では「1か月程度工数を短縮できた」と感想をもらい、10/14には製品リリースという爆速対応になりました!!!

当日の様子

f:id:NT-D:20161005232157j:plain f:id:NT-D:20161005232201j:plain f:id:NT-D:20161005232205j:plain f:id:NT-D:20161005232209j:plain

当日のタイムテーブル

1日目 学習+開発DAY

  • 10:00 – 12:30 概要プレゼン + ハンズオントレーニング
  • 12:30 – 13:30 昼食
  • 14:30 - 17:30 開発 + ハンズオン予備時間
  • 17:30 - 18:00 進捗確認

2日目 開発 DAY

  • 10:00 - 12:00 開発
  • 12:00 - 12:30 進捗確認
  • 12:30 – 13:30 昼食
  • 13:30 – 17:30 開発
  • 17:30 - 18:00 成果物の共有/フィードバック

Hackfest は続く

最後宣伝になってしまいますが、Hackfest はもちろんオープンになっています。 こちらのブログに情報や申し込み方法が記載されているので、興味ある方は是非お申し込みください。

blogs.msdn.microsoft.com

お互いに1~2日という時間を使うイベントなので、私の場合には「ビジネスゴール/マイルストーンのある案件」を優先して対応します。 先行事例や新たな収益を創出し、そして、日本から海外に向けて大きな事例を作っていきましょう!

(僕の個人的な目標は来年6月までに海外のカンファレンスで日本の企業の事例が紹介されることでして。海外のカンファレンス/メディアの内容がUSの事例ばっかりだと悔しいじゃないですか。日本にもすごい企業多いので、どうにか露出していきたいです。)

Evangelist, Adobocate, Devrel 関係の方にはすごい良いアプローチなので是非参考にしてみてください。 なお、日数はかかりますし、お客様先で製品を実装するので「覚悟と実装力」が必要です。ガッツリ行きましょう!

Skype Web SDK の初心者向けサンプルを公開しました!

Skype開発 スポーツ web

前回のエントリーではSkype Web SDK はドキュメントが揃っていなくて辛いけど、「開発も筋トレと一緒で、辛くなったら将来の輝かしい姿を妄想して乗り越えよう!」という話をしました。 nt-d.hatenablog.com

サンプル公開しました

僕はオンライン英会話会社にSkype Web SDKを提案して、英会話ライフをより良いものにすることを妄想しながら開発しています。 そして、初心者向けのHello World的なサンプルが完成しました! github.com

どうせ作るなら世界中の開発者が活用できるようにと思い、今回はMicrosoft公式レポから英語で公開しました! 公式レポからの公開は手続きやチェック項目が多くて大変でしたが、良いクオリティのものを出すのに必須のものばかりで勉強になりました! 早速UKやUSから質問やissue/pull requestが来ていて非常に楽しいです。

皆さんも気に入ったら是非Starしたり、cloneしてアプリ開発に活用してください!そして、アプリに埋め込んだら教えてください!日本からインパクトのある事例を出して、「日本の企業/開発者すごいだろ!」とアピールしていきたいです!

さて、これからいくつかの会社に提案しに行ってきます!

トライアスロン完走しました!

Skype開発と時を同じくして、8/28(日)の木更津トライアスロンで完走してきました! 今回はオリンピックディスタンスというオリンピックで使われるルールのものでした。1.5km海を泳いで、40km自転車、10km走るという中々大変でしたが、地道にトレーニングしてたので普通に完走できました! f:id:NT-D:20160905093857j:plain 自分の理想像を妄想して、パーツに分割して、一歩一歩乗り越えていく!アプリ開発と同じなので、仕事に対する良い精神修行になりました。

とはいってもタイムとしては遅いほう。「完走しよう」という一歩目としては十分ではあるが、目標がぬるかったなぁと反省しています。 今後は、とりあえず2.5時間以内に完走できるように、この本でロジックを学んでいきます。

次はXamarin + Azure + Office 365を使ってモバイルアプリを公開していきます。適宜技術情報は出していくので切磋琢磨していきましょう!

Skype SDK 開発のドキュメントが辛いので妄想を膨らませる

Skype開発 Azure Office 365 web

前回のブログではSkype Developer Platform でできそうなことを紹介してきました。 nt-d.hatenablog.com

「めちゃワクワクしているのでガンガン触って共有していこうかなと思います」という文末で終わっているくらい興奮していたようです。コンセプトは素晴らしいですからね、もちろん今でもワクワクしています!

ただ、今の僕は「開発用ドキュメントが辛いから開発チームにガンガンPull Request送ろう!」とメラメラ興奮しています。

もくじ

このブログではこの気持ちに至った経緯をいくつかのまとまりで紹介していきます

  1. ワクワク開発を進めようとしてドキュメントを確認し始めたあの頃
  2. ドキュメントが辛い・・
  3. Skype開発のために必要なことの整理
  4. 作りたいものの妄想
  5. 次回以降の構成紹介

1.ワクワク開発を進めようとしてドキュメントを確認し始めたあの頃

前回Skype開発の概要を見たときには色々な感想を抱きました。

  • チャットはECサイトのO2O文脈で役立ちそう
  • オンライン英会話とかで使えそう
  • その際のサーバーリソースをSkype側に任せられるから楽そう
  • 途中までBotを使って、難しいやり取りが発生したらSkypeに引き継ぐとかできたらよさそう

よし!ドキュメントを見よう!!

2.ドキュメントが辛い・・

1つ前のblogでSkype開発のページを紹介しました。そのまま[Get Started]をクリックしてスタートしようとしたんですね。

Skype for Business Online uses Azure Active Directory (Azure AD) to provide authentication services that your application can use to obtain rights to access the service APIs. To accomplish this, your application needs to perform the following steps:

•Register your application in Azure AD. To allow your application access to the Skype Web APIs, you need to register your application in Azure AD. This will allow you to establish an identity for your application and specify the permission levels it needs in order to access the APIs.

•Add a sign in feature to your app. When a user visits your website and initiates sign-in, your application makes a request to the Microsoft common OAuth2 login endpoint. Azure AD validates the request and responds with a sign-in page, where the user signs in. After consent flow the UI redirects the user back to your application. If authentication and authorization are successful, Azure AD returns a token and grants access to SfB Online and identifies the current signed-in user.

•Call Skype Web APIs. Your application passes an access token to the Skype Web APIs to authenticate and authorize your application.

なるほどなるほど。認証基盤としては Azure AD を使用する。そして、アプリにOAuthのSign in機能を付けて、API callしろって感じですね。facebookとかと同じような感じ。Learn moreってリンクがあるのでそこをクリックするとこのページに行きます。

アプリ登録とかはOAuth関連のプログラム書いたことある人にはまぁわかる内容なのですが、、Update your codeからがちょい辛い。そもそも僕まだcode書き始めてないからupdateって言われましても・・あと、項目の並び順がちょっと・・・

まぁサンプル見ればいいかと思い、最初のページにリンクされているGitHubのサンプルからskype-web-sdk-samplesというやつを選んでみる。Setupのリンクがあるけど、たどるとこれまたセットアップ方法がわかりづらい・・

「なんなんすかね、これ。Developerに使ってもらう気あるのかね。Getting Startedは何も考えずにスタートできるようにしようよ?」という気持ちがふつふつと沸きはじめ、このあたりから「開発用ドキュメントが辛いから開発チームにガンガンPull Request送ろう!」とメラメラ興奮しはじめました。

3.Skype開発のために必要なことの整理

僕のほうではガチャガチャ操作をして、実際にサンプル動作させることは成功したので、現状必要なことをまとめます。

Skypeの種類の確認

Skypeというブランドには2つの製品があります。個人向けのSkypeと企業向けのSkype for Businessです。そして、現時点(2016年7/23)でSkype Web SDKが対象にしているのはビジネス用途のSkype for Businessです。

開発前の準備で必要なこと

Skype Web SDK開発には以下の3つが大枠必要です。

  1. Azure AD (認証基盤)
  2. Office 365 開発者アカウント
  3. WebサーバーとWebアプリ

1は認証/認可用に使います。認証・認可周りを任せられるのはうれしい。このあたりはfacebook開発と似ています。

2はSkype for BusinessをはじめとしたOffice関連のクラウドサービスです。API呼び出し先が必要なので、用意が必要です。こいつを用意するとチャットも音声通話もうまいことやってくれるので、自分でチャット基盤(アプリ/インフラ)用意しなくていいのは最高!

3がないとアプリ作れないので、これは必須です。

アカウント作成方法とかは今後のブログで解説します。基本無償なので、始める分には敷居が低いです。

4.作りたいものの妄想

さて、ちょっと話をそらします。僕がプログラミングつらい時には「筋トレみたいなものだ」と思うようにしていて、そのあたりをシェアします。多少話を端折るので論理的飛躍があるのはご了承くだされ。

僕は今トレーニングにはまっていて、8月にはトライアスロンの大会に出ようと思っています。 トレーニングのきっかけは、友達の奥さんに「シュレックみたいな体していますねw」と言われたことに始まります。 https://images-na.ssl-images-amazon.com/images/I/5152QKZZB1L.jpg

えぇ、盛大に腹が出ていました。。そして、悔しい思いをしました。

悔しいのでジムに通い始めましたが、つらい。「なんなんすかね、これ。」とやめたい気持ちになりました。どうにかモチベーションを上げるために始めたのが「妄想」です。

海外の同僚の姿を思い浮かべると、胸板がっちりで腕が太いので、Tシャツ+ジーンズという適当な格好でも超かっこいいです。つらい度に「ああなったらモテるだろうなぁ」と妄想し、モチベーションの維持には成功しました。現状2kmくらい泳げますし、時速14kmくらいで走れるし、90kgくらいのベンチプレスもできるようになりました。

何が言いたいかというと「開発も筋トレと一緒で、辛くなったら将来の輝かしい姿を妄想して乗り越えよう!」ということです。僕は皆さんがつらくならないようにSkypeチームにpull requestを送りますが、もし、一緒のタイミングで開発を始めた人でつらくなった人は、ぜひ、妄想をしてみてください。Skype SDKでできることはすごいし絶対面白いですから!

ちなみに僕の今の妄想は「英会話アプリにSkype SDKを組み込む」というものです。僕が毎日お世話になっているDMM英会話はいい感じの英会話アプリです。ヨーロッパ、アフリカ、アジア、北米・南米など色々な国の人と話す練習ができます。ただ、Web画面で予約をして、Skypeアプリで授業を受けているので、ちょい面倒です(ほかの英会話アプリも同じ感じです)。これを予約もSkype通話もWebでできたら便利だよなぁと思っています。色々わかってきたら提案もしに行ってみたいw なんか楽しくなってきました。これでドキュメントは乗り切れます!

5.次回以降の構成紹介

次回以降はだいたいこんな感じで進めます。

  1. Skype開発大枠解説 + 必要な準備解説
  2. Login周りのコードの解説(javascript)
  3. Skype SDKでのログインの解説
  4. Skype SDKでのAPI Callの解説(javascript)

なお、基本的に英会話アプリを作るための前提で進めます。題材ないとブログつまらなくなるので。 ではでは、引き続きよろしくお願いします~!