こんにちは! hachidori株式会社 です。
創業6年目、チャットボットSaaS『hachidori』やアルバイトコミュニケーションアプリ『CAST』、ビデオメッセージツール『recit』提供する弊社は、この度、技術顧問として 日本国内で唯一のRubyとRuby on Rails コミッターである松田 明さん をお迎えしました。
プレスリリース
松田さんは日本の地域 *.rb の走りとなるコミュニティ「Asakusa.rb」の創設者です。世界最大のRubyカンファレンス「RubyKaigi」のチーフオーガナイザーでもあり、現在は複数のスタートアップ企業の技術顧問を務めています。
Rubyエンジニア含む技術者の間でも非常に有名な松田さん。 今回は、そんな松田さんのRubyとの出会いやRuby・コミュニティへの愛、一緒に働くエンジニアに求めたい意識などについて インタビューを行いました。
松田さんとRuby / Ruby on Rails Rubyとの出会い ーまずは、松田さんのこれまでの経歴を簡単に教えてください。
2001年くらいからプロの開発者として、プログラマーをやっています。元々はVisual BasicとかJavaとかで業務アプリケーションを作っていましたが、Ruby on Railsと早いうちに、ver1.0になるかならないかの頃に出会いました。そこから15年......もっとですかね?Ruby一本で使い続けています。
ーver1.0、つまりRuby on Railsがベータの頃から使われてるんですね。
そうです。最初の頃は仕事のためにRubyを使っていたのですが、いつの頃からか自分でもRubyとRails自体の開発に関わるようになりました。いわゆるオープンソース活動を始めて、結構前にRubyとRails両方のコミット権限をもらってという感じです。
ーRubyとの出会いについて、もう少し詳しく聞かせてください。
Ruby on Railsが出てくるまでは、Rubyは完全にHobby Languageだったので、仕事で使う人なんていなかったんですよね。使いようがなかった。最初の最初で言うと、Rubyに出会った当時はRubyでちょっとしたゲームを作っていました。
当時はWindowsが主流だったと思いますが、DHH(David Heinemeier Hansson: Ruby on Rails生みの親)がブラジルのカンファレンスで行った 「僕が作ったフレームワークで、15分でブログを作る」というライブコーディングを記録したYouTube動画 でmacを使っていて、そこから一気にmacが流行り始めた、そんな頃ですね。
ーありがとうございます。 現在は、hachidoriでの技術顧問以外だとどのような取り組みをされているのでしょうか?
ここ数年くらいはいわゆるTechnical Advisor(技術顧問)業を複数の会社で行うようになっており、これはお客様を複数持った方が相乗効果があるように感じています。それぞれの会社で吸い上げたお困りごとを解決し、それを他の会社でも横展開することによって、お客様のメリットを最大化できるような動きを目指しています。
自分の軸足はオープンソース開発者なので、自分たちが作っているオープンソースプロダクトを使ってくれている上で発生した問題は、なるべくアップストリーム側で解決するようにしています。
「日本っぽい使い方」は、世界ではマイノリティ ーオープンソース活動の中で、プロダクトの方向性の意思決定などにも関わっていらっしゃるんですか?
僕は、少なくともRuby on Railsにおいてはそのようなことはやらないようにしています。ちょっとラディカルで偏りすぎているかなと自分でも思うのですが、僕はDHHの大ファン・信者で、彼の言うことが全部正しいと思っています。彼が作るものの手伝いをしたい、という感じです。
現場ではフレームワーク作者たちが想定もしていなかった使い方をするもので、特に日本は特徴的なので、日本で日本人が使うに当たって不便に感じるところをフィードバックしているような感じですね。
ーつまり、「日本っぽい使い方」は、世界ではマイノリティな作法ということですか?
その節はあると思います。1つ象徴的なのが「確認画面」です。今のRailsはいわゆるCRUD(Create、Read、Update、Delete)をベースにしていますが、確認画面はそのどれでもない。あれをRESTのAPIに載せるのが非常に難しく、個人的には最適解がまだないです。
その他、論理削除なども日本人が好みがちですよね。あとは i18n ですね、あれはアメリカ人が作ったフレームワークで、日本でやっている人がいなかったので僕がやったりしました。
松田さんについて ー続いて、ちょっと趣向を変えて松田さんのパーソナルな部分について少しお伺いできればと思います。 これまでキャリアを積み重ねていく中で、ターニングポイントがあったのではないかと思います。そのポイントにおいて、自分自身がどちらを選ぶかの判断軸などはありましたか?
うーん。回答が難しいですが、Rubyを触り始めたからのことで言うと簡単で、「迷ったら楽しそうな方」。自分にとって楽しいことしかやっていないです。
よく「Rubyは楽しい言語」と言われるのですが、それはRubyそのものもそうですし、Ruby on Rails、Rubyistと呼ばれるコミュニティもそう。みんなポジティブで、とにかく楽しそうにやっていますね。
ー松田さんは本当に楽しそうにRubyに関わっていらっしゃいますよね。 今だとオンラインになってしまうかとは思いますが、松田さんはどういうタイプの人間に興味を持つことが多いですか?
自分で何かしら、その人にしかできないアウトプットをしている人ですかね。アウトプットという言い方はなんだか意識が高くて嫌なのですが......笑 何かを作っている人で、その何かが上手い下手関係なく「その人ならでは」みたいな味が出ている人が好きです。
ーアーティストに近いような?
プログラミングで言うと、お仕事であればアーティストであってはならず、むしろ歯車である必要があります。一方、オープンソースの世界は自己表現です。なぜお金にならないようなことをその人がやっているのかが滲み出ているようなプロダクトじゃないと面白くない。個性的で、アーティスティックなプロダクトって納得がいきますし、アーティストみたいなプログラマーが好きです。
ー仕事でアーティスティックになるのは難しいですよね。 パーソナルな質問はこれで最後ですが、最近はどのように1日を過ごしていますか?
夏休みで、子どもたちが24時間家にいるようになってだいぶ変わってしまいましたが、基本的にはPCの前に座って書けるときはパッチを書いています。そして書けなくなったら寝る、という感じです。笑
エンジニアリング・採用について ー続いてエンジニアリングと採用についてお伺いします。 hachidoriはまだまだジュニアなチームです。品質の高いコードや設計を行うために継続すべきことがあれば、教えてください。
Rubyプログラマに限定して言うと、Rubyに積極的に関わるのが良いと思います。
Javaやマイクロソフトが作ったものだと「海外の大きな会社で作ったものを単に使わせてもらっている」のような受け身な立場でしたが、Rubyには人間味・コミュニティがある。距離感の近い仲間たちが支え合ってエコシステムを作っている感覚があります。
もしRubyに対して、単にお客様的な立場で単に使っている人がいたらもったいない。ぜひ一緒にコミュニティやってる側に足を踏み入れて欲しいなと思います。そうすると続けることは苦ではなくなるし、友達が多いと情報も入ってきやすくなります。
ー社内のエンジニアに、どのような意識を持って働いてほしいなどはありますか?
何よりも、綺麗なコードにこだわってほしいです。 先ほどのコミュニティの話とも繋がりますが、例えば僕が書いたコードをインターネットに放流すると、コミットをめちゃくちゃ読まれます。その裏返しで、僕もたくさんのコミットを読んでいるのですが......その「見られる意識」を持つと、「人に読まれて恥ずかしいコミットは出せない」という気持ちになります。綺麗に磨き上げた作品をプッシュするような習慣になると、自然とその姿勢が仕事でも出てくるのかと思います。
人に見られることを意識したコードを書いてほしいですし、オープンソースはその手段としてとてもおすすめです。チームの中でそれができていると、お互い働きやすいというメリットもありますね。
ちなみにこのコミットの話は単純な意識の話ですが、どこの会社に行っても必ず言うことで、かつできている会社はありません。実際にhachidoriもリポジトリを見て、正直なところ「コミットが雑かな」と言う感想は持っています。そしてそれをみんな気にしていないように見えるので、意識してほしいです。
ー先日、すでに松田さんからさまざまなご指摘をいただきました。開発体制を良くしていくため、一つずつ解決していきたいと思います。 併せて先日、客観的な立場でhachidoriのメンバーに触れ合ってもらいました。現時点でhachidoriに合いそうな人はどのような人だと思いますか?
人数がまだ少ないと思うので、指示待ちよりも積極的にガツガツ仕事取りに来て幅を広げてくれる人。多分、今のフェーズなら自分の提案もスッと上まで通るかと思います。そこが楽しい、やりがいと思える人ではないでしょうか。
ーおっしゃる通りで、どんどん提案してもらいたいなと思っています。ちなみに採用において、「人のここを見る」などの観点はお持ちですか?
この世界において、「今これだけのことができます」「過去にこれだけの実績があります」はそれほど重要ではないのかなと思っています。なぜなら、コツ掴むのが上手い人だったらすぐキャッチアップできるからです。採用においてはその勘所を測れるようなものがあると一番良いとは思うのですが......そこが難しいところですよね。
ただ、実績とポテンシャルを比較することがあれば、間違いなくポテンシャルを選びます。そのほうが、一緒に働いていて面白いと思います。
ーありがとうございます。最後に、技術顧問としてhachidoriでどんなワークをしていこうかと言うイメージがありましたら教えてください。
短期的には、今Rubyで書かれているプロダクトたちにテストを書いてクオリティを上げていくことです。
中長期的には、僕が知っていることは全て教えたいなと思います。上からに聞こえてしまうかもしれませんが、ただ僕が知っている全てを社員の皆さんに還元したい、惜しげなく全て伝授したい。皆さんも積極的に盗んでほしいです。
現在の僕は、いわば「助っ人の火消し」。そういう役目の人間がいなくなることの方が会社にとって健全だと思うので、僕が直接手を出すみたいなことがいっさいなくなるように早く持っていきたいですね。
ー松田さん、ありがとうございました!これからよろしくお願いします。
採用情報 hachidori株式会社は松田さんを技術顧問に迎え、これから開発体制をさらに強化していきます。その中で採用も加速させていく予定です
基本的には正社員の採用となりますが、職種によっては業務委託で入っていただくことも可能です。選考とは関係ないカジュアルな面談からさせていただく形ですので、ぜひWantedlyよりご連絡ください。
・エンジニアマネージャー
・フロントエンドエンジニア
hachidori株式会社では一緒に働く仲間を募集しています