デブサミ2014に参加した!(0日目:センサー&デバイス祭り)
デブサミ2014に参加した目的
福井に引っ越してきてそろそろ3年。そして、今年で社会人になり10年が経とうとしてます。福井に引っ越す前に携わっていた翻訳書の出版の話がなくなり、同時期に翻訳を始めていた仲間の翻訳書であるFearless Changeが無事形になるなど、自分のキャリアを考える事がありました。このまま淡々と福井で開発をしていていいのか?と、迷いが出てきてました。そこで Business Model You のワークをやってみたりして、自分の強みが何で、どういう価値があって、それがどう人に役に立つのか、考えてみようと思って、やってみたりしました。こういうワークは独りでやってても効果がないのか、あまり霧が晴れるような効果はなかったんですが。
- 作者: ティム・クラーク,アレックス・オスターワルダー,イヴ・ピニュール,神田昌典
- 出版社/メーカー: 翔泳社
- 発売日: 2012/10/26
- メディア: 大型本
- 購入: 5人 クリック: 48回
- この商品を含むブログ (15件) を見る
丁度そんなタイミングでデブサミが開催されるという事を思い出し、開催の大体10日前に急遽デブサミに参加することに決め、上司に休みをもらい、コーヒースポンサーに申し込んで行ってきました。(コーヒースポンサーについては後述します。) 本来ならばデブサミは、予めセッションを申し込む必要があるのですが、コーヒースポンサーのお陰で飛び込みでセッションを聞く事ができるようになりました。コーヒースポンサーは、非常に良い制度だと思います。 @iwakiri さんありがとうございます。
デブサミには東京に住んでいたころの仲間がいます。Fearless Changeの日本語訳の監訳者の@kawaguti さんや、 shibuya.tracとかでよく会っていて、最近はKinectなどセンサーデバイスを使ったアプリ開発の本を書いている @kaorun55 さんに会いたいと思ったのです。
コーヒースポンサーというウルトラな制度
コーヒースポンサーは、スピーカーの皆さんにコーヒーを提供したい、という @iwakiri さんの思いが実現したものですが、スポンサーになった時の特典がすごいです。
- 各セッションに飛び入りで参加可能。そのため、当日急に聞きに行きたくなったセッションに申し込む事も可。
- 飛び入りで参加できるセッションにはランチセッションも含まれる。会場の雅叙園の周りには飲食店は多くないので、とても助かる。
- 各セッションにはコーヒースポンサー用の席が無線LAN、電源付きで用意されている。
- 専用の休憩所が用意されており、そこではコーヒーが飲み放題。
- 5冊の書籍から1冊貰える!今年は下記の5冊でした。
IMPACT MAPPING インパクトのあるソフトウェアを作る
- 作者: ゴイコ・アジッチ(Gojko Adzic)
- 出版社/メーカー: 翔泳社
- 発売日: 2013/12/20
- メディア: Kindle版
- この商品を含むブログを見る
- 作者: 中野貴利人,山下久猛
- 出版社/メーカー: 翔泳社
- 発売日: 2014/01/18
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
Sencha TouchでつくるHTML5モバイルアプリ (Smart Mobile Developer)
- 作者: John Earl Clark,Bryan P. Johnson,キヤノンITソリューションズ株式会社,株式会社プロシステムエルオーシー
- 出版社/メーカー: 翔泳社
- 発売日: 2014/01/22
- メディア: 大型本
- この商品を含むブログを見る
- 作者: 高橋寿一
- 出版社/メーカー: 翔泳社
- 発売日: 2013/12/10
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (4件) を見る
- 作者: 加藤潔
- 出版社/メーカー: 翔泳社
- 発売日: 2013/12/06
- メディア: Kindle版
- この商品を含むブログを見る
こんな感じで超お得!コーヒースポンサーになるには協賛金1万円が必要ですが、それだけの価値が十分にありました。
0日目:センサー&デバイス祭り
今回のデブサミは、@kaorun55 さんの企画で前夜祭、「センサー&デバイス祭り」が開催されました。 @kaorun55 は今年もセッションを持ち込んでたり、精力的に活躍してるからすごいです。「センサー&デバイス祭り」は、体験型のデモが中心だと思い込んでいましたが、セッションもありました。「うげ。申し込んでいない」と思いましたが、会場に行くと、コーヒースポンサーの力なのか、中にいれていただけました。マジごいす。
センサー&デバイス祭りでは、KinectやPerCなど、カメラデバイスとセンサーを使ったアプリや、Oculus RiftというVRを追求したヘッドマウントディスプレイなんかがデモされていました。Oculus Riftは頭の動きに合わせて映像も調整してくれたりするんですが、これは体験しないと凄さがわかりません。機会があったらぜひ体験すべきです。そんなに高くないから欲しい。製品版はよ!
で、特に面白かったのは、このレポートにもある、しくみデザインのデザイナー兼社長の中村氏とエンジニア中茂氏の「日本的キモチイイインタラクションは、世界に通じるコンテンツ!テクノロジーに縛られるな!」と題した講演でした。
http://codezine.jp/article/detail/7637
Kagura for PerCのデモ http://www.youtube.com/watch?v=gEt8e701w-c
中茂さんの「プログラマーにとって楽しいのは、美しいコードを書いたり、よいアルゴリズムを書いて高速化したりといった部分だと思うが、それらは大抵ユーザーには伝わらず、さも当然のものとしてその上が求められる。アルゴリズムなどの部分はチャチャッと済ませてしまい、本当にこだわるべき部分にきちんとリソースを費やすことが大事」という言葉に、同じプログラマとして深く共感しました。
しくみデザインさんのビジネスはデジタル広告が主戦場です。お客さんが楽しむ事で、そのコンテンツが記憶に残り、来客効果を上げ、ユーザーのビジネスに貢献するのが仕事です。
「すごいは1度だけ、楽しいは何度でも」ということをスローガンに、
- とにかく単純に
- 音をちゃんと作る
- 失敗自体存在させない
- 正確さより曖昧さを活かす
- テクノロジーを感じさせない
広告を作っているそうです。
その他のセッションの中でも面白かったのは、落合陽一さんの、情報の流れの話です。どういうことかというと、20世紀はコンピュータの発展に伴い、情報が「現実→仮想」に流れていたのが、21世紀になると「仮想→現実」に情報が流れている、という話でした。(落合さんが開発されているディスプレイの話は、イマイチよくわからなかったですが、ホリエモンとのインタビュー記事を読むと理解が進みました。)
Tokyo MotionControl Networkすごい
@kaorun55 さんも所属するTokyo MotionControl Networkがセンサー&デバイス祭りの共催でした。このコミュニティの面白いところは、参加者の中にミュージシャンや声優など、モーションコントロールを使って面白い事をしたいユーザーまで巻き込んでいるところです。開発者だけだとニッチな方面に行き過ぎるのですが、実際に「使いたい!」と思うユーザーを巻き込んでいるところが素晴らしいです。
ということで、0日目のレポートはこのへんで。
デブサミ2014に参加した!(1日目)
ということで、引き続き1日目のレポートです。
サーバプロビジョニングのこれまでとこれから
資料: https://speakerdeck.com/mizzy/future-of-server-provisioning-at-developers-summit-2014
2013年に非常に流行し、発展した技術は、VagrantやPacker、Chef、Docker、serverspec等、数ステップで予め設定したサーバーを立ち上げ、検証できるツールです。このセッションはserverspecを開発しているpaperboy&co.宮下さんのお話でした。
それぞれどんなツールか簡単に紹介すると、
Vagrant
仮想マシンを簡単に作成、管理するツール。各OSをインストールしたイメージを作成しておき、再利用できるツール。プラグイン機構を持ち、VirtualBoxだけでなく、VMWareやEC2、さくらクラウドや後述するDockerに仮想マシンを作成できる。
Packer
仮想マシンのひな形を作成するツール。各OSのインストール、セットアップを自動化するツール。JSONで設定値を書いて実行。VirtualBoxを使って試したところ、キーボード入力なども自動で行ってくれました。過去veeweeというツールもありましたが、Packerの作者はVagrantの作者と同じ方なので、こちらがメインになりつつある。
Docker
Linux上に別のLinuxの仮想マシンを立ち上げるLXCという技術をベースに、より利用しやすくしたツール。
Chef
ミドルウェアのセットアップをcookbookという形式でセットアップできるツール。cookbookはRubyスクリプトで書く。
serverspec
仮想マシンのテストをできるツール。設定が壊れていないか、テストで繰り返し検証できることや、同一の設定のサーバーを一度に展開した時に、自動的に確認できる。
こんな感じのツールが雨後の竹の子のように生まれ、流行したのが、2013年でした。(間違ってたらコメントを頂けるとうれしいです。)
実際は2013年よりも前からこういったツールがあり、AWSの流行と共により使われるようになり、流行し始めたようです。この流行の流れで、Infrastructure as Codeとか、Immutable Infrastructure とか、 Disposable Component といった言葉が生まれました。インフラを作るのもコードで済むようになり、既存のサーバーの設定をいじくるのではなく、コードを変更して、新たにサーバーを作成し、ロードバランサーの設定を変更することで接続先を変更する、と言った辺りを表現したのがこれらの言葉です。
インフラ周りのセットアップがコードに寄せられると、バージョン管理とかもしやすくなるので、便利ですよね!
テスト自動化を見直そう!自動化への投資が開発チームをクリエイティブにする
資料: 非公開 (代わりにtogetter http://togetter.com/li/628619 )
このセッションはランチセッションでした。いつの間にか、デブサミでも昼ごはんが提供されるようになってました。このセッションは、静的解析ツールベンダーのコベリティさんの中で行われているテスト自動化の取り組みの発表でした。
コベリティさんは、6ヶ月ごとのリリースサイクル、3ヶ月毎に次期リリース計画を練り直し、リリース直前のテストに6週間。スクラムで回しています。サポートするプラットフォームは非常に多く、215の仮想マシンインスタンス上でテストをしています。これだけのサポートプラットフォームを人力でテストすることの方が非効率なため、数年前からテスト自動化に投資し、現在はSelenium(ブラウザテスト自動化ツール)で3000以上のテストケースを自動実行しています。
とはいえ、テスト自動化を行うにもスキルが必要です。一年目は外注した事で失敗したので、現在は社内に専門のチームを設けているそうです。
別のセッションでDeNAのテストチームの話( http://www.slideshare.net/masaki/test-engineering-on-mobage )を聞いたのですが、DeNAも専門のチームがあり、MSやGoogleもそういった部署があります。また、楽天にいる友人は、社内にTDD(ユニットテスト)の文化を根付かせる部隊で仕事をしているそうです。テストの自動化には相応のコストがかかるのですが、大きな会社では自動化に投資を始めています。
スマホアプリのテストも、Seleniumと同一のAPIで実行ができるAppiumというライブラリが出てきています。(Seleniumの開発者がスマホ向けに開発を始めたのがAppiumです。)Seleniumのユーザーグループもできたそうです。
こういった流れを見てみると、2014年は、テストケース自体の管理を、インフラ同様、よりコードの方に寄せていきそうな印象を受けました。
何故クックパッドのサービス開発は日々進化しているのか
資料: https://speakerdeck.com/yoshiori/how-we-cook-cookpad-dot-com
2年ほど前にドワンゴからクックパッドに転職した庄司嘉織(通称@yoshiori)さんの講演です。一言で言うと、クックパッドの文化の話でした。
クックパッドでは、ユーザーに向いた仕事をする事を全社員に課せられており、クックパッドのエンジニアは、社外で講演したり、成果を公開することが義務付けられています。それが人事評価の指標にもなっており、今まで講演してきた資料は、会社サイトにまとめられ、公開されてます。 (これを作成するスクリプトもGitHubで公開されています。 https://github.com/cookpad/presentations )
クックパッドでは、ユーザーサポートの管理もGitHubのIssueで行っています。これによりエンジニアとしては、どういう内容が今サポートに来ているのか把握でき、サポートとしては、ユーザーサポートで必要になったコードの変更などの進捗も、コメントで見えるようになったそうです。
そういった取り組みを始めたのがヨシオリさんで、30分程度サポートの人に、GitHubの使い方やMarkdownの書き方(GitHubのWiki記法)を伝えたらサポートの人もGitHubを使えるようになったそうです。それができたのも、サポートの人もユーザーに向いた仕事をすることが求められているため、GitHubを使うことでよりエンジニアと密にコミュニケーションが取れ、よりよい仕事ができるのなら新しいツールを覚えることに抵抗がないという、「文化」があればこそできたことだろう、と言う話でした。
その他にも、クックパッドのシステムは1000以上のモデル(テーブル)を持つシステムですが、2ヶ月で50以上新たにモデルが追加されるなど、活発に開発が行われています。基本的にmasterの内容をGitHubにpushするとそのままシステムにデプロイされるため、 日に多い時は10回システムの更新が行われます。システムの更新時には当然CIが走り、壊れていない事を検証します。今、クックパッドのシステムには16000件以上のテストケースがあるので、毎回16000件のテストが実行されます。この16000件を超えるテストケースの実行を10分以内に終えるために専門のチームがあるそうです。デプロイの早さがシステムの更新回数に影響するため、10分以内に終える事を目指しているのだと思います。
1日目の終わりにはアンオフィシャルパーティーがありました。会場の隣はアマゾンジャパンの本社があり、そこの2階で開催されました。アマゾンジャパンの玉川さんにお話を伺う機会がありました。
アマゾンの文化は、Work Hard, Have Fun, Make History というスローガンに現されるとおり、まず「一生懸命働く事」が第一だ、と笑っていらっしゃいましたが、僕は、ユーザーにとって何が一番いいか、ということに向けて一生懸命に働く文化がある、という風に感じました。そのため、特にAWSを利用しているユーザーと共に必要な機能を考え、優先度付けをする会議を設けたりしているそうです。 これから作るツールはどうあるべきか、二日目に考えた事があるので、二日目のレポートにまとめます。
デブサミ2014に参加した!(2日目)
続いて2日目のレポートです。
Team GeekによるFearless Change
資料: http://www.slideshare.net/kdmsnr/20140214-teamgeekfearlesschange
講演者の角さんは、Team GeekとFearless Changeの翻訳に携われた方。本当に様々な本を翻訳されている方で、リーダブルコードの翻訳もされました。
Fearless Changeは組織にアイデアを広める方法を48のパタンを使ってまとめられた本です。パタンを使ってまとめられたもので有名なのは、デザインパターンがあります。
@hyukiさんの定義によるち、大抵のパターンには、下記の4つの要素が含まれるそうです。
- 文脈
- 問題
- 解決
- 制約
パターンはそれぞれこれらの要素が関連しあっているので、全体象を記述する表記法がほしいです。それらしいものを今度書いてみようと思ってます。
越境する開発~あの日開発していたサービスの名前を僕たちはまだ知らない~
資料: 非公開
講演者の市谷さんこと@papandaはDevLOVE等で非常にお世話になっていたのですが、最後のデブサミと言っていたので、行かずにはおれませんでした。
市谷さんは基本的に資料は公開されるのですが、新たに自分のビジネスを立ち上げる事も含めてお話されたため、今回は非公開にされているようです。
ベースになっている話はこちらです。 http://www.slideshare.net/papanda/ss-28080078
非公開ということで、あんまり詳しく書けないですが良い話でした。
モーションセンサーの現状と2014年の予測
資料: http://www.slideshare.net/kaorun55/devsumi-201414c5
講演者は0日めのセンサー&デバイス祭りのオーガナイザーの @kaorun55 さんでした。裏番組が@kawagutiさんという、よくあるバッティングでした。ざんねん。で、Kinectに代表されるモーションセンサー以外にもOculus RiftというヘッドマウントディスプレーやリコーのTHETAという、360度撮れるカメラの紹介がありました。
このOculus Riftは、0日目のレポートにも書きましたが、ほんと素晴らしい没入感のディスプレーで、首を回す角度に合わせ、ディスプレイの可視領域も変わります。それが全天球全て対象に変わるため、THETAと組み合わせるとあたかもその場にいるかのような印象を受けます。これは正直、体験しないとわからないです。機会があればぜひ体験してください。
Kinect等のモーションセンサーデバイスもPCへの組み込みが始まっています。これまではデジタルサイネージに良く使われたモーションセンサーですが、わざわざアプリを使うためにこれらのデバイスを購入する人は稀ででした。既に組み込まれているのであれば、話は違います。そういったアプリが今後増えていくだろう、というのが2014年の予測でした。
ちなみにですが、こういったデバイスの補助アクセサリは、3Dプリンタで印刷できるデータで配布されることが増えているそうです。
その他面白かったデブサミの資料
デブサミの資料は、 http://codezine.jp/article/detail/7640 にまとめられています。 この中で面白そうな資料をピックアップします。
Play2/Scalaでドメイン駆動設計を利用した大規模Webアプリケーションのスクラム開発の勘所
http://www.slideshare.net/sifue/developers-summit-2014-play2scalaweb
ドワンゴさんのサービス、ニコニコ生放送をPHPからScalaに置き換えている際、ドメイン駆動設計をフル活用し、柔軟性、拡張性の高いシステムを構築しているという話です。
ドメイン駆動設計は、数年前から流行してますが、コード側にモデリングを寄せた設計手法ととらえてもいいと思います。1日目の方にちょいちょい書いていましたが、インフラ、テスト、モデリングそれぞれコード側に寄せ、集約するように発展してきたのが2000年代だったんじゃないかな、と思ってます。関連する技術を調べてまとめてみたいところ。
新卒エンジニア研修ですべきことできること
https://speakerdeck.com/ryopeko/devsumi2014-dena-bootcamp2014
DeNAの新卒エンジニア研修の話です。Twitterでとても良かった、と評判だったので、共有します。
最後に
デブサミのオーガナイザー(代表責任者)の@iwakiriさんこと岩切さんは、後継者を育てるため、今年のデブサミを最後にオーガナイザーから退くそうです。デブサミは今年で12回目で、岩切さんはデブサミの立ち上げから一貫してオーガナイザーを続けられていました。
岩切さんがデブサミを始めたのは35歳の時で、35歳定年説なんて嘘だ!と主張されていましたが、今回のデブサミは前夜祭を含め、本当に面白いセッションが多く有意義に過ごすことができました。
岩切さんがデブサミを始める時、会社からデブサミのようなイベントができないか相談され、また仲間から背中を押されていたのですが、一週間ほど悩んで決めたそうです。
僕は今32歳なのですが、35歳になるまでに、そういう風に仲間に背中を押されて新しい事を始められる人になれるよう、頑張ります!