STORES Product Blog

こだわりを持ったお商売を支える「STORES」のテクノロジー部門のメンバーによるブログです。

マネジメントはシミュレーションゲーム、Rubyのお気に入りポイント、仕事だと障害対応が一番楽しい【Rubyistめぐりvol.5 onkさん 後編】

Rubyist Hotlinksにインスパイアされて始まったイベント『Rubyistめぐり』。第5回はonkさんをゲストに迎えて、お話を聞きました。こちらは後編です。(前編はこちら

hey.connpass.com

最先端で障害対応ができる自負がある

藤村:最近はどんなことしてるんですか?

onk:最近はマネージャーをやっております。仕事では手を動かしてないですね。

藤村:主な関心ごと、主な時間を使っているところってどういうことですか?

onk:定例ミーティングと1on1でほぼ全ての時間が消えていくので、主な関心ごとは見ている全てのプロジェクトが破綻しないことですね。カレンダーがテトリスになってます。しかももうほぼゲームオーバー寸前のテトリス。

藤村:ここらへんも似てるからまた話が広がらない、わかるで終わっちゃうのが悲しいところなんですけど。時間の確保とかどうしてます?普通にやっていると時間が無限になくなっていくじゃないですか?全スロット埋まりがち問題。

onk:全スロット埋まるのはしょうがないんじゃないですかね。自分でブロックしたいところはあらかじめブロックって入れておけば、かろうじてブロックはできる。かろうじてですね。

藤村:自分で考えて新しくものを進めないといけないことと、リアクティブにやらないといけないことと、見とかないといけないこととかそれぞれあるじゃないですか。どんなふうに使い分けているんだろう。

onk:リアクティブに動けるように設計したっていうのが大きいかなと思います。とりあえずあがってきて、その場で打ち返せばものが進むようにしておくのと、あとはぼんやり夜とかに考えておいて、それを1on1で伝えて、自分の思うように動かすみたいな。こうするといいんじゃないっていうアドバイスをして、その通り帰ってチームで話し合っているのを見るとしめしめって思ってますね。

藤村:ドリコムですごい勢いでコードを書いたり、サーバーを横に並べたり、MySQLを設定していた時期と比べると仕事の内容自体はガラッと変わってはいると思うんですけど、どこかでマネジメントキャリアパスになる転機があったんですか?

onk:マネジメントは自分がこのチームの中で一番マシだなと思ってやらざるを得ないっていうのが一番のきっかけではあります。

藤村:回ってきちゃったみたいな。

onk:はてなだとsongmuさんがいなくなって、僕がチーフになったので入れ替わりですね。ただまだ最先端で障害対応ができちゃうので、自分が先頭だなぐらいの自負がありますね。

藤村:手を出しちゃいがち。

onk:手を出しますし、インシデントコマンダーがうまいんですよ。

藤村:うまそう。

onk:誰々の手が空いてそうだからこれ見て、あなたはこれ見て、とりあえずTwitter貼っといてとか。

藤村:ここで競技インシデントコマンドをやったら決勝ですよね。強そうだな、ここの大会。

onk:そこは得意なつもりなんですけど、ISUCONでは勝てないんですよね。あと一歩手が足りない。

藤村:回ってきたところと、このメンツだったらやるかみたいな感じでマネジメントをやるっていうところも僕と大体一緒なんですけど、マネジメントは面白い営みなのかもしれないって思う瞬間とかがありました?

onk:面白いのはありますね。シミュレーションゲームをやっている感覚に近くて、この人たちを近くに置いたらうまく動くかもっていう仮説を立てて、試しに二人で定例をやってもらうと、半年後にはあんなにギスギスしていたチームがあら不思議みたいな、そういうことになってるとすごい最高ですね。狙いがハマった時は最高に楽しい。

藤村:システムとして見てるんですかね?

onk:コンポーネントと思ってみて、組み合わせるパズルをずっとやってるんだと思います。

藤村:コンピュータと違ったタイプでうまく動かないことがあるみたいな。

onk:そうなんですよね、試行回数が少ないっていうのもある。コンパイルエラーぐらいで落ちてくれればすぐできるのに。

藤村:コンピュータはすぐ返事くれますもんね。

ひとつの言語にこだわってるからこそ見える世界がある

藤村:仕事でプログラミングでも、マネジメントっぽい仕事でもそうですけど、影響を受けた人、本、作品とかありますか?

onk:java-jaの勉強会に出るようになったっていうのが一番のきっかけなので、yoshioriが一番僕の人生に影響を与えてますね。その次はjava-jaで出会った羽生章洋さん。俺たちが作ってるシステムっていうのは、漢字で「系」と書くんだと。系っていうのはお客さんと私たちも系だし、社内すべても系だし、すべてを考えながら全部を設計できるんだみたいなことをjava-jaのどっかで言って、その時になるほどって思った。お金の回り方も多少そういう世界がある、スーツとギークは戦う相手じゃないみたいなのがインストールされたと思います。

藤村:スーツとギークの戦いっていう文脈が当時ありましたよね。

onk:ありましたね。2007、8年ぐらいにあったと思う。

藤村:それは一つの系であるっていうアプローチは会社で働いてると大体それで、それができてると勝ちだけど、できてないとなかなか大変なことになるのはどの局面に行ってもありますよね。

onk:そうですね。この辺にさらに納得いくようになったのはjunebokuさんですね。 ジュンさんがRubyKaigiで、高井直人さんとコミュニケーションデザインチームみたいなのを作って、ここでアンチボッチランチを企画したりとか、コミュニケーションデザインとか組織のデザインっていうのもこれも設計なんだよみたいなことをジュンさんもどっかでブログ書いてたんですよね。それを見ていいなと思った。

june29.jp

藤村:こんなイベントをやっておいて何を言ってるんだって感じですけど、こういうエンジニアのコミュニティって学ぶところが多いですね。学ぶところっていうかすごい深い学びが得られるところなんだなっていう。

onk:仕事の仕方は少しずつは変わってると思います。

藤村:コード系だとあります?ライブラリーこれ読んだとか。

onk:大体そのGemのコードはすべて読むからな。でもその記憶に残ってるものとしては、コードそのものではないんですけど、川崎Ruby会議01の遠藤さんの基調講演*1の一番最後の余談で、とにかくその他の言語じゃなくてなんでRubyでoptcarrotと作ったのかという話をしていて。その時にひとつの言語にこだわってるからこそ見える世界があるって話だったんですよね。手になじむ、エコシステムを全部知っている、ここをこうすればいいみたいな勘が働いていると行きつく場所がある。そんなトークをちらっとされていて、それを見てRubyでやりきるのは絶対面白いなと思った。

藤村:いつ頃ですか?

参加者:2016年。

onk:2016年か、まだそんなもんか。

藤村:ひとつをやりきると見える。それがきっかけでRubyが軸になったわけでもないけど、なってたのがダメ押しされたというか。

onk:2016年頃は新しい言語もどんどん出てきてる時期で、Goも出てきた。浮気しようかなと思っていた頃に、まだRubyでやることあるじゃんと思い直せるエピソードでした。

藤村:その後、浮気はしなかったんですか?

onk:してないですね。業務ではPerlを書いたり、Goを書いたり、Scalaを書いてますけど、プライマリーな自分のホームはRubyだという気持ちがあります。

藤村:Rubyのお気に入りポイントはどこですか?

onk:圧倒的に短いところですね。他の言語で20行くらいかかるのがRubyだと2、3行で書けたりとか、横幅もすごく短くなる、記号が少ないのが好きなところです。

藤村:困ることはありますか?個人的にはここがこうじゃないんだよなみたいな。

onk:RuboCopのデフォルト値はだいぶイラついていたんですけど、そこは自分の中で解決してしまったので。

藤村:たしかに、僕もOnkCopに散々お世話になりました。

onk:DSLが書きやすいのもいい言語だなと思うので、困ることはあんまりないかな。

藤村:使いこなすとそりゃなくなるというのもあるのかもしれない。

onk:あとはやっているものがWebアプリケーションに閉じていて、ローレイヤーにもいかないし、フロントエンドまで上がってもこないし、ちょうど自分がバックエンドだけをやり続けてることも影響してると思います。

藤村:最近プログラミング系で関心があることはありますか?

onk:Rubyだけで何かを解決しようとするようなことを思ってなくて、パブリッククラウドの全てのコンポーネントを駆使してどうにか解決することが多いので、アーキテクチャにはずっと興味がありますね。

藤村:パブリッククラウドの全部を使うアーキテクチャってどういうものですか?

onk:クラウドネイティブにして、サーバレスにしておくと無限にスケールしてくれるみたいなものですね。とにかくこの無限ってかっこいいじゃないですか。

藤村:そうですね。しかも固定費0円になる。あれってやっぱその無限になることを重視してやっぱり全体を考えますか?

onk:そこは要はバランスなんですけど、無限は夢なので、まず夢通りに設計してみて、現実に落としていく、そういう考え方ですね。他に考えることは、個人プロダクトだと、どうやったら無料枠に収まるかっていうのだけを考えてます。これが難しいんですよ。

藤村:縛りゲーですね。

onk:MySQLサーバを立てたらそれだけでお金がかかっちゃうし、ALBを立てたらそれもお金がかかっちゃう。なので、とにかくここはデータストアも無料で済ませるし、リクエストのロードバランサも無料で済ませるっていうのを頑張る。

自分よりも詳しい人がいるとムカつくじゃないですか

藤村:プログラミング以外の仕事っぽいジャンルで影響を受けたものはありますか?マネジメントの本もたくさん読まれている印象があります。

onk:マネジメントをやり始めたときに、ちゃんと勉強しろって書いてある本を何冊か読んだんですよね。これは別の仕事なんだから、別の言語を学ぶときにお前は本を読むだろう、なのにマネジメントをやるときになんで本を読まずに済ませようとするのかというのを読んで。それを見ていっぱい読むかぁと思って、いっぱい買って読んでますね。

藤村:どうやって本を選んでますか?

onk:それっぽい本を3冊ぐらいAmazonのカートに入れると、サジェストがよくなるんですよ。カートに入れるだけでよくなるので、買わなくてもよくて。そしてサジェストされた本を上から順に買っています。

藤村:全部読みますか?

onk:割と読んでますね。ただKindleには1,600冊ぐらい未読があるので、読み切れてないです。

藤村:物理の本は買わないようにしてるんですね。

onk:そうなんですよ。

藤村:本を読んでいて、この本から得ることはないかもしれないって時があるじゃないですか。

onk:あるんですけど、それはひょっとして前の方がしょぼいだけで、後ろにいいことがあるかもしれない、宝がどこかに眠ってる気がして損切りできないんですよね。

藤村:なるほど。いつ本を読んでますか?

onk:ずっと?寝る前にも読むし、移動時間も読むし。

藤村:どんな本を読んでるんですか?

onk:小説も読みますし、自己啓発本も読みますし、割と色々読んでると思います。漫画はいっぱい買っちゃってますね。年800冊くらい読んでるんで。

藤村:例えばマネジメントとか目的があると、Amazonハックで探す技があるじゃないですか。それ以外はどうやって探してるんですか?

onk:Twitterのタイムラインをうまく構築したというか、自分用に整えていったので、いい本があると全部タイムラインに流れてくるので、そのまま流れるように買ってます。

藤村:わかります。いつ読むかわからない5,000円くらいする本を買うのが一番楽しい。

onk:でもいいって言ってるから。積んであることによって何か功能があるはずだからね。

藤村:僕はそれが本当にあると思ってて、僕は物理の本を買うんですけど、本棚にあると目に入ってくるじゃないですか。それだけで多分そのことを意識するようになるんですよ。結果的に内容も理解できてるんじゃないかみたいな。

onk:あとは社内でちらっと話題になった時に、もうパラパラとそこだけめくって読むとか、そういうのを繰り返していくので、全く一行も読んでないみたいなのは少ないと思う。

藤村:すごいですね、僕は買うだけ買ってほったらかしているタイプなんで。

onk:ここは僕がまだ技術で勝てると思っているところにつながるんですけど、自分よりも詳しい人がいるとムカつくじゃないですか。何かマウントを取られたら、マウントを取り返さなきゃいけないので、頑張って読みます。

藤村:ライバルを超えてさすがにこの人には勝てないっていうのは山ほどいるか。

onk:山ほどいますね。いますけど、ただ登る山が違うということにして忘れたりもしてますね。

藤村:仕事でロールモデルっぽい人いますか?

onk:こんな暴れ馬みたいな僕をうまくマネジメントしてくれた、マネージャーとしての腕が良かった上司たちがいるので、彼らの真似をしようと思って生きてますね。

藤村:いい話だな。

onk:いやーマジで今欲しいんだよな。

藤村:いいマネージャー。

onk:いいマネージャーだったので、どんどん引っこ抜きたい。

藤村:そっか、そうすればいいのか。

ヤンキー、オタク、ミーハー

藤村:仕事の仕方について、発見的に働く方なのか、その時のミッションに割と自分をしっかりフォーカスさせてやるタイプなのか、どういうふうに働いているんですか?

onk:ドリコムの社内で話題になっていたワードに、ヤンキー、オタク、ミーハーっていうのがあって、この3分類で人間を説明することができると。ヤンキーっていうのは男気に溢れているマネージャー、部下は俺が守るみたいなそんな感じですよね。で、オタクは技術力がとにかく至上命題。このヤンキー山とオタク山ってその頂上が違うじゃないですか。ミーハーっていうのは世の中で流行っているものが好きとか、流行っているものに近づく、近いところにいることに対して賞賛を集められる。これもまた違う山なんですよね。 僕はミーハーのオタクなので流行りものが大好きだし、技術ではとにかく勝ちたいというところにいます。

藤村:なるほど。

onk:これをやってると何がいいかって、ミーハーだと世の中で流行っているものを自然と知れるんですよね。それを知っているということは、自社での働き方、自社でのコードベースと世の中の流行りとのギャップに気づける。ギャップに気づいたらあとは埋めるだけなので、仕事の発見っていうのはそこから出てくるんじゃないかなと思ってる。

藤村:発見はやっぱり重要な仕事?

onk:自分が自ら発見しているというよりは、世の中で流行っているものと何が違うんだろう、遅れてないかみたいなところで初めて見つける感じです。

藤村:世の技術的なトレンドもTwitterですか?

onk:Twitter、はてなブックマークあたりにお世話になっているものですね。

藤村:最近注目しているテクノロジーはありますか?

onk:社内でずっとGoとTypeScriptを書いていて、ここは設計方法がまず全然違うじゃないですか。Rubyだとテスト書きたかったらmockすれば何とでもなるんだけど、Goだとちゃんと設計から考え直さなきゃいけないし、なるべく関数型っぽく書いてないとDIが大変になったりとかもするしみたいなので、そういうこと考えていると全然設計方法から違うみたいなのは面白いですね。

藤村:Goは謎めいてますよね。

onk:難しいですね、関数型っぽいエッセンスを入れたいんだけど、入れづらいし。でもそう書かないと書きづらいしみたいな。

藤村:頑なにmapとかやらないみたいな。

onk:もうmap入りましたからね。

藤村:そうか。

onk:map入るんだと思って。入れるんだったら初めから入れとけよって思いましたよ。Rubyだとmapがeachって僕らは注意するじゃないですか。戻り値を使うんだったら、絶対mapだし、使わないんだったらeachにしろみたいな。それで一行目を見ただけで、プログラミングが何をしようとしているのかわかる。表現力をとにかく大事にしている派閥と愚直に書いていく派閥って相容れないと思うんですよね。僕はとにかく表現力を高めたいし、文字数を少なく書きたいと思っています。

藤村:なるほどな。課題発見って面ではトレンドと現状の差異がひとつの方法だったと思うんですけど、他に課題に気づく方法、見つける方法、眺める時に気をつけていることはありますか?

onk:他は熱量の高いプロダクトオーナーのそばにいるのがやっぱり楽ですね。事業のことを本気で考えて、これできないの?と明らかに無理なことを言ってくれるんですけど、四半期に1回、半年に1回くらいだったらむちゃぶり大歓迎って言ってるんですよね。それがないと自分が書いたことのあるコードしか書かないので。

藤村:そういうのがあると技術的にも新しいチャレンジをする機会にもなりそうですよね。

onk:そうですね。ソーシャルゲームの時は急にIPを取ってきたんでって、ワンピースのゲームをやることになったりすると。これは桁が変わるぞ?10倍のアクセス、100倍のアクセスをどうやって捌くんだみたいな。

藤村:燃えますね。

onk:はい。とにかくむちゃぶりしてくれる方がいいですね。世界展開するぞってなったら、翻訳どうするんだみたいな。絶対面白いじゃないですか。

リリースされる直前につながるシナプス

藤村:逆に興味ないことってあります?

onk:進捗管理とかは本当に興味がないんですよね。やらなきゃいけないんですけど。根がカウボーイなので、その場でこんなこともあろうかとって出したもん勝ちみたいなそんなイメージがあります。

藤村:社会に適応しまくったハイパフォーマンスカウボーイになってるわけですね。

onk:仕事をする上でもよくなくて、よく「考えてることを出してください」って言われるんですよね。実際に本番のリリースするEnterを押す直前にならないと、これがまずいっていうのを思いつけないんですよ。本当に直前になって、これとこれをやらなきゃみたいなことを言う。また後出しクソ野郎が何か言ってるよみたいに言われるんですよね。でも、頭の中を100%それで埋めないとシナプスがつながらないんですよ。

藤村:それはそうかもしれないね。

onk:なので、片手間でやってるとダメで。本当に8、9割ぐらいそれに集中してる時に初めてやっと出てくるみたいなものが多いですね。

藤村:今って8、9割で何かやれることあります?

onk:ないので、本当にEnterを押したのを見て、その瞬間に今のダメみたいな。

藤村:怖い怖い。

onk:今から本番にこのマイグレーション当てますっていうのがSlackに流れてくるので、それを見に行って「このindexダメだよ」と言ってるみたいな、後出しなんですよね。チェックリストを事前に作るっていうのは多分無理だな。

藤村:何か諦めたジャンルとか、捨てたジャンルってありますか?

onk:下の方のレイヤーは捨ててますね。これは今Perlを書いていても、PerlってモジュールがXSで書かれているじゃないですか。出てきた瞬間にこれは読まなくてもいいかなって感じになっちゃって、あんまり頑張らないようにしてます。でもこれがLLMのおかげでこれは何をやってるんですかって質問を投げたら全部答え返してくれるようになったんで読みやすくなったから、これからはレイヤーに対してそんなに危機感を抱かずに全部読めるようになったんじゃないかなって気がしてますね。

参加者:本当にLLMが正しいこと言ってると思うの?

onk:そこは自分で読み合わせればいいので。とっかかりがつかめるのはだいぶ違いますよ。

藤村:仕事の幅って面ではマネジメントっていうところには広がったわけですけど、ここから先、さらに隣接してる仕事あるじゃないですか。

onk:そうですね、いやーでも今が限界かな。今、僕の所属しているところにエンジニアが60人ぐらいいて、個人個人を見るのはもうそろそろ限界ですね。

藤村:今の発言はおかしいと思うんですが。

onk:全員と1on1をしてるとかじゃなくて、小さく分けてますよ。

藤村:それでもなかなかすごいですね。起業とかしないんですか?

onk:儲かるイメージがまだもててないですね。っていうのと、サラリーマンをやっているのはすべての事務処理をお願いしたいからなので。確定申告ができなくて、追徴金を食らう未来しか見えないので。

藤村:フルメンテナンスされた働き放題プランで入っている。

onk:その中で生きてくのが幸せだなと思っています。

藤村:プログラミングは何が好きですか?何で楽しいんだろう?

onk:問題を解いているのが一番好き。なのでSlackでここがわからないとか、障害が起きたとかまさにパズルの問題が出てるわけじゃないですか。それはもう喜び勇んで解きに行くわけですよね。

その次は何だろうな。同じことを同じように書くっていうのもこれも問題を解いているうちだと思うんですけど、これが基本正解だろうという正着を見つけるのがすごい好きですね。RuboCopのルールもそうですし、こう書くべきであるみたいなのを探す。それを広めておく。自分の目に入るコードが全部このルールに乗っとっていると最高みたいな。前職ではOnkCopを作ったり、あとRailsのアップグレードとかもいろいろやっていた。Railsのアップグレードってソースコードの書き方が揃っているとチェリーピックで終わるんですよ。全然違うリポジトリをgit remoteに入れておいて、Railsアップグレードのコミットをどんどんチェリーピックしていくと向こうのアップグレードがこっちでも終わる。

参加者:理論上はそう。

onk:それができるぐらい書き方を揃えておくっていうのがいいんですよ。

藤村:config以下だったらわかるけど、app以下も?

onk:app以下はさすがに。app以下でやりたくなるんだったらGemに追い出しとけっていう話ですよ。

藤村:確かにな。ライブラリを作りたいとか、問題解決型なんですかね。物を新しく作るのが好きな人もいるじゃないですか。

onk:もっと楽に書けるはず、理想像が違うなと思った時にイラッとして、それを解決しようとします。例えばOpenAPIのスペックってRequiredを全部書かなきゃいけないじゃないですか。でも基本全部をRequiredにするんだから、デフォルトをRequiredでやって、オプショナルを書く方が正着なんですよね。文字数が少なくなるから。なので、変換するような wrapperみたいなのは作ったりしますよね。とにかく文字数を少なく、やりたいことを一撃で終わらせられる状況にしたいっていうのがモチベーションだと思います。

藤村:なるほどな。新しいことをやり始める時の定番攻略法みたいなのがあったりします?

onk:前ブログに積極的フィルターバブルっていう風に書いたんですけど。フィルターバブルってその同じ情報だけを摂取していると、その中でどんどん染まっていってしまうみたいな感じじゃないですか。これをあえてやるんですよね。なのでTwitterでも普段見ているRubyの人たちのツイートを見ないようにして、別のリストを作る。例えばiOSの人たちだけのリストを普段見るようにしておくみたいなことをすると、iOSの話しか入ってこなくなるので、頭の中も100%それで埋まって、やっと集中できるようになる。どうやったら自分の脳の8割9割をそっちに向けられるかっていうのを大事にしていると思います。

藤村:家に置いてる本とかも多分そうなんだろうな。タイムライン形成は重要ですよね。

onk:けん玉を始めるときもこれをやったんですよね。

藤村:けん玉タイムラインがあった?

onk:Instagramはサブアカウント作り放題なので、けん玉用のサブ垢を作って、ここを見に行くと、いかに回転させるかが価値基準になる。

藤村:けん玉はいつから始めたんですか?

onk:1年半前かな。たまたまAmazonをさまよっていたら、おすすめに出てきたんでポチった。

藤村:たまたまAmazonからけん玉が出てくるってどういう購買行動だったんだろう。

onk:でもその前にボトルマンとか変なものをいっぱい買ってるんで、おもちゃを買っていると、そういうのがサジェストされるようになるんだと思います。

藤村:けん玉は毎日練習するんですか?

onk:してますよ。yancyaさんと同じくらいやってます。

藤村:けん玉の練習ってどういうことをやるんですか?

onk:まだ自分の体の使い方の精度が低いので、10回に1回くらいしか成功しない技みたいなのがあるんですけどね。これを何回も成功するまでやり続けるみたいな。

藤村:器械体操のちっちゃい版みたいな感じですか?

onk:宙返りで着地一発で決まるかと同じ気がします。球がこの位置に回ってくるかみたいな。

藤村:けん玉をやってて、ブレイクスルーはあるんですか?

onk:日々ありますね。けん玉とかヨーヨーって技が無限にあるんですよ。これが今はできないけど、もうちょっとやったらできそうみたいな技が無限にあるので、常にチャレンジャーでいられるんですよね。絶妙な学習曲線というか、難易度調整がされている。楽しいので、ぜひ皆さんやってください。

藤村:前の会社で働いた時に事業をやってたんですけど、簡単にうまくいくタイプの事業じゃなくて、うまくいかないんですよ。で、楽器の練習を再開したら、線形にうまくなってくるのでめちゃくちゃ気分良かったんですよ。もしかしたらそういうやつですか?

onk:そうですね。新しい趣味を始めた時って、はじめの2、3ヶ月にめちゃめちゃ成功体験があるので、本当に楽しいんですよね。これがこのシグモイド曲線みたいになってなくて、ずっと線形に上がっていく。これがピークになってしまうとつまらなくなってくると思うので、そうじゃないっていうのが非常に面白いところです。

藤村:仕事は多いですもんね。シグモイド曲線だけど、しかも真ん中までいかないみたいな。そういうのを耐えて続けるみたいな。

onk:そうそうそう。

藤村:けん玉以外に最近面白いことは何かありますか?

onk:仕事だと障害対応が一番楽しいですけどね。会社で障害対応しててちょっと小康状態になったから、家に帰るんですよね。家に帰ってドアを開けたら、妻に「満面の笑みで帰ってきたけど、どうしたの?」と言われて「いや、今障害対応中」ってすごい楽しそうに返したらしいんですよね。パズルとして楽しんでるっていうのもあるし、このヒリヒリした状況を楽しんでるっていうのもあるし、エラーログの向こうの一人のユーザーに対して、これをいかに小さくするか、何とか早く解決したいみたいなこのヒリヒリした状況が大好きですね。

藤村:リアルっすよね。

onk:今、生きてる!って思うんですよね。

コミュニティを混ぜたい

藤村:最後の質問なんですけど、今後の展望及び野望はなんですか?

onk:引き続き生産性の高い開発集団は作り続けたいと思っていて、これを作る、維持するっていうのが面白いところかなと思いますね。コミュニティを混ぜたいと思ってるんですよ。このRubyコミュニティの人と、あと僕がMackerelチーム、サーバの監視をやってるところにいるのでインフラ系の人たちと話すことが多い。例えばOpenTelemetryって流行ってるじゃないですか。なんですけど、Ruby界隈の人たちは知らないか、基盤チームの人がやる仕事だと思ってるみたいな感じがあって、ここはとにかく混ぜたい。

あとRuby界隈とフロントエンドも混ぜたいんですよね。これはRuby Wasmが出て、今ちょうどそのWasm上でどうやったら別ファイルになってるGemをrequireできるかを頑張ってるじゃないですか。これってフロントエンドの界隈だとbrowserifyで2015年ぐらいには解決していた内容のはずなんですよね。この後、歴史を辿るとTree shakingがRubyに来なきゃいけないんですよ。なんだけどDHHはimportmapだって言っていて、Tree shakingはしない側に倒れているんだけど。この後どうなるのかは楽しみに思っていて、コミュニティを混ぜて、やったことがある人たちがRubyに対してコミットしてくれたら一気に前に進めるんで、とにかくコミュニティを混ぜるっていうのは意識しながらやっていこうかなと思ってるところですね。

藤村:YAPC::Hiroshima 2024でonkさんと一緒だったんですけど、YAPCは混ざる場所なんですよね。PHPコミュニティの勢いがすごくて僕はぶっ飛ばされて、夜ばったりonkさんに会った時に「PHPの人たちすごいっすね」って言ったら、満面の笑みで「そうなんですよ」って言ってたのを思い出しました。

もう一個いいですか。生産性の話がありましたが、生産性が高いチームって何ができているといいんでしょうね?

onk:言われたことが爆速で出てくるっていうのが一番いいのかなと思ってます。これをやりたいって言ったら、できますよってさらっと言えるぐらい素振りがすべて整っている状態。

藤村:素振りね。チームでも素振りしてますか?

onk:会社のエンジニアのバリューの中に「おもしろさ」っていうのを入れていて、これが評価項目にも入っているので、みんな何か新しいことをやり続けなきゃいけないっていうのは意識してますね。

藤村:素振りなぁ。

onk:あとはもう最近のWebアプリケーション開発ってチームじゃないとできないサイズのものが多い。個人最速ももちろん必要なんですけど、チームで最速にする方法は、これはもっと突き詰めていきたいと思ってますね。

藤村:チームで仕事をする上でここは改善できる、やり方の工夫があるんじゃないかみたいなジャンルとかあるんですか?

onk:僕が苦手なところなんですけど、チームの雰囲気をとにかく高めるムードメーカーをどう評価するのかとか、各チームで一人ずつちゃんと配置するにはどうするかを悩んでます。

藤村:そうですよね。正式に評価する文脈があんまりないような気がしますよね。

onk:ソフトスキルの評価って難しくて、でも、いることによってチームの空気が上向きになっているっていう異常なことなんですよ。

藤村:生産性の積み増しって他の人に波及してるところ考えるとすごいですよね。

onk:そうなんですよね。プランナーがこんなことできますかって言った時に否定から入らずに面白いですねから入る人は、チームにいると新しい意見がバンバン出てくる。それこそ心理的安在性が高まっていくと思ってるから、こういうのをうまく評価できるチーム、社会にしていけるといいなと思ってます。

藤村:いいですね。今後の展望や野望を聞いて美しく着地しようと思ったけど、めちゃくちゃ仕事っぽい話を最後にしてしまった。

参加者からonkさんへ質問

藤村:皆さんからonkさんに聞きたいことはありますか?

参加者 1:ありがとうございました。途中で気になってたんですけど、ドリコムさんの時に新しいIPと契約してリクエストが100倍になるっていうのがあったと思うんですけど、当時のイメージが全く分からなくて、2005、2006年は負荷試験をどういうふうにやってたんですか?

onk:負荷試験をやらないとリリースしちゃいけないっていうふうに会社の中でルールにしたっていうのが当時ですね。これはリリースしたら負荷試験をしてなかったせいで落ちたとか、イベントを作ってリリースしたらこれも落ちたみたいなことをよくやっていて、やらかした結果として、リリースしたらちゃんとユーザーに遊びを提供できるっていうのが要件のうちだと。なので要件を守るために負荷試験を含めるように変わったのが当時の出来事ですね。負荷試験のやり方に対しては、今は負荷試験ツールはいっぱいあるわけだからそれでシナリオを作ってバンバン流せばできると思います。当時はJMeterで作ったりしてました。

参加者 1:出てきつつはあった?

onk:さらに10年前ぐらいからそういうツールはありますね。存在はして使いこなし方を知っているウェブアプリケーションエンジニアが異常に増えたのがあの時期だと思います。

参加者 1:ありがとうございます。

参加者 2:なんで髪を切ったんですか?

onk:最近、本屋大賞を取ってくれたので言いやすくなったんですけど、『成瀬は天下を取りにいく』っていう本がありまして。この中で女の子が高校に入る時に坊主になるんですよ、3年後にその髪がどこが何センチ伸びたのか、頭の上とこめかみはどれぐらい長さが違うのかを測ったというエピソードがある。夏にその本を読んで、暑かったんで、じゃあ坊主にしてそこから伸ばすかと思って10ヶ月経ちました。

参加者 2:髪を切った直後の周りの反応はどうでした?

onk:完全に別人扱いされました。髪を切る前は胸くらいまであったんですよね。というので、これは首の後ろがまじで暑い時期にそんな本を読んだのが悪かったです。完全にはずみですね。

参加者 3:お話ありがとうございました。onkさんのご家族からonkさんはどのように評されているんでしょうか?

onk:わからないな。生きていてよかったなじゃないですかね。僕が大学の時に父親がオレオレ詐欺に引っかかってるんですよね。すごい心配されている存在で、オレオレ詐欺の題材になりそうなことをやらかしそうだと思われているんですよ、泣きながらお父さんごめんなさいみたいな電話がかかってきたという出来事がありました。

参加者 4:onkさんといえば、RubyKaigiのヘルパーとしてもご活躍をされている印象があるんですけれども、RubyKaigiにヘルパーとして志願をされるその心の是非を伺ってみたいです。

onk:Rubyistなのでっていうのが一番なんですけど、RubyKaigiに対してもお客様以上の気持ちを持っている。仕事でRubyを書いてないので登壇側に回れない、登壇できなくてただ遊んで飲んだくれに行くだけっていうのはいかがなものかと思って。なので多少恩返しできればいいかなぐらいの気持ちでヘルパーをやり始めました。ドリコムにいた頃はCFPは毎年出せていたんですよね、で、はてなに入ってCFPを出せなくなってしまったので代わりにヘルパーをやり始めた。でも今年はCFP出せました。

藤村:では、そろそろ終わりにしようと思います。お越しいただいたみなさん、onkさん今日はありがとうございました。(完)

Rubyエンジニア募集中&イベント情報はXをチェック

STORES ではRubyエンジニアを募集しています。

jobs.st.inc

また、STORES ではRubyistめぐりをはじめとするさまざまなイベントをオンライン、オフラインで開催しています。 イベント情報はXで投稿していますので、 @storesinc_techのフォローをお願いします!