Ruby3 さみっと online 開催報告

Ruby インタプリタの開発をしている技術部の笹田です。以前から自主的にリモートワーク状態だったので、あまり仕事環境は変わっていません。が、子供の保育園の登園を自粛しているため、色々大変です(主に育休中の妻が)。日常がはやく戻ってくれることを祈るばかりです。

さて、去る 4/17 (金) に、Ruby3 さみっと online というウェビナーイベント(オンラインイベント)を開催しました(Ruby3 さみっと online - connpass)。今年の12月にリリースされると言われている Ruby 3 に関するトピックに絞った発表会です。本稿では、このイベントについてご報告します。

RubyKaigi 2020 が、4月から9月に延期されたので、Ruby 3 開発のマイルストーンがちょっと宙ぶらりんになってしまいました。 そこで、一つお披露目する機会を作ろうと企画したのがこのイベントです。

イベントによって、Ruby 3 開発者に締め切り効果をもたらす、それから Ruby 3 に関する進捗を他の方にも聞いて貰い、ご意見を募る、というのを狙っています。 総じて Ruby 3 開発のためのイベントですね。もちろん、興味ある方が楽しんで下されば、それにこしたことはありません。

平日にもかかわらず、多くの方にご参加頂きまして、ありがとうございました。zoom のログによれば、250人以上の方にご参加頂いたようです。

なお、このイベントはクックパッドが開催した、というわけでもないのですが、企画運営がクックパッドの開発者であること、zoom アカウントの提供がクックパッドだったこと、それから他に適当な場所も知らないので、ここでご報告します。

発表

プログラムは次のような感じでした。

  • 09:00-09:30 Opening / Ruby 3 by Matz (zoom 練習時間)
  • 09:30-10:30 Fiber (Samuel)
  • 10:30-11:30 JIT (k0kubun)
  • 11:30-12:30 Guild → Ractor (ko1)
  • 12:30-13:30 Lunch break
  • 13:30-15:00 Ruby 3 type activities (mame, soutaro)
  • 15:00-15:15 Roadmap for RubyGems 4 and Bundler 3 (hsbt)
  • 15:15-15:30 Proposal of Proc#using (shugo)
  • 15:30-15:45 Real Terminal Testing Framework (aycabta)
  • 15:45-15:50 Windows and UTF-8 (usa)
  • 15:50- Ruby3 Q&A

だいたいオンタイムで進みました。資料は https://hackmd.io/@ko1/ruby3samitto に(あるものは)あります。

Ruby 3 のメインゴールは JIT compile、Concurrency それから静的解析です。それらの大きな話に1時間ずつ(静的解析は二人で1.5時間)と大雑把に割り当てました。質疑応答も十分行えたのではないかと思います。また、その他の話題として、4人の方に「こんなことします」みたいな話をして頂きました。最後に Q&A タイムは、雑多な話題をのんびりと続けて、いつになくグダグダな時間になりました。

内容の詳細は、発表資料を見て下さい。

ランチブレイク中なども、zoom での中継は続けており、発表権限がある人たちで雑談していました。

アンケート結果

開催中に Google form でアンケートを作って、最後に参加者の方に伺いました。58名の方から回答を頂きました。

f:id:koichi-sasada:20200428180034p:plain
「大雑把にどうでした?」という質問への結果

今回のイベントについて「大雑把にどうでした?」という質問については、ごらんの通り、好評だったことがわかります(もちろん、好評だった人しか回答していなかったという可能性はあります)。少なくとも、60人弱の人達が楽しんで頂けたのしたら良かったです。

良かった発表については、一番好評だったのが「Ruby 3 Q&A」という結果でした。好評なら良かったんですが、グダグダ過ぎなかったかな、あれ。

感想では、次のような意見を頂きました(一部抜粋)。

良かった点:

  • リアルイベントと違ってゆるく参加できるのは良かった
  • お金かからない。単一セッションなので全部見れるのが良かった。
  • 家にいながら参加できるの大変助かります(配信などいつもありがとうございます)
  • オンラインでしたが物理イベントよりもホスト側との距離が近いと勝手に感じました。
  • リアルタイムに参加者の方が質問したりして、ライブ感があってよかったです。
  • アンケートなど交えていた点
  • Slack上でコミュニケーションを取りながらや、アンケートをフィードバックしながら発表を聞けるのはとても良かったと感じました
  • Rubyコミッターが普段どのように議論しているのかが感じられて良かったです。
  • RubyKaigi な感じがとても良かった
  • ゆるい進め方が良かったです
  • こういった会がある事自体がいいですね。Zoomとかでみんなの顔や声があって繋がるの、ここ最近の閉塞感を和らげるのにとても良かったとおもいます。
  • 緊急事態宣言の状況に対して、家にいながら Ruby 3 について聞けて良かったです。
  • このイベントを開催してくださったこと自体がとてもよかったことですし、内容もすごくよかったです
  • Samuelのライブコーディング見れたのがとても良かった!

改善案:

  • 視聴者からのリアクションが見えるようになると良さそう
  • 身内ノリが多いのはRubyコミュニティならではかなあと思ったけどとにかく身内ノリは多かった
  • 休憩中なら分かりやすく「休憩中(Rubyistの雑談の時間)」って書いてあると嬉しい
  • 休憩時間をこまめにほしかった。
  • 仕事をしながらの参加だと理解が追いつかないので、録画があると嬉しいです
  • 朝早すぎて起きれなかった
  • 情報量の多い資料は、今どの部分について話しているのかがわかりづらかったのでマウスポインタなどを活用して欲しい。

省力開催のウェビナー

我々が設定した目的は Ruby 3 開発を促進することなので、凝ればいくらでも時間がつぎ込めるイベント運営は極力省力化を目指しました。その決意の表れとして、「さみっと」という気の抜けた名前にしています(サミットとか Summit だと、なんか真面目にやらないといけない感じがしません?)。

ウェビナーという形式は初めてだったので、ちょっと運営に関するメモを残しておきます。

開催準備

  • 我々にとって手慣れたツールである zoom のウェビナーを利用する
    • ウェビナーの利用は初めてだったので、前日にリハーサルをしました。
    • セキュリティの懸念点から、zoom だと参加できない人もいるという声も聞きましたが、それはしょうがないとしました。
  • 運営ミーティングは1回だけ(1時間くらい)
    • 遠藤さんと1時間くらいでさっと決めました。
  • スケジュールはてきとーに決める
    • Ruby3 に関する3目標に関する人達の予定を抑えてスケジュール決定。
    • matz が平日のほうが都合が良いってことだったので、平日で。
    • あとは可能な人・希望する人だけ発表してもらう。
  • タイムテーブルはゆるく作る
    • もちろんシングルセッション。
    • 時間に余裕を持たせて、あとから発表希望者をプログラムに追加。
  • 募集などは Connpass のページ(https://rhc.connpass.com/event/169873/)だけ(発表者募集は ruby-dev ML を利用)
  • 日本語を公式コンテンツとする
    • 情報発信は日本語のみで行いました。
    • 英語話者(Samuel)が居ましたが、日本語しかないことを了承して頂きました。
    • 資料作成がやっぱ日本語だけだと本当に楽ですね...。
  • コンテンツ管理が面倒なレコーディングはしない

運営については、労力と時間はほとんどかけずに済ますことができました。 もうちょっと宣伝やっても良かったかも?

期間中の運営

zoom のウェビナーは、一般視聴者と、発言ができるパネリストの2つに分かれています。発表者がパネリストになるのは問題ないのですが、その他に誰がパネリストになるかは検討する必要があります。当日は、なんかしゃべりたそうな人を見つけたら、片っ端からパネリストにする、という運用を行いました。

一応、zoom のチャットや slack や twitter などを見て、発表者にフィードバックすることがあれば、気づいたパネリストが発表者にフィードバックする、というような感じで行いました。

Zoom では、参加者にリアルタイムアンケートをとる機能があるのですが、ウェビナーを立ち上げたホスト(笹田)のみが作成できるというものだったらしく、私が思いついた質問を参加者の方に投げかけるということを何度か行いました。ただ、一人の人間だけでやっていたので、質問が広げられなかった感じはします。

zoom のログを見ると、最大で160人が同時接続し、250人ほどが期間中に接続したようです(名寄せをちゃんとやっていないので、同じ人が複数デバイスで接続している場合があります)。

f:id:koichi-sasada:20200429033500p:plain
接続数の推移

お昼の接続数が最大だったんですが、やっぱり昼休みは見やすかったんですかね。

f:id:koichi-sasada:20200429033547p:plain
ユーザごとの滞在時間を昇順にソート

ずっと見て下さっていた方もいれば、ちょっと覗いてみた、という方も居そうです。

最後の発表者4人のうち、3人が 4pm から用事があるということを結構直前に知ったので、ちょっと順番を入れ替えました。そのあたり、少し事前に聞いておいても良かったかも知れません(が、そういう忙しい人でも、一部だけでも参加してくれるのは、ウェビナーの良い点ですね)。

たくさんのご参加、ありがとうございました。

おわりに

Ruby3 さみっと online というウェビナーイベントの開催についてレポートしました。

おかげさまで、省力開催にもかかわらず、ウェビナー開催は初めての経験でしたが、大きな失敗もなく開催することができました。発表者の皆様、ご参加頂いた皆様、それから運営を手伝って下さった皆様に、改めて感謝いたします。

また、こういう機会を作って Ruby 3 マイルストーンを用意して、開発を促進していければと思います。完成するといいなぁ。

在宅勤務でも雑談がしたい!在宅勤務の課題解決の取り組み

こんにちは、@morishin127 です。クックパッドの在宅勤務環境 - クックパッド開発者ブログ でも書かれていた通り、クックパッドは2月18日から現在に至るまで全従業員が原則在宅勤務となっています。突然の在宅勤務体制の中でも社員がなるべくいつも通りの生産性を発揮できるように様々な取り組みを行っています。このような状況になる以前から Slack や Zoom、GitHub Issue などのコミュニケーションツールが職種を問わず日常的に利用されていたため、比較的物理的な制約を受けないコミュニケーションができていたと感じていますが、それでもやはり全員が在宅勤務になると色々な課題が生じました。従業員に向けたアンケートでは次のような課題が挙がっていました。

続きを読む

在宅勤務環境を改善する社内オンラインハッカソンを開催した話

CTO の成田です。星による記事、 在宅勤務環境の継続的改善 でもご紹介した通り、クックパッドでは国内外のグループ全体で在宅勤務に切り替えており、同時に勤務環境づくりに取り組んでいます。

先の記事では、椅子・机などのファシリティレンタルや、IT システムの整備、コミュニケーションの改善など、様々な取り組みをご紹介しました。本稿では、このような取り組みの一環として開催した、在宅勤務環境改善の社内ハッカソン「Hackarade Remote」についてご紹介します。

テーマは「私の Work From Home の課題解決」

社員同士のコミュニケーションの問題や、家庭環境の問題など、長期の在宅勤務には様々な課題があることはご存じかと思います。今回のハッカソンでは「在宅勤務で困っているかもしれない誰か」を想像で助けるのではなく、「自分が困っていること」を自分で解決するということに主眼を置いてテーマを設定しました。多くの人が助かるような最大公約数的な課題解決はすでに会社として取り組んでいるため、ここではそういった全体施策ではキャッチアップできないような粒度の課題を自分で見つけて自分で解決するというのが狙いでした。

作品例

まずは受賞作品の 3 作をご紹介します。

リモートユーザーインタビュー便利くん

リモートユーザーインタビュー便利くん

@hiragram による作品です。こちらは CTO 賞を受賞しました。

クックパッドではサービス開発の際にユーザーインタビューを多用するのですが、いまはこれまでのような対面でのインタビューを実施できなくなっています。そのためユーザーさんと Zoom でやりとりをしながら開発中のプロトタイプを触ってもらうのですが、現時点の Zoom の iOS アプリでは、たとえばクックパッドアプリの画面を共有してもらいながらユーザーさんの表情も見る、ということができません。そのため、アプリを使ってもらった際のユーザーさんの反応を感じ取りにくいという課題がありました。

そこで開発された「リモートユーザーインタビュー便利くん」は、iOS クックパッドアプリの開発版において、アプリの操作画面とカメラ映像を iOS 版 Zoom アプリを使って配信できる機能を追加したものです。内部的には、Zoom アプリの ReplayKit を利用しているそうです。

また @hokaccha からは、「リモートユーザーインタビュー便利くん for Web」という Web 版の実装が投稿されました。

リモートユーザーインタビュー便利くん for Web

Workcloud と Slack を連携するやつ

Workcloud と Slack を連携するやつ

@takonomura の作品です。こちらはスタッフの投票で決める投票賞で 1 位を獲得しました。

在宅勤務では、どうしても勤務時間の記録が煩雑になりがちです。クックパッドでは大多数の社員がフレックスタイム制で働いていて、 Workcloud (勤怠システム)を利用した打刻を行っており、勤務開始時や退勤時に Slack でチームメンバーに共有する文化があります。 この作品は Workcloud での打刻時に Slack に出退勤のメッセージを自動で投稿してくれたり、Slack で出退勤に関する発言をしたときに、打刻忘れを検知して Slack で通知してくれます。

ハッカソンの後日談としては、この作品とは別に、Workcloud の API を経由して勤怠を記録できる Slack bot が社内で開発されたため、Slack での発言をトリガーにして出勤/退勤の打刻ができるようになりました。

f:id:kani_b:20200422031245p:plain

みんなが買ったもの

みんなが買ったもの

こちらは @hogelog の作品。在宅勤務の不便を解消するためにみんながいろいろなものを購入していると思います。この作品はこれまで Amazon で買ってきたものを購入履歴から投稿することで、みんなが買っている便利なものを知ることができるサービス。この作品は人事本部長賞を受賞しました。

他の応募作品の例

上記の受賞作以外にも個性的な作品が多く出てきたので、ここではその一部をスクリーンショットとともに紹介します。

Nintendo SwitchのJoy-Conを使って赤ちゃんを抱っこしながらコードレビュー
id:yosuke403 「Nintendo SwitchのJoy-Conを使って赤ちゃんを抱っこしながらコードレビュー」: 自宅で育児をしながらでもなんとか仕事を進めるためのツール。

さぎょイプ
@morishin 「さぎょイプ」: オンラインチャットを誰かと繋ぎっぱなしにして黙々と作業をする文化、通称さぎょイプを Zoom で行うためにマッチングを支援する Web サービス。

さんぽルート記録アプリ
@star__hoshi 「さんぽルート記録アプリ」: 近所の道を踏破するための記録アプリ。

Nippo Reader
@h13i32maru 「Nippo Reader」: 社内ブログに書かれた同僚の日報を読みやすくする Electron アプリ。

開催を振り返って

今回のハッカソンを振り返って、いくつか気付いた点を書きます。

見落としていた困りごとはまだまだ沢山ある

椅子や机がない、インターネット回線がない、などの、わかりやすく緊急度の高い課題は会社として取り組んできました。しかし今回のハッカソンで出てきた作品には、その作品を見て初めて「確かに私もそれ困ってた」と認識できるものが沢山ありました。在宅勤務において、まだ自分で認識してすらいない困りごとはまだ無数に残っているように思います。

在宅勤務においてまとまった時間を確保するのが難しかった

物理出社をしていたころは、エンジニア全員の予定を一日ブロックして、一日がかりのハッカソンイベントを行うというのはそれほど難しくありませんでした。しかし在宅勤務では、特に家族と暮らしている方はプライベートの時間と仕事の時間が入り乱れながら働いていたりするので、全員同時に丸一日拘束したイベントというのはこれまでより難易度が高いように思います。そのため、今回は提出締め切りまで 1 週間ほどの猶予を設け、その 1 週間のなかで「8 時間まで開発に使ってよい」というルールにしました。

チーム参加より個人参加のほうが動きやすかった

今回はチーム参加も可としていたので、チームを組もうとする人達は何組かありましたが、結果として全ての参加者が個人として参加しました。在宅勤務ではチームメンバーと同期を取りながら短時間で成果を出すのは難しい、というのは、普段の業務でも見られる傾向です。

全社イベントの価値を見直した

今回のハッカソンをやってみて、部署を超えて同じことに取り組む、同じ話題を持つ、同じ事で盛り上がる、ということはいまの状況下においては重要な意味を持つと改めて実感しました。在宅勤務では、仕事上直接繋がりのない人とは、視界にも入らず本当に疎遠になってしまいます。

おわりに

全員が在宅勤務に切り替えたときに、これまでと同じパフォーマンスが同じように発揮できると私は考えていません。しかし、在宅勤務環境はこうすれば全員普通に働ける! というような、全員に当てはまるようなベストプラクティスは存在しません。家庭環境の違いやオンラインコミュニケーションの得意さなど、在宅勤務の課題は人それぞれ違いがあるためです。 クックパッドは幸いにしてもともとグローバル展開によって複数の国に拠点があり、世界中どこにいても仕事ができるように情報システム環境を作ってきました。とはいえ全員が在宅勤務という状況は私たちにとっても初めて経験することです。 在宅勤務期間の長期化において鍵となるのは、私はひとり一人のサバイバル能力だと考えています。つまり、自分に合った働き方・休み方・作業環境・自己管理方法などを自分の力で見つけ出し、実行していく能力です。自宅の中で何が起こっているのかは会社やマネージャーは知ることができませんし、ひとり一人サポートしてあげられることは限られているからです。今回のハッカソンは、そういった自分で自分の課題を見つけて解決することの重要さを思い出すきっかけにできたと感じています。

/* */ @import "/css/theme/report/report.css"; /* */ /* */ body{ background-image: url('https://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527163350.png'); background-repeat: repeat-x; background-color:transparent; background-attachment: scroll; background-position: left top;} /* */ body{ border-top: 3px solid orange; color: #3c3c3c; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; line-height: 1.8; font-size: 16px; } a { text-decoration: underline; color: #693e1c; } a:hover { color: #80400e; text-decoration: underline; } .entry-title a{ color: rgb(176, 108, 28); cursor: auto; display: inline; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; font-size: 30px; font-weight: bold; height: auto; line-height: 40.5px; text-decoration: underline solid rgb(176, 108, 28); width: auto; line-height: 1.35; } .date a { color: #9b8b6c; font-size: 14px; text-decoration: none; font-weight: normal; } .urllist-title-link { font-size: 14px; } /* Recent Entries */ .recent-entries a{ color: #693e1c; } .recent-entries a:visited { color: #4d2200; text-decoration: none; } .hatena-module-recent-entries li { padding-bottom: 8px; border-bottom-width: 0px; } /*Widget*/ .hatena-module-body li { list-style-type: circle; } .hatena-module-body a{ text-decoration: none; } .hatena-module-body a:hover{ text-decoration: underline; } /* Widget name */ .hatena-module-title, .hatena-module-title a{ color: #b06c1c; margin-top: 20px; margin-bottom: 7px; } /* work frame*/ #container { width: 970px; text-align: center; margin: 0 auto; background: transparent; padding: 0 30px; } #wrapper { float: left; overflow: hidden; width: 660px; } #box2 { width: 240px; float: right; font-size: 14px; word-wrap: break-word; } /*#blog-title-inner{*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-position: left 0px;*/ /*}*/ /*.header-image-only #blog-title-inner {*/ /*background-repeat: no-repeat;*/ /*position: relative;*/ /*height: 200px;*/ /*display: none;*/ /*}*/ /*#blog-title {*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-image: url('https://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527172848.png');*/ /*background-repeat: no-repeat;*/ /*background-position: left 0px;*/ /*}*/