勤務先の集合イベントで福井に行った

勤務先の全社パーティーが福井で開催されることから、それにあわせてフルリモートワークである所属事業部のメンバーが全国から集まるイベントに参加していた。前週末が Scrum Fest Kanazawa 2024 だったので、金沢から福井への移動という北陸ツアーだった。

事業部のイベントでは、影響を受けた一冊として『エクストリームプログラミング』とそれに関わる半生を5分間で話していた。『エクストリームプログラミング』は "XP is about solcial change." の一文が XP を表す言葉として有名だと思うけれど、書籍の最後にある "XPとは、あなたが自分の理想について考え、その理想にもとづいて行動するための方法だ。" は、これまた XP の結論の最後のまとめとしてよく表されていて、今回の事業計画書のアップデートに取り込まれたりしている。

エクストリームプログラミング』は『達人プログラマー』と共にそのときの自身を映す鏡になる書籍で、本当によくまとまっている。Kent Beck すごい。そんな再確認にもなった北陸ツアーだった。

Scrum Fest Kanazawa 2024 に登壇した

Scrum Fest Kanazawa 2024 に『ベテランこそ日報を書こう』というタイトルで登壇した。

久しぶりのアジャイル開発方面での登壇で、同僚やコミュニティでの知己のみなさんは、非常に珍しい機会を体験している感じで関わってくれて、ある意味狙いどおりな感じにできました。いい意味で、まわりが驚くことをしてみたいじゃないですか。

そんな感じで、今回は趣味の話全開の OSS テックトークではなく、日中のお仕事について日報を通した組織づくりの話でした。今回は日本語スライドだし、当初はゆったりした感じの構成にできるかなと思っていたものの、作っているうちに熱量が高まって練り込んでいるうちにいつもの分量になってしまった。そういう作家性というか、性分というか、背負った業ということで、もうこれは仕方ない。同僚の fkino の発表とは、同じピースを違う構成で話している感を持っていて、これが永和のアジャイルの血族といった感を勝手に感じたりしました。

登壇後にはいろいろと反響をもらえてよかったです。中でもとりわけ「日報にはどう書くといいですかね?」という質問に、燃え尽きていた私に変わって Aki さん が「日報は体裁を繕おうとせず、あるがままを書くのが良い。変に丸くせず引っ掛かりがある状態の方が、むしろ話題が広がる。」というのはまさにそれ!といった感じでさすがでした。

話の中で自然に使っているというか、さりげなくでもなく (勝手に) 営業している esa.io は本当によくできたプロダクトなので、「できる限りの効果を発揮しうる、最も単純なオンラインデータベース」を背景にしたツールとして広まるきっかけになるといいなあと思っていたりする。OSS と同じで信頼できる友達が作っているサービス最高という点を差し引いても素敵なサービスなので、日報 (を通じて人と人の接点を増やす触媒) 文化と一緒に広まるきっかけになると良いなと思っています (これが「推し活」というやつだな) 。

esa.io

また今回、ひとりひとりの名前を出すことはできないのですが、格別に感謝したい3人がいらっしゃって、ひとり目は Aki さんで Kaigi on Rails 2023 の懇親会で「スクラム方面への活動が中心になる」と聞いていたのは一歩を踏み出すきっかけのひとつでした。面白いことに鼻が効く人が面白いと思っていること気になるじゃないですか。また登壇での Zoom URL 間違えていた件のサポートとか色々とお世話になりました。ふたり目は trebyさん。初日に参加枠を落としてしまった懇親会について話したところ、2日目の懇親会への案内からコミュニティの人の紹介までお世話になりました。参加者間での対話がカンファレンスの醍醐味というあたり、おかげさまで楽しい懇親会の時間を過ごすことができました。3人目はお世話になったスタッフの皆さんのうち、とりわけGのヤナギさんには、現地への行き方ツイート から始まって、最後まで色々と金沢というフェスの場を迷うことなく楽しめました。語りながら歩いて帰ったのは人生の良い思い出になります。

懇親会ではあまのさんと「マネージャーは自身のプレイ (も重要だけどそれ) 以上に、メンバーがいいプレイできる場を整えることができるかがとても重要」という自身の評価軸といったマネージャー談義したり、お店が変わってまわりの人が変われば、プレゼンテーションを音楽の演奏に例えるならアドリブをどのように入れて面白くするかなど、多くの人たちといろいろな話をすることができました。楽しかったです。

株式会社アトラクタさんにはご馳走になりましたし、騎郎さんには勤務先の若手が訳者から新作をサイン本としてもらったりお世話になりました。

また、社内向けに限定されている日報や Slack について、社外で使うことを快諾してくれた所属部署の同僚たちに感謝します。同僚たちの日頃の活動なくして今回の発表は誕生しませんでした。また同僚の岡本さんには今回のスクフェス金沢に対する社内での熱量の作り方が素晴らしく、今回の完全にその熱量にあてられました。

オーガナイザーのみなさん、参加者のみなさん、ありがとうございました!クロージングで Scrum Fest Kanazawa 2025 の案内が出ているので、また新しい人がどんどん熱量を出せる場になると良いなあと思っています。

最後に本スライドで登場した参考文献です。

ちなみに本編のトークの最後に英語を混ぜたのは二井原実やアンジェラ・ゴソウを浮かべながらのロックプレイでした。Metal Fire Forever!

またお会いましょう!

Scrum Fest Kanazawa 2024 に登壇します

Scrum Fest Kanazawa 2024 に『ベテランこそ日報を書こう』というタイトルで登壇します。

confengine.com

勤務先の隣の部署で盛り上がっていたのに加えて、@fkino によるアジャイルマニフェストへの考察のトークが気になって、これは現地で聞いてみたいとなったのが発端。

その発端のさらに大元になったテキストを @fkino の記事から引用する。

管理者が作業時間をストップウォッチで計って「プロセス」を規定し、作業者はそれに従って作業をこなす。テイラー主義がもたらした計画の実行の分離は人間性の疎外をもたらしました。アジャイルマニフェストのこの価値は人間性の回復を宣言しているともとれます。

www.agile-studio.jp

"アジャイルマニフェストのこの価値は人間性の回復を宣言しているともとれます。"

XPE2nd 第18章からの流れじゃないですか!!! これは聞きに行くでしょうとなったものの、現地チケットは売り切れていたのと、行ったことのないコミュニティに手ぶらというのもということから提出したプロポーザルが通った流れ。

私の方の話としては、勤務先で古くからある日報文化、とりわけ所属事業部において事業計画書に記載があるくらい重点をおいていることの実践からの話を中心に据える予定です。一方で、日報は重点を置きつつもカジュアルなものでもあり、そういった日報への位置付けやバランス感覚について時間の限りトークする予定です。日報をとおして、組織のサイロ化問題へのヒントになればと思います。

現地チケットは売り切れていますが、オンライン視聴はできるようです。私の発表は 2024年7月20日(土) 14:30-14:50 です。よければご視聴ください。

www.scrumfestkanazawa.org

Ginza.rb 第81回

『Ginza.rb 第81回 最近どうですか』に行った。会場は銀座界隈で移転したメドピアさん。会場とハードドリンクの提供ありがとうございました。

ginzarb.connpass.com

個人的にはコロナ禍以降、はじめて参加することになった地域.rb だった。RubyKaigi 2024 で willnet さんから「銀座.rb を再開するんですけど」と聞いていて、募集を見たタイミングで脊髄反射で申し込みした。

再開1回目の今回は、中断されていた約4年間のあいだどうでしたか?といったもの。休止していた間に変わって行ったリモート社会化の中で、それぞれ変化があったんですねえという、以前からの参加者や、新しい参加者の近況話を聞いたり話したりしていた。

最近の Ruby / Rails どうですか?的なあたりについては、休憩中だったか開始待ちだったかのタイミングで、yahonda さんと Prism が preview でデフォルトパーサーとして試される関係の話をしていた。印象的だったのは、--parser=prism のデフォルトの experimental 警告が消えていることを聞いて、マジかーとなって見たりしていた。

bugs.ruby-lang.org

このあたりについては、気が向いたら別の記事として書いてみるかもしれない (未定) 。

今回本編の最後では、次回以降の進め方についてどうしましょう?といった感じの話で締めくくり。今後の進め方について良さそうと思った案は、開催頻度を毎月に縛らなくても主催者に無理がない形で、これまでどおりの開催するというのは個人的にいち参加者の体験としては良い案だった。飲み会でも話されていた「willnet さんと、y-yagi さんと組長の3人が主催しているから Ginza.rb の空気がある」は本当にそうで、無理ない形で次回以降進むと良いなあと見守っている。

あと、本編終了後に使っていた銀座ライオンや界隈の閉店時間が軒並み繰り上がっていて、それはそれで別の課題感だなあということが分かった再開回だった。次回はひとまず Rails 7.2 あたりがテーマになるのかな?

またひとつ日常が帰ってきた感があって良かったです。再開ありがとうございました。

RubyKaigi 2024事後勉強会に参加した

SmartHR さん主催の RubyKaigi 2024 事後勉強会に参加した。

smarthr.connpass.com

ざっくり感想です。

  • tagomoris さんの発表は、RubyKaigi 2023 に参加した際にあったという「現状の Ruby に概ね満足から namespace 欲しい!」への心の変遷から、手の動きまでの話が RubyKaigi 2024 の話の舞台裏な感じでとても良かった。Ruby 4.0 楽しみです!
  • osyoyu さんの発表。ぜんぶわかりみしかなくて、人間みんな一緒なんだなあと共感しかなかった。
  • 銅鑼を叩くにあたり因縁 (とは?) のあるトーカーを選べるということで、rubocop-daemon 作者の Fohte さんの銅鑼を叩かせてもらうことにした。感想を求められた際に「発表への後押しというつもりはなかった」と言ってはいるものの、オープンなコードの活動がきっかけで人が動いてくれるのは嬉しいもので、いいぞどんどんやっていきましょうの気持ちでした。これで rubocop-daemon 統合のサーガがひと段落ついたのかな。開発から一連の発表までありがとうございました。
  • 懇親会では、GitHub 上やオンライン登壇で存じ上げていますという Rubyist たちに挨拶できて良かった。あと tmtms さんに LSP ルーター開発のお礼を改めて言えて良かった。今後何か問い合わせがあったときに提案できるポインタがあるのはとても便利。
  • RubyKaigi 2024 での廊下会議で聞き損ねたパーサー話を kaneko さんに聞けて満足したのと、Prism API は現状で ruby/prism のイシューに閉じている感あるので、bugs.ruby-lang.org へのパーサーユーザーフィードバックなどやっていくと良さそうというのを話せて良かったです。
  • 2次会は ogijun が予約してくれたというお店のキャパが人数に対して少なそうということで、katsyoshi と一緒にフォークして Abbot’s Choice で飲んでいたら、ジョーカーさんと合流できて良かった。ちなみに Abbot’s Choice はジョッキは UK パイントで、グラスは US パイントという選択なので、そのあたり特殊な注文力が求められそう。

ファーストタイマーのコミュニティ登壇者から熟練の登壇者まで幅広い「思い出が止まらない」イベントになっていて、とても面白かったし楽しかったです。SmartHR さんありがとうございました。

RubyKaigi 2024 に登壇した

RubyKaigi 2024 に登壇した。

rubykaigi.org

当日の発表スライドは以下です。

発表について

今回は、RubyKaigi 2023 の帰り道に Justin Searls とばったり松本駅で遭遇してからの、362 日の Rubyist 活動をストーリーにしたものでした。

もともとは、LSP の話を中心にして Prism の話は少し出るくらいという『RuboCop Evolution with LSP』というプロポーザルを出して通過したところ、Rails/OSSパッチ会で松田さんから「Lrama の話が3本あって、Prism の話がないんですよ。」という感じでタイトルに Prism を入れてもらえないかという打診を受けて、「そのタイトルが悩ましいですね。」と返したところ、「『エマーソン・レイク・アンド・パーマー』みたいに並べるといいんじゃないでしょうか?」とアドバイスを受けて、結果として『RuboCop: LSP and Prism』というタイトルにしたという背景があります。

名は体を表すというか、タイトルがそうなると中身も Prism への言及が増えるわけで、JSON-RPC による仕様の話から、パーサーユーザー視点での Prism のいまみたいな振り幅のある構成になりました。さらに初日の kaneko さんの講演を聞いて、ストーリーの結末が変わるな。。。となって、ホテルに帰ってから当日の朝3時くらいに結末を若干変更して通訳さん向けに再アップロードしていた追加スライドは以下。

実際にどうなるかはわからないものの、if の世界としてこの図は示しておかないとダメだろうと、RubyKaigi 2024 Day 1 終了時点での自分の理解を図にしたものだった。もう少しいうと、図にしたくらいなので、個人的にはこのあたりが落とし所になるのでは?という予感はしている。

なお、本編のトークのランタイムスピーカーとしては RuboCop そのものというよりも、どんな人が RuboCop を作っているかという点を意識して話してみようとしていたけれど、そのあたりの表現はできた気はします。どうだったろう?

RuboCop から見た Ruby パーサーの世界の今後

正直なところ Prism も Lrama もパーサーユーザーとしては感謝しかなくて、できるだけ配慮した構成にしようとしていたものの、RubyKaigi 2024 で将来像というものが RubyKaigi 2023 のときよりも具体化してきたように感じています。以下、その根拠。

  • 前提として、Matz がクロージングキーノートで話されていた Prism のクオリティ向上のため1年は新構文を追加しない。これは結構重要な言葉だったと解釈している。
  • kaneko さんの発表にあった「Lrama (LR) は言語規則を元にパーサー実装ができるが、Prism (手書き) はパーサー実装を元に言語規則ができる」というのは、それぞれのパーサーのあり方を突いた胸に刺さる言葉だった。kaneko さん、完全に名言マイスターだった。
  • 自分から見て、Prism はエコシステムの処理系やツールと既存のコミュニティと連携することを先行して、Lrama は parse.y を含めたパーサージェネレータそのものクオリティを上げつつパーサーコミュニティを改めて形成した362日だったと思う。つまりパーサーの処理系の周辺への活動範囲としては重複していない部分が結構あるはずで、コミュニティとのつながりを持つ Prism と、魔境といわれた parse.y をパッチモンスター nobu に「過去10年で最高の parse.y」といわしめた成果を出している Lrama がいい感じに手を取り合う未来は選択肢の中のひとつのヴィジョンとしてあるように思える。

この先に見えているものもありますが、そのあたり興味のある方は、勤務先で公開イベントとしているパッチ会などで聞いてください。

廊下会議し損ねた気になり点

RubyKaigi の会期中に聞きそびれたところ。あとで地域コミュニティか何らかのオンラインで聞いてみたいところ。

  • parse.y と RubyVM::AbstractSyntaxTree と Prism API の関係について
  • Prism API について、せっかくゼロから設計されているのに、ノードによって then_keyword_locthen_loc といった命名に一貫ができていない部分があったように思える。 (e.g., https://github.com/ruby/prism/issues/2533) 。直すなら今のうちなんだろうけれど。

SmartHR さんのアフターイベントあたりで聞けると良いかなと思っています。

smarthr.connpass.com

RubyKaigi や Kaigi on Rails 本編ではない、こういったイベントに行くのも5年ぶりとかそんな感じな気がするので、楽しみにしています。

今後の 362 日

去年の Justin Searls との対話のときほど、今年は来年に向けたテーマというか目標がはっきりできたわけではないけれど、そのあたりはこれからの kaneko さんとのやりとりによって、、、という動きになるかもしれない。自分の中で、今年の RubyKaigi は Lrama がパーサーユーザーに向けた次のステージに行く準備ができたぞと言うメッセージを受け取った気がするので、構文解析器研究部していこうと思う。

LSP まわりの方では @vinistock や Justin と話したこのあたりを見ていくことになると思う。

登壇以外に得られた会話など

  • kaneko さんが Lrama から Prism AST へのトランスレーションレイヤーをやっていく気を伝えられたので、何か起きるかもしれない。このあたりについては、どこかで kaneko さんと話せると良さそう。書き残しておくと、RuboCop を Prism AST 対応するのは結構大事なので、そこは Prism の Prism::Translation::Parser を使いまわしできる形で、現状の Prism AST に即した AST に変換するレイヤーを設けるということになるかも?
  • Ruby LSP として、同一コードへのパース済みの AST をツール間で使いまわしたいという話。理屈としてそれはそうなので、止まってしまっている PR を進めましょうとなった。 (コメント済み https://github.com/Shopify/ruby-lsp/pull/1849#discussion_r1609244525)
  • これまた Ruby LSP の話として、フロントまわりを Standard と RuboCop あわせて統合できないか?という話。Standard に PR が出ているので後で読む。Justin からももう少し細かい話をあとでもらえるかも?今後の情報の動き次第で LSP まわりのプロダクトビジョンが変わるかもしれない?
  • 廊下で Matz に Prism AST (API) の位置付けを聞いたところ、もともとの Ruby の AST はユーザーに使われることを意図して設計したものを expose させたものではなかったところ、Prism AST (API) はユーザーを意識した設計になっていると伺ってなるほどとなりました。ありがとうございます。
  • rubocop-daemon の作者の Forte さんにご挨拶できた。お会いしたことがなかったので、とりあえず所属先の Wantedly さんのブースに行けば挨拶できるかな?となったので、1,000 人越えのイベントで固定座席になっているブースは便利でした。ご不在のところメンバーの方に言伝いただけたようでアフターパーティーでお会いできました。ありがとうございます。
  • 銀座.rb を再開するという話を @willnet さんから聞いたので、楽しみにしています。
  • 初日のオフィシャルパーティーは、成瀬さんが kaneko さんのフィクサーという点を満喫できるテーブルだった。kaneko さんが junk0612 と ydah さんに Lrama のコミットビットを付与する会に立ち会って、これがまた RubyKaigi っぽくて良かった。
  • はすみさんの発表の裏が通訳さんとの打ち合わせだったので、聞けなかったのは残念。台湾でのあの写真が使われていてびっくりでしたが、写真を撮られた際に、はすみさんが気に入ったフォトっぽかったので、活用してもらえて良かったです。ちなみに RubyKaigi 会場に向かうまでで最初に遭遇した Rubyist がはすみさんで「Rubyist 同士は引かれ合う」感ありました。
  • RubyKaigi 2022 はオンライン登壇、RubyKaigi 2023 では少人数での飲み会しか行かず、大阪Ruby会議03では野に放たれたならずものの一味になってしまったので、今回はじめて ydah さんとたくさん乾杯できました。ydah さんナイスガイだった (ビール的にも) 。

RubyKaigi からの帰路、国際通りA&W掲示板に出ていると言う、ぺんさんのコードを見てから空港に向かおうとシャッターチャンスを狙っていたところ、同じことを狙っていた @a_matsuda と @ffu_ と偶然に遭遇。実はこの2人は Ruby 業界で自分にとってメタルの師匠という位置付けなので、そういった感じで最後まで割と Rock な Okinawa ツアーになりました。

今回のRubyKaigiでの気づき

「RubyKaigi では明日から役立つものの Takeaways とかない」という感じで、まあ技術的なトピックとしてはそうかもしれないけれど、また1年間やっていこうという気持ちや、同僚 (自分だと @junk0612 や S.H.) の登壇をライヴ参加した体験や、パーサーのひとたち (kaneko さん、ydah さんや hasumikin さん) 始め多くの Rubyist と交流する体験は、参加しないと Takeaways できないし、参加したからこそ Takeaways できた体験だったと思う。なので、実は RubyKaigi は何を期待するかによっては、Takeaways しかないイベントなのだ!という気づきがありました。

つまり難しいこと考えずに、参加できる時に参加するが吉だと思う。そんな感じで、オンライン期間のうちに失われていた感情というか距離感の掴み方というか、いろいろと思い出せてきた点も本当に良かったです。オーガナイザーのみなさん、スタッフのみなさん、ありがとうございました。

相談役の通夜に参列した

以下の会社ニュースで告知されているとおり、勤務先の創業者相談役が永眠しました。このブログを見ているかもしれない何人かの人は交流があったんじゃないかなと思います。

esm.co.jp

相談役は穏やかなお顔で旅立たれておられました。心から生前のご厚意への感謝とご冥福をお祈りします。