僕にとってのDroidKaigiがどんなに面白い場所なのか書く日記
ひつじです。
DroidKaigiおわったんですよ。みなさん、おつかれさまっした!!!!!!!
このエントリはブログタイトルどおり、ひさしぶりの個人の日記並の感想文です。読んでも得られることは、ひつじのひととなり*1がわかる以外のメリットは無さそうです。
1000人規模のイベント(珍しい規模だけど特別ではないと思う)をどうやって運営したかという部分も興味があるひといるかもしれないので、ちゃんとしたまとめは別途やるかもしれないけど今回は、この一年間オーガナイザーとして関わってきたDroidKaigiが終わったあとの感想文です。読み進めてもヤマとオチはないので理解いただきたい。なお時系列も無視されているので気をつけて。
DroidKaigi 2018が終わった夜と、はじめてのDroidKaigi
DroidKaigi 2018が終わった2月9日の夜、スタッフでささやか*2に打ち上げた帰り道。
電車に遅延があって手持ち無沙汰なときのお話。「みんな帰れたかなー」と考えながらTwitterを開いたときにたまたま見たもの。
DroidKaigi 来てよかった。
— 小宮 孝介 (@komiyak) 2018年2月9日
ソフトウェアエンジニアとしての感覚が研ぎ澄まされる。このままではヤバイ!という煽られるような危機感ではない。
もっとコードを書きたい!もっと知りたい!というブワッとした感情が自分の中から湧いてくる。 #DroidKaigi
この気持ちすごくわかる。自分もDroidKaigi2015で初参加した時もっとやらねばと思った。もちろん2018でも思ったけれどもhttps://t.co/RUrVILp1jC
— こにふぁー (@konifar) 2018年2月9日
このときは🐑も疲れててTweetの文脈を読み間違えて「わかる。わかるぞー。2018の感想ブログかー、はやいな。さすが @konifar さんだな」とおもって開いたら最初のDroidKaigi 2015の感想ブログだった。すぐ気づいたけどなんとなく懐かしい気持ちで読み進めてたら次のような文章が。
こにふぁーさんは、去年は公式アプリのオーガナイザーをしてて今年はアプリのサポートとして色々と手伝ってくれたマブダチなんですが、こにふぁーさんですらAndroidに不慣れで初めてのときがあったんだな、と不意に気付いた瞬間でした*3。
DroidKaigiが初めてのひとをつなぐ場所として機能しているなら、それは少なくとも僕にとっては、とてもよいことだなと満足感に浸ったところで電車が来たので気持ちよく帰った*4。
高校生が来たDroidKaigi
今回のDroidKaigiはWantedlyさんの協力でスカラーシッププログラムを実施してました。これを利用して高校生が参加してくれていたみたい*5。
自分が高校生のころはゲームに夢中で、カンファレンスにいくなんて全然考えもしなかったので良い時代になったもんだなぁと他人事のような感想すらでてた。たくさんたくさん楽しんでくれたなら嬉しい*6。
DroidKaigiはエンジニアが主役のカンファレンス。はじめて参加するひとも楽しんでもらえるように、さらには参加した人全員が満足してもらえるように、という気持ちをこめて作ってる。1000人の参加者ともなるとそりゃもういろんなことがあるんだけど、それ以上に一同に集まって会話する熱量っていうのは、ものすごいパワーがある(といいなとおもってやってる)。
スカラーシッププログラムを通じて何か得てくれたらそれだけで嬉しい。最初は高校生くるとかオジサンはマジ驚いたけど、冷静になるとエンジニアリングに年齢なんか関係ないし、驚くのは失礼だわ。スカラーシップを通じて参加できるようになったのなら主宰の役割を果たせたかもなと来てくれた本人には関係ないところで勝手に満足した。
DroidKaigiを支える技術
DroidKaigiの運営メンバーのほとんどはエンジニアです。これまで何度か触れてるの知ってる人が多いかもしれない。大体70名ぐらいが活動してる*7。
つまるところ完全なボランティア&運営メンバーは余暇の時間を使ってるわけなんだけど、🐑は運営メンバーは好きなことをして欲しいと伝えてる(はず。しんどいこと、つらいことはしなくていいと本気で思っていて、そういうのはぜんぶ言い出しっぺの🐑がやればいい話)。
一年もやってると色々な取り組みがあるんだけど、受付の話を少しだけ。詳細はこっちを読んで欲しいです。
前回の受付破綻は本当に @komatatsu は悔しく思ってて2018はそれはもう入念に計画をたてて、準備をしてきたんですよ。今回は1000人規模で難易度は前回よりもあがる、カンファレンス当日の作業を考えると受付の並列数を単純に上げることは人的リソースを考えると不可能。結局のところ解決策を探すのに大事なのはリハでした。エンジニアっぽくいうと本番環境を再現した結合テスト。
リハでは当日の会場を仮想的に用意して(もちろん1000人を用意するわけではないのだけど)受付作業が完了するまでの速度を求めたり*8、なんども手を動かしてまだみぬ当日の様子を想像した結果、辿りついたのがセルフチェックインアプリ。受付が秒で終わるので本当に革新的だった*9。
こういうのは想像だけで議論すると空転してダメなのでプロトタイプでもなんでも作ってみるのが本当に大事。
あとは彼のブログでもすこし書かれているとおり、セルフチェックインアプリの準備が増えたこともあり当日の準備時間が押してしまっていたので🐑は直前に「受付が遅れたら入場を優先する。そのときは諦めてくれ」と伝えました*10。
当日の🐑の役割は、できることとできないことを見極めて、その場でYes/Noのジャッジすること、判断材料を得るために歩き回って話をして誰よりも状況を把握すること。1000人の安全を守り、快適な環境を維持するという最大の優先事項があるので、これに少しでも反する事象があればNoということ。何かあったときは責任をとることでした。
心の準備をしてもらうために受付リーダーの彼には早めに「諦めろ」って伝えておきました。結果的には、開始時間の数分前にセットアップが完了したので最初の一般参加者10人をシステムテストとして迎え入れました*11。
もちろん今回の方法が完璧ではなくて、迷惑をかけてしまったところがたくさんみつかってるのでそんな経験にあってしまった参加者さんには申し訳ないと思ってるんだけど、受付のチームは混乱なく、9時20分から10時までの40分で900人のホール座席をいっぱいにしてくれました。ありがとう。おつかれさまと伝えたいです。
ほかにはスポンサー、カメラ、Web、ネットワーク担当のブログがあがってるので興味あれば見てね。
いろんな立場のDroidKaigi
あなたは一般参加者でしたか?出展参加でしたか?登壇者として参加しましたか?運営メンバーでしたか?あ、参加してなくても問題ないです!資料や動画は今後まとめてなるべく早い段階で公式サイトとYouTubeに公開予定です!
DroidKaigiも回数を重ねるごとに学んでPDCAを回しています。その中には「写真撮影班の時刻を同期する」「入口すぐに地図を用意する」など地味なものもありますが🐑がやってることに登壇者と話すことがあります。
こにふぁーさんのブログで触れられていたのでこの日記にもメモしておこうかな、と。
#droidkaigi はセッション間の休憩時間が20分あるのだけど、その時間で @mhidaka さんが全部屋回って登壇者の緊張をほぐしてるの、正直すごいと思った。
— KOYAMA Tetsuji (@koyhoge) 2018年2月9日
DroidKaigiは、技術共有とコミュニケーションを目的に開催しています。そのためには適切な雰囲気で話しやすい環境でやってもらったほうが聴講側と登壇者の距離感が近くなって聞きやすくなったり、その後話しやすかったりすると考えてて、可能な限り話しかけるようにしてます*12。一日目とかは会場対応などしてて回りきれてなかったので来なかったゾ、という人もいるかも。ごめんね。
余談ですが、こにふぁーさんのときは
「イェーイ!!!」と言いながら入ってきて
だったけど顔をみたら本人が一番胃が痛そうでした。空気がピリピリしてるとみんな身構えちゃうので、一緒にはなして笑えれば、それだけでみんなが持って帰る良いことの総和が増える。メリットしかないですよね。
今回はたまたま登壇者視点でしたが、一般参加者も一緒ではじめて一人できたひととかはすごい不安なんですよ。居ていいかな、とか場違いじゃないかなとか。すこしでも話してみて楽しんでもらえたら、と思ってます。
それと2日目からアクセシビリティシートがふえました。
#DroidKaigi Day.2ではアクセシビリティシートを用意しています。みんながたのしくすごすため、皆様のご理解をいただけますと幸いです pic.twitter.com/76lhOAP0ha
— mhidaka@DroidKaigi (@mhidaka) 2018年2月9日
これは @red_fat_daruma の発案で「相談なんですが…」と持ちかけられたのを覚えてます。ぼくも車椅子のかた、足が不自由なかたがいるのを知っていたのに「シートを用意する」という発想にはたどり着いてなかったので、話を聞いたときに「ぜひやるべきだ」と答えました。すこし気になるツイートもあったので掲載しておきます。
内心これでよかったのだろうと葛藤する。アクセシビリティシートを設けてもらうことによって本来の座席がなくなってしまう。つまり、本来は入れる人が入れないと言うことも起こってしまってる。だから多数の人にとっては、なんで?と言う気持ちも沸いてく#droidkaigi
— 菅原 洋介 (@yows1031) 2018年2月12日
大丈夫。この措置はDroidKaigiを全員が楽しむために必要な措置だったと🐑は考えています。決してあなただけのための措置ではありません。 DroidKaigiは行動規範にもあるとおり、みんながお互いを尊重し、制約を気にせず、技術のことを考えられる場です。そしてそれに気づいたのは🐑ではなく運営メンバーです。世の中、いろんな視点があると思いますが、より良い環境にするためにいろんな意見を取り入れる工夫ができたら、と思います。
一般参加者、出展、登壇者、運営スタッフ、海外から来たよ、国内からきたよ、学生だよとかとか、どんな立場であってもDroidKaigiには技術のはなしをしにきています。立場によってできることはちがっていて、登壇者としては発表を、参加者は費用を負担し、いろんな立場の人が場を共有しています。これからも技術共有やコミュニケーションのための場所として🐑が出来ることをやっていきたいです*13。
みんなが好き好きに「DroidKaigiはワシが育てた」っていってくれるといいなぁ。
あなたにとってのDroidKaigi
🐑にとっては振り返るとまだまだ改善したいところがあって、エレベータのキャパシティが足りずに1Fへの移動に行列ができるとか、ランチボックスの配布、Day.2の登壇者はずっと緊張してたのでDay.1の講演ききくにくかっただろうし、もっと快適な空間づくりとか、タイムテーブルも選ぶの難しいですよね、分身したくなるし。
名札に日本語が使えなくて(印刷業者の都合。でも海外参加者もいるし良かったかも?)申し込み時の名前欄に日本語をいれたひとはもれなく🐑の直筆名札になりました(マジックで書かれた人の名札は当たりというべきかハズレというべきか迷いますが全部、僕が真心こめてお名前を書きました!)。
今年のDroidKaigiで出来たこともあります。コードラボやハンズオンで初学者の導入を手伝ったり、オフィス・アワーで十分な質問時間を確保したり、多くのセッションをホストして選択肢の幅が広がりました。
初学者も上級者も技術のことに集中できる環境を目指しています。そして初学者が素早く上級者になれるような手伝いがしたいです。いまのAndroidは多くのことを学ぶ必要があります。上級者だけが高速道路を走っているような状況ではきっと初学者のあいだに大きな溝ができてしまいます。なので技術共有を通して誰もが高速道路を走れるようにできるといいな、とおもいます。
通常の技術カンファレンスよりコミュニケーション要素が多くなってるな、と感じてもらえると狙い通りかも*14。今年のDroidKaigiはAndroidだけではなく、その周辺技術についても広く取り扱い、クライアントの視点からいろんな技術をみれたと思います。いろんな技術に触れて知っていることが今後の開発では(何かあった時に思い出したり気付けるので)大事じゃないかな、と思います。
さて友人の話をします。DroidKaigiで広報を手伝ってくれてた @KeithYokoma が子どものようにはしゃぐんですよ。Romain Guy氏とChet Haase氏とで話したって*15。
Google I/Oでは2人のセッションは満員で、そりゃもう有名なエンジニアなんですよね。🐑「すごい人だと思うけどはしゃぎすぎじゃねwww」って言ったら「完全にミーハーですけど、これがいいんですよ、RomainとChetですよ!」(意訳)って返してくるんですよね、横幕さん。話してるとぼくも嬉しくなってきちゃう。
人によっては誰かと会って話す、何気ないことでも一番貴重な体験になります。だれかに声をかけた、かけられた、そんな単純なことでも強いモチベーションにつながります。
この一年をみてもAndroidやその他の技術を取り巻く環境は変化していきます。DroidKaigiも変化を受け入れながら前に進めると、より多くの人が楽しくすごせるといいな、と感じてます。
ひつじは皆さんにとってDroidKaigiがどんなところであってほしいか、とても聞きたいです。何処かに書いたならメンションでおしえてください。たくさん読みたいです。
長いようで短い2日間おつかれさまでした。またどこかで会いしましょう!
*1:ひつじとなり?
*2:かどうかは異議があるかもしれない盛り上がり方だった。たぶんヘトヘトになったあとのビールでみんなテンションが上がったんだろね。そこかしこで無事終わってよかった、もっとこうしたかった、あれは最高の取り組みだったなど熱い感想が繰り広げられてて、もちろん最後にはただの酒盛りになってたよ
*3:しかも自分が声をかけようとしていたことすら忘れてた
*4:🐑は「🐑とあなた」という一対一の関係を大事にしているのだけど、初めてのひとが参加して抵抗なく受け入れられるなら、その場所は誰かと誰かをつなぐ素晴らしい場所=コミュニティとして機能しているのだろう
*5:このあたりは選考とかをすべておまかせしていたので当日になってから把握したんですけど、二度見するぐらい驚きました
*6:余談ではあるがスカラーシップ実施にあたって冠スポンサーがあるのは一般参加者の参加費は参加した本人のために使いたかったから。あくまで付帯する取り組みなので「取り組みが気に入った、じゃあそれにお金を出しましょう」と言ってくれるひとのお金を使うべきだろうなというロジックが🐑のなかにはあった
*7:うち毎月のミーティングにでているアクティブ率は40名ぐらいなので常時みんながコミットメントしてるわけではなくてまだらなところがある。途中の作業とかもお互いで補完しあいながらアレコレすすめてるんですよ。今後も無理せずやるための工夫をしていきたい
*8:多数の名札から受付担当者が探してピックするのは平均2分ぐらいかかってて、何度改善しても似たようなものに。ここで人力はありえないと判断した
*9:なお他の選択肢としては事前に名札を送付する方法があるけどこれもまた個人情報収集がネックとなり現実的ではないとして却下した
*10:実は彼のブログにある椅子の上にパンフレットをおく計画でしたが、遅延があったのでそのための人員を割くのを諦めて入口での配布に切り替える人員最適化オペも裏で平行実施してた
*11:受付担当者が慣熟するため、更になにかあったときの混乱を減らすクッションの役割を果たす工夫です
*12:プレゼンのスキルなどもあるとはおもうのですが本質の技術の話に集中するために使うべきスキルでなんか話術だけのはなしなると、🐑がよくわからなくなるからここでは触れません
*13:少ない労力で技術的な知見のリターンが大きいとさらに嬉しいという下心もあります
*14:当然モクモク聞きたいひともいるとおもうのでそういう人を排除したいわけではありません。選択肢があっていいなと考えてます
DroidKaigiでAndroidのアーキテクチャの成立を理解するためのセッションをします
ひつじです。
DroidKaigi 2018 Day.1 / 12:50-
2月8日に開催するDroidKaigi 2018で「Android Back to the Future」というセッションをやります。
このセッションはAndroidにおけるアーキテクチャの成立に触れ、これまでの試行錯誤の過程(プラットフォームの課題、どのようなアプローチで解決してきたか)を振り返りながら、モバイルアプリの設計を知るセッションにできればいいな、と考えてます。
ただの座学では理解しにくいところもあるので、会場から質問や意見をもらいながらのでディスカッション形式で進めてみたいです(うまくいくかは未知数。準備万端で望みます!)。
このあたりの調査は自書の「Android アプリ設計パターン入門」(今回は紹介がメインではないので記事の最下段にリンクしておきました)で触れた内容ですが、未読の方、初学者の方はもちろん、これまでのAndroidについても知りたいというかたに参加をおすすめします。基本的にはいろんなアーキテクチャに触れる前提知識を培えるものです。それぞれのアーキテクチャに立ち入った厳密な話はできないと思います(はなしのながれで触れるかもしれませんが)。
Android Back to the Future
当日のディスカッションの進み方次第では明後日の方向へ進む可能性もありますのでライブ感を楽しんでもらえるとうれしいです。 ちょっと真面目すぎると発言しにくいかと思い、当日のスライドテイストは緩めです。
2018年の東京、新宿に住むエンジニア、マーティ・マクフライはAndroid歴史学者であるドロイド博士(通称ドク)を手伝って、タイムマシンの実験を行う。タイムマシンに改造されたデロリアンDMC-12が到着した先にはガラケーしか存在しない時代だった。デロリアンに乗った2人は現代のAndroidまで帰ってこれるのか?!
懐かしい映画をモチーフに進めていければとおもってます。それではデロリアンに乗ってAndroidの歴史を振り返ってみましょう。いってきます。
DroidKaigiではたくさんのセッションがあってどれも楽しみです。
当日は選ぶのに困りそう。あー、はやく明日が来ないかな。
Androidアプリ設計の技術書をクラウドファンディングで執筆しました
本を書きました
2017年7月に投稿したブログポストの続きです。Androidアプリの設計パターンを紹介しようとおもって書き始めた技術書のクラウドファンディングです。本日2018年1月31日に一般販売が始まりました!
本の内容
本書はアプリの設計を知り、考えるための議論に使える本として執筆しました。書きたいことを表現するためになんども書き直し、完成まで死ぬほど時間がかかった技術書です(2017年10月~12月の余暇のほとんどを費やした)。
ちなみに私以外の執筆者の感想はこちらから読めます。あわせてどうぞ。
実際、この本をよんで設計が出来るようになるかというと胸を張って「間違いなくはじめの一歩を踏み出せる」一冊と答えます。実際には読んでもあなたのアプリは完成しないかもしれないし、失敗するかもしれません。でも右も左も分からないということはなくなります。もちろん大成功するかもしれませんがそれはきっとあなたの力です。
本書ではアーキテクチャを学び、議論する前提を組み立てることを大事にしていて、結局のところ、設計とは何かを大いに考えさせる技術書になりました。「設計を完全に理解しているか」と問いかけられると誰もが不安を覚えると思います。特定の分野に限って考えても、とてもとても難しいことです。
アプリの設計には開発者の理念や思想が反映されているべきで、それらはアプリの要件や開発チームの練度・性質で千差万別の形があります。方法論だけをみて設計の評価は出来ないし、実装だけをみて評価することもまた出来ません。
このような事情に悩んだ結果、本書では実際の開発事例をみながら議論をすすめる構成にしています。実際にあったことを丁寧に解説し、手法と実装の両面からアプリ設計、アーキテクチャを追体験できます。
第1部ではGoogleのアーキテクチャサンプルリポジトリをベースに現代のAndroidアプリの設計手法の基礎を学べます。MVPやMVVMが登場した背景からモバイル分野での適用を知れます。ライフサイクルなどモバイル特有の事情についても触れています。
第2部では、サイバーエージェント、メルカリ、そしてOSSとしてのDroidKaigi 2017のカンファレンスアプリを取り上げ、いろんな設計を成り立ちから紹介しています。なぜ選んだのか、どうしてこうなったのか、というコードからは分からない部分と実際やってみてどうだったか、という評価まで含めて解説しています。本の内容として失敗したことを書くのは抵抗がありましたが、良いところも悪いところも包み隠さず知ることが一番だと思い「ここは失敗だった」「当時は乗り気じゃなかったが、振り返ってみると良策だった」など忌憚のない意見を書いてもらっています。MVPやMVVM、Flux、そしてReact Nativeと幅広く事例を集められたと自負しています。
第3部は未来の話です。Android Architecture Componentsを取り上げ、どのように使うべきか議論を進めています。
Androidアプリの設計は、まだまだ道半ばでようやく基礎が整ったに過ぎません。2018年をみても設計手法にアップデートがあるはずです。たとえばDroidKaigi 2018のリポジトリには今すぐ使えるKotlinのアプリ開発の知見が集まっています。本書はそのようなこれからの設計を議論する基礎になれば、という思いを込めて作りました。ぜひ手にとって見てください。
色々な意見をお待ちしています。「いやー、これはきつい」「ここの章は参考になるな」「この視点はなかった」など何気ない一言がきっかけで良い設計に変わるかも。
クラウドファンディングでよかったこと・わるかったこと
まず出資者のみなさんの応援があったことで制作の原資を獲得できました。ありがとうございました。当初見込んでいた良いところはたくさん提供できる(今回、個人ではほぼありえない数千冊部以上を印刷できました)ことで文句なしのメリットNo.1です。
意識してない中で嬉しかったところは、執筆の最中にも応援してもらったことがめちゃくちゃ励みになりました。通常、執筆というのは自分との闘いで書籍が販売されるまでは孤独なものです。今回は書いてることがみんな知ってたのでいろいろな人から「がんばってください」「期待してます」「無理しないで」と声をかけてもらえ、モチベーションに繋がりました。
またα版やβ版というかたちで意見を交わせたのもよかったです。自分がここはどうだろうな?と悩んだ部分は読者からの的確な指摘があって、やっぱり気持ちが伝わるんだなということを再確認できました(見直しつつ妥協なく書きました)。プロの編集者の方に校正してもらいながら、クオリティを上げられた点もよかったです。
他方でクラウドファンディング達成後の書籍販売ルートは基本的に口コミと手売りに頼ることになります。PEAKSはポッとでてきた出版社にすぎず、取次経由でたくさんの書店にならべることはできません。発売日に全国の書店に並ぶことはやっぱりスゴいことなんです。
ですので、この本をよんで良い本だと感じたら是非、隣の開発者に教えてあげてください。著者一同よろこびます。クラウドファンディング、同人誌のような著者と読者が近い形態はフィードバックを得やすく、とても好きな雰囲気を感じてます。
さいごに
実はクラウドファンディングであるメリットを最大限活かして本の表紙や紙質、フォントサイズやレイアウト、細かい点までmhidaka(私です)がアレコレと口をだしました(PEAKSの方々に大変迷惑をかけながら!レイアウトチェックや紙の指定のために事務所までお邪魔しました)。更に電子書籍も2種類用意してもらい、片方はPDFのしおりやコピペが完璧にできるもの、もう片方は書籍そのままに美しいクオリティのもの、と2本立てです。これも執念というか趣味の領域ですね。どちらも欲しい人が居そうなので両方つくって提供しちゃうか、という感じです。
ただいまリフロー版(EPUB)も試しているのでKindleとかで固定レイアウト以外でよみたいよ、という人がいたらお問い合わせください。
ここから番宣です。一般販売記念キャンペーンで最初のロットは割引価格の2800円で提供中です。また本書の出資者が紹介した場合、紹介プログラムにより販売価格の30%が出資者に還元されます。全国津々浦々の書店に置けないのでチャレンジしてみましょう、となった新しい取り組みです。なんか面白そうなので一肌脱ぐぜ!という方はぜひ試してみて下さい。
謝辞
まずはじめに、クラウドファンディングの出資者のみなさん。出資ありがとうございます。なによりの励みとなりました。
そして、サイバーエージェントの社員のみなさん、メルカリの社員のみなさん、DroidKaigi OSSアプリのコントリビュータのみなさん、みなさんの知見が書籍になりました。ありがとうございます。
PEAKS出版のみなさん。本書を制作するにあたり力強いサポートをいただきました。ありがとうございます。
著者の小西裕介さん、藤原聖さん、吉岡 毅さん、今井 智章さん。このような荒唐無稽な執筆を快諾いただき、ありがとうございます。いつも無茶をいう私を笑顔で受け入れてくれ、開発に関する知見を惜しみなく提供くださいました。
八木さん、今回は忙しくてだめだったけどまた一緒に書こうね。
TechBoosterに寄稿いただいてる著者のみなさん。みてる?がんばったよ!冬コミとか技術書典とかあまり動けなくてごめんね。いい本が出来たよ!また一緒にいい本つくろうな(Androidモダンプログラミング ~Kotlin&Gradle実践入門~の電子版やらなきゃ…)。
本音
頼む!ひつじのリンクからたくさん売れてくれ!!!