#cmdevio2016 (レポート: La-4) SORACOM松井基勝氏が明かす『疎結合で非同期なチーム開発』の秘訣と『サービス命名の裏話』
先日2016/02/20(土)に開催しました弊社カンファレンスイベント『Developers.IO 2016』は大盛況のうちに幕を閉じる事が出来ました。お集まり頂いた皆様、関係者の皆様、ありがとうございました!
- Developers.IO 2016|EventRegist(イベントレジスト)
- ホーム | Developers.IO 2016 - クラスメソッド株式会社
- Developers.IO 2016 | シリーズ | Developers.IO
当エントリでは、株式会社ソラコム 松井基勝さんによるセッション『疎結合で非同期なチーム開発』の内容についてレポート致します。
目次
自己紹介・会社紹介
自己紹介:松井 基勝さん
- FB:motokatsu.matsui
- Twitter:moto(@j3tm0t0)
- 2010/07〜2015/05:ADSJ(アマゾンデータサービスジャパン)、その後半年間のフリー期間を経て2016/01、ソラコムにJOIN。
- SORACOMの仕事を"SORACOMの外から"手伝っているうちにSORACOMに入ってしまった。外の人だったのにSORACOMに入ったから、中の人になったけど、『元・外の人』という形に。
『AWSエキスパート養成読本』書きました!(弊社大瀧、大栗も共同執筆しています!)
会社紹介:株式会社ソラコム
代表、玉川さん。
IoTプラットフォーム "SORACOM"の各サービスについては以下のセッションで大瀧が解説しているのでここでの説明は割愛します。(※併せてレポートをお読み頂けますと幸いです。)
ソラコム社のこれまでの歩み
- 2015年2月、ADSJ(アマゾンデータサービスジャパン)に5年位勤めていた玉川さんのいきなりの『辞めるってよ』、ショッキングなニュース。次何やるんだろう?というのが話題に。
- 2015年3月のJAWS DAYSでは『IoTプラットフォームのスタートアップ立ち上げます!』とは言うものの、コメントはこれだけだった。
- そして、半年過ぎてステルス期間(この間はずっと開発していた)を経て2015年9月にローンチ、大々的に告知。この時も非常に大きな話題に。
ソラコムのサービス概要
こちらについては主に概要の説明だった為、割愛します。内容については後述のスライド資料をご参照ください。
ソラコムのサービス名の『命名』について
- 当初のリリースでは、『Air』と『Beam』がサービスとして公開されていた。
- ちなみにBeamについては、プライベートβでの名前は『IoT Exchange』だった。とある会食内で"パッとしない名前"と駄目出しされ、小籠包を食べウンウン唸りながら『Beam』と命名。(これが、『先頭文字をアルファベット順で並べていく』という厄介なルールの始まりだった...)
- 2016年1月27日に行われた初のプライベートカンファレンス『SORACOM Connected.』では『Canal』『Direct』『Endorse』『Funnel』の4つのサービスを発表。お察しの通り、先頭文字がアルファベット順。
- ちなみにこの時、こんな大喜利ネタをやってました。とあるツイートを受けてのお題出しからこの流れに。
SORACOMさん,サービス名はBEAMとかちょっと中二病的な感じもあるので,SORACOM Cycloneが個人的には本命.なおサービス内容は考えてない
— Mr. Fiber (@repeatedly) 2016, 1月 14
- 実は、Beamを考えたのは松井さんでした。映画『スター・トレック』の転送ビーム(安全に惑星の表面等に移動出来る装置)をイメージしていたとの事。
また、『一番近いのはこれだった』と松井さんが評したのが以下ツイートの回答でした。
イベントでノベルティとして… 継続利用一年などで… 水色のSIM変換アダプタ#SORACOM cloth
— Yuki (@yukisama00) 2016, 1月 15
SIMアダプター、来場者全員にプレゼント!
とここで、松井さんから参加者に嬉しいサプライズ。何と来場者全員に『SORACOM SIM アダプタ』がプレゼントされました。こちらが表面。
そして裏面。発注先の印字ミス?の為、若干おかしな文章、というか単語になっている部分が...w この版については発注先に問い合わせて早速対応もらうとの事で、このミスプリントVer.は今回のイベントで配られるもののみの限定(!)となるらしいです(笑)
ソラコムではどのようにして開発スピードを上げているか
組織体制について
- そして本題。今日は『ソラコムではどのようにして開発スピードを上げているか』についてお話します。(あなたの会社でどのようにして開発スピードを上げるか、についてはお話しません)
- 上記の様な発言をしたのはなぜか。それは、組織が違えば仕事の仕方も違うから。
- 先日、Developers Summit 2016にて吉羽龍太郎さんの発表に非常に感銘を受けた。『強いチームの作り方』での"組織構造はアーキテクチャに影響を与える"という部分に共感。
- 会社の組織図には、いろいろな形がある。Amazonは非常に分かりやすい形。
- ではSORACOMはどうか。以下の様な構成を取っている。
SORACOMの"リーダーシップ プリンシパル"
- こちらについても、Amazonのものを参考にした。
- 何よりもまず作る、作って動かし、クオリティを上げていく。
- 考え方の指標になるものとして作った。これらがあるといざという時に物事を考えやすくなる。
松井さんの理想として掲げているものは、"好きな作品"である『攻殻機動隊 STAND ALONE COMPLEX』第5話にあるこの一文。この『Stand Alone Complex』というのが何を意味しているのか。それぞれが自立("Stand Alone")している人達の集まりなんだけれども、それが最終的にチームワークとして複合体("Complex")を形成している、というメッセージと捉えており、『こういう組織になれれば良いなぁ、と思っています』と松井さんはコメント。
我々の間には、チームプレーなどという都合のよい言い訳は存在せん。 有るとすればスタンドプレーから生じる、チームワークだけだ
-- 公安9課 荒巻大輔
道具
松井さん曰く『今時のツール』群。こちらについてはツール各種のリンクを貼るに留めておきます。
- クラウドコンピューティング なら アマゾン ウェブ サービス(AWS)
- GitHub
- Waffle.io · Work Better on GitHub Issues
- Highly Scalable Metrics, Monitoring, and Alerts | Librato
- Swagger – The World's Most Popular Framework for APIs.
- Zabbixオフィシャル日本語サイト :: エンタープライズクラスの分散監視オープンソースソリューション
- Ansible is Simple IT Automation
- Travis CI - Test and Deploy Your Code with Confidence
- Log Management | Cloud Log Management Service | Loggly
- Fluentd | Open Source Data Collector | Unified Logging Layer
- Slack: Be less busy
- appear.in – one click video conversations
ワークスタイル
- 基本的にはスクラム。
- GitHub IssuesとWaffle.ioでタスク管理している。
- フルフレックス&リモートワークも可能に。自宅やカフェでも作業出来るし、部分的に作業を切り出してお願いする事も良くある。
- ミーティングも、メールの流量もかなり少ない。メールは外部とのやり取りが主。そのかわり、Slackの流量はそれなりにある。
開発方針
- 構成要素となる小さなサービス(マイクロサービス)と、それを実装するコンポーネントが疎結合されてSORACOMという大きなサービスを形成している。
- ロゴの意味について:Dipper(柄杓:ひしゃく)が北斗七星、Polarisが北極星をそれぞれ表している。マイクロサービス化された機能コンポーネント群によってSORACOMが構成されている。
- 構成要素(各マイクロサービス・コンポーネント)毎にプライマリオーナーがいて、オーナーシップを持った開発・メンテナンス・運用に関わる。
- 連携・開発スピードを重視。また構成要素それぞれに適した実装方法を導入。
- 開発スピードを上げるためには
- まずは動かす。そして改善。"Done is better than perfect."
- (AWS)マネージメントサービスの徹底活用。
- 要件が合わない場合は自作も辞さず。参考:SORACOM API こぼれ話 - SORACOM Blog
SORACOM Funnelが出来るまで
『ファンネル』では無く『ファネル(Funnel)』。漏斗(ろうと)の意。
- 昨年10月、SORACOMサービス(自体)のリリースの時点で、『C』〜『F』のサービス名は確定していた。
- そして月日は流れ12月中旬。大体の仕様が固まり、EDD(Event-Driven-Development)で進める形に。※この『Event』は"リアル"なイベント。1/27のイベント"SORACOM Connected."を指す。
- 年明け、初めての結合テストを行ってみたところ、一発で接続出来てしまった。そして1週間後、端末からFunnel開通。仕様決定から1ヶ月(休日等もあったので実質は2週間)で出来てしまった。CTOの安川氏曰く『仕様をwikiに書いただけなのに、いつの間にかサービスが出来上がって胸熱!』
- 仕様がある程度決まっていた、小さなパーツごとにそれぞれ1人ずつで担当していた(しかもなるべく楽になるように作っていた)、SyncやSlack等を使いお互いの状況を把握していた等がすんなり上手く行った要因とも言えた、と松井さん。
まとめ
以下のまとめスライドで『疎結合・非同期がポイントである』と協調し発表を締めました。
以上、『Developers.IO 2016』ソラコム松井 基勝さんの登壇セッションレポートでした。松井さん、またSORACOM関係者の皆様、ありがとうございました!