「Honoはあくまでオープンソースプロダクト」開発者でコントリビューターの私が会社員になった理由

近影

▲ YAPC::Asia Tokyo 2013でベストトーク賞1位を獲得し表彰される和田裕介さん(写真提供:Japan Perl Association)

エッジコンピューティング環境に適したWebフレームワークとして注目を集める「Hono」の開発者として知られる和田裕介@yusukebeさん。大学院卒業後に就職の道を選ばず起業し、その後は17年にわたりフリーランスのエンジニアとして活躍してきましたが、2023年4月に初めて就職しました。

世界最大級のCDN(Contents Delivery Network)プラットフォームを提供するCloudflareが「Hono」に注目し、和田さんをスカウトしたことがきっかけです。Cloudflareに入社した和田さんはサーバレス環境「Cloudflare Workers」上での開発者体験(Developer Experience)の向上を職務としつつ、以前と変わらずHonoの開発も続けています。

自身のブログ「ゆーすけべー日記」でアウトプットを続け、YAPC::Asia Tokyo 2012・2013では連続してベストトーク賞を獲得するなど、コミュニティでもプレゼンスを発揮する和田さんに、入社の経緯や環境の変化、また開発者体験を向上させる開発の必要性など、キャリアへの考え方を伺いました。

Cloudflareに入社してもHonoを開発している

── Cloudflareに入社されて半年以上になりますが(取材は2023年12月に実施)、現在の働き方について教えてください。

和田 Cloudflare自体は米国企業ですが日本法人もあり、丸の内にオフィスを構えています。ただ、僕自身はほとんど出社せず、フルリモートに近い形で働いています。

出社するのは、例えばチームメンバーに会うときなどです。僕のチームは世界中に散らばっているので、リアルで顔を合わせられる機会は貴重なんです。先日もUSのメンバーが日本を訪れていたので、彼を案内するために出社していました。

── 和田さんのチームはどのようなメンバー構成になっているのでしょうか。

和田 僕が所属しているのはDeveloper Relations(以下、DevRel)チームです。Cloudflare Workersと周辺テクノロジーのD1(サーバレスデータベース)やR2(オブジェクトストレージ)を使う人たちをCloudflareでは「開発者」と呼んでおり、その開発者とCloudflare製品を結びつけるのがDevRelの活動です。

DevRelチームには、現在7名のメンバーがいます(インタビュー時点)。マネージャー、コミュニティマネージャー、Discordマネージャー、そして僕の役職でもあるDeveloper Advocate。ただし僕の業務は、一般的なDeveloper Advocateとは少し違うかもしれません。これは僕がCloudflareに入社した経緯にも関係しています。

── 入社のきっかけはHonoの開発とのことですが、経緯を詳しく聞かせてください。

和田 Honoは僕を中心としたコントリビューターが開発しているフレームワークで、Cloudflareに入社する前から開発しています。当時の僕はCloudflare Workersに夢中になっていて、アプリケーションを開発するためにまずフレームワークのHonoを発表したのですが、それがCloudflareの社内で話題になっていたらしいんです。

入社して社内チャットを見たときに知ったのですが、さかのぼっていくとと僕の話をしているスレッドがあったんですよ。「あのHonoというフレームワーク、なかなかいいぞ」「なんか面白いやつがいるな」みたいな会話があって(笑)。そこで話に加わっていたグレンGlen Maddernが、その後本当に僕をCloudflareに誘ってくれたんです。

入社前のタイミングで今の部署のボスとDMでやりとりすることがあって、「君は開発がやりたいのか、それともAdvocateがやりたいのか」と聞かれたんですが、僕の答えは「both(両方)」でした。

── 開発とDevRelの両方を満たすのが、現在の業務ということでしょうか?

和田 Honoを良くすることで、多くの開発者にHonoを使ってもらい、それはCloudflare Workersを使ってもらうことにつながります。ということはつまり、Honoを開発することがDeveloper Advocateとしての仕事にもなっているわけです。だから業務時間中にもめちゃくちゃHonoの開発をしています。

── 確かに一般的なDeveloper Advocateとは違いますね。

和田 ただし、HonoはCloudflareのプロダクトではありません。僕が入社したことで、HonoもCloudflareの公式フレームワークに思えるかもしれませんが、そうではないのです。Honoはあくまでも僕を中心としたコントリビューターによるオープンソースのプロダクトです。ここはすごく大事なところだと考えています。

▲2023年10月に開催されたCloudflare Meetup Nagoya #3より(撮影:Katz Ueno @katzuenoさん)

Honoをフレームワークのグローバルスタンダードに

── そもそも和田さんがHonoを開発したきっかけについて教えていただけますか。

和田 HonoはもともとCloudflare Workers向けのフレームワークとして、2021年12月に開発をスタートしました。動機は単純で、Cloudflare Workersで動くアプリケーションを開発するためのフレームワークが世の中にあまりないと思ったこと。それから、ルータ1を自作してみたかったことも理由の1つですね。

Hono[炎]っていうイケてる名前のフレームワークを作っている

── 和田さんは2013年にYAPCで「Mojolicious」というPerlのフレームワークについて講演され、ベストトーク賞を獲得されています。昔からフレームワークがお好きだったのでしょうか。

和田 そうですね。当時からアプリケーションだけでなく、そのためのフレームワークも自作していました。フレームワーク開発って「車輪の再発明」みたいなものなんです。それこそ、Mojoliciousを使えばいいのに、わざわざフレームワークを自分で開発して何が楽しいんだって思われそうですが、これが面白いんですよ。フレームワークの開発って、その人の性格がすごく反映されるんです。

例えば、フレームワークでコンテキストを扱う際、どういう変数名で扱うことを推奨するかという点1つをとってみても、人によってさまざまです。そのままcontextと書くフレームワークもあれば、省略してctxと書くフレームワークもある。ちなみにHonoの場合は、ただcと一文字書くだけです。実はこれはMojoliciousの書き方と同じなんです。見る人が見れば、HonoはMojoliciousから影響を受けていることが分かるわけです。そういう開発者の個性が見えるところがすごく面白いんです。

Mojoliciousでつくる! Webアプリ入門 - Speaker Deck

── もともとフレームワーク開発が好きで、そしてCloudflare Workersに夢中になった。そこから生まれたのがCloudflare Workers向けのフレームワーク「Hono」だったわけですね。

和田 そうですね。ただ、HonoはCloudflare Workers専用というわけではありません。最初はCloudflare Workers向けに開発しましたが、すぐにFastly ComputeやDeno、Bunなどのランタイムにも対応させました。Cloudflare Workersだけに対応させることもできましたが、あえて他のプラットフォームでも使えるようにしたのです。

── それはなぜですか?

和田 いろいろなプラットフォームで使ってもらうことが、結果として製品のクオリティを上げることにつながるからです。もし、あのときCloudflare Workersだけに閉じていたら、今みたいに多くの人に使ってもらえるフレームワークには成長しなかったでしょう。そう思うと、たとえ僕がCloudflareに入社したからといって、Cloudflare Workersを贔屓するようなことはしたくないんです。そんな想いをCloudflareも尊重してくれました。

── 一般的には自社で独占したいと考えそうなものですが、Cloudflareはそうではないのですね。

和田 はい。Cloudflare自体が僕と同じような思想を持った会社なんです。例えば、JavaScriptペースの開発環境を標準化するコミュニティがあって、この標準化が実現すればCloudflare Workersで動いていたJavaScriptを他のプラットフォームでも動かせるようになります。このコミュニティにはCloudflareのメンバーも参加しているんですよ。

Web相互運用性JavaScriptランタイムコミュニティグループ - The Cloudflare Blog

── 開発環境の標準化が実現すると、Cloudflare Workersのシェアが下がってしまう可能性もあると思います。にもかかわらずCloudflareが率先して標準化を進めようとしているのですね。

和田 そうなんです。自分たちのプラットフォームで囲い込むのではなく、オープンにすることがエコシステム全体のためになると考えているのです。

── そうした会社だからこそ、Honoを自社で独占しないという和田さんの考え方も理解してくれるのでしょうね。Honoの今後については何を目指していきたいですか。

和田 大きな目標としては、HonoをExpressやNext.jsに換わるようなフレームワークにしたいと思っています。そのためにもHonoをもっと広げていかないといけません。いろいろな人を巻き込んでHonoの開発を進め、さらに先ほど言ったエコシステムも充実させていく必要があります。それが結果的に開発者体験の向上につながると考えています。

もちろん1人ではできないので、オープンソースソフトウェアを開発しているエンジニアコミュニティとも連携しながら進めていきたいですね。

組織内の「政治」が苦手で会社員にならなかった

── ここからは和田さんのキャリアについてお聞きします。大学院卒業後、就職することなく起業され、その後も一貫してフリーランスで活動されてきました。そもそもなぜ就職しなかったのでしょうか。

和田 就職しなかったのは、僕が組織内の「政治」が苦手だからというのが理由です。何かをやろうとしたときに、会社だと関係者に根回ししたり説得したりする必要が出てくることが多いじゃないですか。それを「政治」と呼んでいます。それに行きたい会社もなかったんです。当時はテレビ局や広告代理店が人気でしたが、そういう会社にも入りたくなかったですし。そんなとき、父との会話で「起業しないか」という話が出て、じゃあやってみようと。

── 先ほどの話からすると、Cloudflareはあまり「政治」がなさそうなイメージですね。

和田 そうですね。その理由として、Cloudflareが非常に多様性のある会社というのは大きいと思います。多国籍な人たちがフルリモートで協力しながら仕事ができるということは、それだけコミュニケーションレベルが高いわけですから。チャットでもお互いにアイデアを出し合って、アイデアにアイデアをどんどんかぶせていく文化があるんですよ。それがめちゃくちゃ楽しいですね。

── それは、和田さんがフリーランスとして日本企業とお仕事されていたときのコミュニケーションと比べても違う印象ですか?

和田 違いますね。やはり全員が同じ方向を向いているのは大きいと思います。じゃあなぜ同じ方向を向けるのかといえば、自社ですばらしいプロダクトを持っているからです。Cloudflareは自分たちがほしいものを自分たちで作っている会社なんです。だから同じ方向を向いて、前向きなアイデアが出せるんだと思います。

とはいえ、多少は「政治」もありますけどね。Honoはオープンソースなので、好きなことを言われることもあります。「この機能入れてほしい」とか「こんなふうに修正してほしい」とか。それで機能を追加すると、今度は「どうしてそういう設計にしたんだ」とか「なんでこのAPIなんだ」とか聞かれたり。それをまた説明しているときに、「政治してるな〜」と感じますね(笑)

── そういう意味でもHonoが和田さんを中心としたコントリビューターに属しているのは大事なことかもしれませんね。

和田 そうですね。Honoはコントリビュートするための注意書きに、「これは僕が趣味で始めたものだから、趣味としての楽しさはなくさないように開発する」という旨を明記してあるんです。そうやって明言してあるんで、Honoに関しては「政治」も最小限で済むんです。

── 社会人17年目にして初の会社員生活を送られていますが、フリーランスの頃と比べて何か変わったことはありますか。

和田 うーん、大きくは変わらないかもしれませんね。フルリモートなので通勤する必要もないですし。大変なのは定期的なミーティングのときくらいですね。さっき言ったようにチームメンバーが世界中にいるので、時差がかなりあるんですよ。誰かが犠牲になる必要があるので、僕が泣いています(笑)。定期ミーティングは夜の0時半スタートです。

── 多くのメンバーがいるタイムゾーンを基準にするとどうしてもそうなってしまいますね。ちなみに会社員になってよかったことは?

和田 事務的な作業を会社がやってくれることくらいですかね。そういえば、僕の小学生の頃の夢は「サラリーマンになること」だったんです。その夢がようやく叶いました(笑)

開発者コミュニティでの原体験が今につながっている

── 今後のキャリアについては考えておられますか? 例えばいつかCloudflareを離れるとしたら、また起業するのかフリーランスに戻るのか、あるいは別の会社に就職されるのか。

和田 とりあえず起業はもうしないでしょうね。やっぱり起業ってすごくエネルギーを使うんです。もうそれだけのエネルギーはないかな。それよりも、好きなプロダクトがあるところに行きたいですね。最近気づいたんですが、僕はコンシューマ向けのプロダクトを作りたいわけじゃなくて、むしろ開発者のためになるプロダクトを作る方が楽しいタイプなんです。開発者がいかに気持ちよく開発できるか、やりたいことがすぐに見つかるかといった、開発者体験を高めていきたいんです。

面白い話があって、うちの部署が出した求人の募集要項にも「developer experience」つまり開発者体験という言葉が出てくるんです。つまり、エンジニアのロールとして開発者体験の向上が明言されているわけです。

── このインタビューでは「開発者体験」というキーワードが何度か登場しています。和田さんは以前から開発者コミュニティでも熱心に活動されていますが、開発者について特別な思いがあるのでしょうか。

和田 僕は1981年生まれなんですが、少し上の'76世代のWebエンジニア、宮川達彦@miyagawaさんたちの影響は大きいと思います。Shibuya.pm2に初めて行ったときに「宮川さんだ!」って興奮しながら名刺を渡したことを覚えています。今から思うとコミュニティの勉強会で名刺というのはあまりふさわしくなかったかもしれないですが(笑)、そこでコミュニティの楽しさを知りました。

── コミュニティの楽しさは、どういったところにあるのでしょう?

和田 コミュニティって年齢や所属組織に関係なく、好きな技術について同じ土台の上で話せるのがすごくいいなと思うんです。この前は、面白いなと思って話していた相手が大学生だったりしましたし。

── 技術の話をフラットにできるコミュニティ活動を続けていたら、そうしたコミュニケーション自体が現在のDevRelという仕事になったようにも見えますね。

和田 その通りだと思います。とはいえ、DevRelで必要とされる開発者を育てるといった活動はまったくやってないんですよね。開発者向けの教科書を作るとか、ワークショップをやるとかはあり得ると思いますが。

── 和田さん自身が変わらず開発へのモチベーションを持ち続けていますね。

和田 僕は正直、プログラミングがめちゃくちゃ得意というわけではないんです。Honoのコントリビューターにもプログラミングのすごく得意な人がいて、そういう人には敵わないと思っています。

僕はその代わり「こういうものを作ったら他の人は喜ぶだろうな」ということを発見したり、それを発信するのが得意なんです。ブログの記事にしたり、セミナーで発表したり。そういうふうにプログラミングが得意でなかったとしても、技術を追求し続けることはできるんです。

── 確かに和田さんのブログ記事はたびたび話題になっています。情報の発信にはどのような考え方をお持ちなのか、最後に聞かせてください。

和田 エンジニアが技術ブログを書くことは多いですが、バズる記事はそう多くないですよね。広く読まれる記事にしたいのなら、他で読めない内容になるまで突き詰めないと意味がありません。「ちょっと試しにやってみました」というチュートリアル的な記事にもそれはそれで価値はありますが、プレゼンスの向上を目的に発信するならそこで終わらないようにするといいですね。

── 他人のためになる情報を発信して自身のプレゼンスにつなげることは誰にでもできることではないと感じました。本日は開発者に関するさまざまなお話をありがとうございました。

取材・構成:山田井 ユウキ@cafewriter
編集・制作:はてな編集部


  1. Webフレームワークにおいて、クライアントから送られてきたリクエストをもとに、対応するサーバー側の機能を呼び出すコンポーネント。
  2. Web 2.0と呼ばれる動的なWebアプリケーションが主流になりつつあった2000年代前半のIT業界で、プログラミング言語としてPerlを採用する事業者の若手エンジニアによる情報共有や交流を目的とした技術コミュニティ。2002年メーリングリスト開設。最初のセミナーを2003年1月に開催し、2006年に始まるYAPC::Asia Tokyoの母体となるだけでなく、JavaScriptなど他の言語の若手コミュニティにも影響を与えた。