upinetree's memo

Web系技術の話題や日常について。

Kaigi on Rails 2021 で STORES への ID 基盤の導入について発表した

こちらになります

kaigionrails.org

スライドはこちら

動画がアップされたらそれもあとで貼ろうと思います。

発表内容について

とりあえず15分にしとくかと軽い気持ちで Proposal を出したのですが、いざ採択されて話を整理しはじめてみるとボリュームが膨らむ膨らむ。全然15分では足りませんでした。 大風呂敷を広げた状態のマインドマップがこちら(一応、業務のこと色々書いてあるので拡大しても文字は読めない大きさにしてます)。

マインドマップ

これをキュッと圧縮する作業が本当に大変でした。 当時のメモを読むとこういうことを考えてまとめていたみたいです。

  • やったことが類似事例として役に立つ一方で、類似しない仕事をしている人にも学びも持ち帰ってもらいたい
  • やったことの多くを技術的負債との戦いが占めるので、結局、技術的負債との向き合い方、みたいなところで着地しそうだが、そこで終わりにはしたくない
  • システムの一部を移行することに技術的負債はついてまわる課題だと思うので、うまく学びを抽出できると良い

結果、具体例とかも全部省いて、そこそこ抽象的な話にまとめる形で着地しました。具体的な話は質問タイムで直接聞いてね、という設計です。 もともと認証周りの話ということもあってセキュリティとかを考慮すると具体例を入れづらいテーマなのですが、それにしてもこの内容で本当に面白いんだろうか、みたいな不安がずっとありました。 幸い、当日聞いていただいた方の反応を見たり感想をいただいたりして好評だったのでホッとしたものです。

あとは要素技術の解説とかも軽く入れられると良かったんですけどね。 せっかく sylph01 さんの認証の話からの流れがあったので、そこにうまく繋げられるような形になっていたら、OIDC とかを知らない人もその目的や利点を理解するための事例にできたのではないかなーと。 まあこれは仕方ないですね。

事前収録

事前収録、はじめてでした。 発表の形式は動画提出と、ライブ登壇のどちらかを選べたのですが、あまり家の回線が強くないため当日の通信状態や機材のトラブルを避けたかったのと、せっかくならチャレンジしてみたいな、という動機で、事前収録での動画提出にしたのでした。

参考までに構成を残しておきます。

  • OS: macOS BigSur
  • プレゼンツール: Deckset
  • 画面収録: QuickTime (cmd + shift + 5)
  • 話者収録: 一眼レフ (EOS Kiss X7)
  • 動画編集: Shotcut

音声はいい感じのマイクがなかったので素朴に Mac のマイクで録音しました。ノイズが乗るので Krisp に頼ろうと思ったけど、音声もキャンセルされることがあったので諦めました。通話だと言い直せるからあまり問題ないんでしょうけど、こういう収録だとやっぱ難しいですね。 あと、画面送り用のリモコンを使いました。

ところで MacBook Pro のメインディスプレイ、 16:9 じゃないんですよね。プレゼンツールはちゃんと 16:9 で出力してくれるので、提出用に不要な部分を切り取る動画編集をすることになりました。

チャレンジの側面が大きいので、せっかくなら面白いことしたいなと考えて、無理ない範囲でいろいろ試してます。 こだわったのは、

  • 物理登壇をなるべく再現
    • 立って話す(腹に力も入るので滑舌が改善されるし)
    • 入場と退場をいれる
  • なるべくカメラ目線をキープ
  • 軽めの動画編集による演出

動画編集ははじめてだったので手探りで、iMovieAdobe Premiere Rush ではちょっと機能不足だったのですが、 Shotcut が本当に多機能で使いやすく採用しました。 音声の位置合わせしてプレゼン側の音声だけ使ってそれぞれ出力ということをやったり、キーフレーム使えるのが嬉しくて無駄に使ってアニメーションさせたりしました。

あと実は少しだけ発表時間をオーバーしてしまったのですが、編集で 1.02 倍速とかして収めてます。もう収録する体力が残ってなかったので…。 地味にこういう点が動画提出のメリットですね。

ちなみに背景のぬいぐるみが喋っていたことに気付いた方はいたかな?

立って話すための環境構築、色々なものが必要になるんですよね。こういう感じの撮影環境を簡易的に組み立ててやりました。

ところで事前収録だと、当日は圧倒的に楽ですね。緊張も全然しなかった。もう動画提出した時点で腹は決まってますからね。 自分の発表が流れる様子を、hey ブースで他の人と一緒にわいわいやりながら鑑賞するという新鮮な体験ができました。 なかなか良い体験でした。

とはいえライブ登壇のように当日までにスライドに調整を入れるとか、前後のできごとを拾って話題に組み込むみたいなことができないので、そこはもどかしいところでした。 あと、単純に動画提出〆の 9/26 に間に合わせるように準備するのがけっこう大変でした。

他の発表の感想

初日は半分仕事しながらの参加で、自分の発表それ以外は人と話すみたいなことをしててあまり他の方の発表を見れなかったのが心残りですかね。なので動画が上がってきたら改めて見たいなあ。 2日目はメモが残っていたので振り返ってみると、こんな感じでした。

  • Safe Retry with Idempotency-Key Header
    • リトライ難しい…
    • こういうの自前で実装すると罠に無限に嵌りそうなので、標準に触れるのは改めて大事だなと
    • 質問タイムがとても盛り上がっていて立ち聞きが楽しかった
  • 真の要求を捉え、データベース設計に反映させた話
    • 徐々に、能動的に真の要求を捉えていって、ユビキタス言語やモデルを改善していく具体的な事例がとてもよかった
    • 気を抜いているとだらだらっと既存にならって進めてしまうのであらためて気が引き締まる。新しい要求が出た時点で視点をアップデートして考えられるようにできると良い
  • Railsバージョンを倍にしたサービスのそれまでとそれから
    • 偉業の話だった
    • 絶望の第一部から、根本改善の第二部
    • 負債が常時たまり続けるなら常時解消し続ける、そのための仕組みを構築していく、という実話が良かった
  • Keynote
    • 勇気をもらえる話だった
    • Rafael 氏でも英語でコミュニケーションすることに対する恐怖を乗り越えて、地道に努力して実力や自信を積み上げてきた。そしてかつての自分が憧れていた人たちと肩を並べるようになった、というのがとてもエモかった
    • 同時に Shopify の強さもすごいなあと。フルタイムコミッターの採用や生産性向上に投資し、全社に Sorbet のような挑戦的な仕組みを導入していく判断ができること、それを可能にする体力があること
    • そしてそれらを牽引してきた氏はやっぱすごい

reBako

あとこのカンファレンスについて触れずにいられないのは reBako の体験の良さですね。

holygrail.hatenablog.com

上記の記事で同僚の HolyGrail が触れているように、オフラインの「Kaigi感」が再現されていて、発表の合間に人と話したり、話している間につい発表を聞き逃したりみたいなことまで発生して、懐かしい感覚を取り戻したような感じでした。

あと立ち聞きはとてもいい機能でしたね。興味のある会話の周りに自然に人だかりができて、リアルな感じがありました。そこから会話に参加しやすくなるような仕組みがあるとより良かったのかな。座席数が限られてメンバーが固定化したり、遠慮があったりしてなかなか輪に入れない、みたいなことが減らせるといいですね。私の場合は性格的に後者が大きくて、リアルでもうまくできてないんですが。 そういう意味だと、質問ブースの座席数はもうちょっとあってよかったかもしれませんね。もしくは人の回転を促す仕組みがあると良いのかも。

総じて

発表のクオリティが高くゲストも豪華で刺激的な2日間でした。とてもたのしかった!運営の皆さん、おつかれさま&ありがとうございました。 次回も Proposal 出せたら出したいんですが、Ruby/Rails からしばらく離れそうなので、どうなるかなあ。といっても今回の発表は全然 Ruby/Rails の話じゃないんですが。 なんにせよ次回も楽しみです。