はじめに
こんにちは、 kashitakaです。私は先日アメリカの仮想通貨カンファレンスで3日間のハッカソンに参加しました。そこで会った参加者とチームを作り、なんとかブロックチェーン系アプリ(いわゆるdapp)を作ったわけですが、その体験がとても濃厚だったので、この場に体験レポートを書こうと思います。
自分について
普段はWeb2(従来のWebサービス)のソフトウェアエンジニアとして働いているものです。バックエンドを中心にフロント、インフラもやります。宣伝までに会社のTechBlog記事はこちら。
仮想通貨・ブロックチェーン系(以下Web3)の技術に関しては全くの未経験者です。また国際的な環境での仕事経験はなく、日本企業で働いた経験のみです。
この記事で触れないこと
私がハッカソンで扱ったブロックチェーンは技術的な面でも面白い特徴があるのですが、この記事では技術的な点には触れず、アメリカでのWeb3ハッカソンの参加レポートを主題にします。
仮想通貨カンファレンスについて
先日(2024年5月29日-31日)にテキサスはオースティンで開催された Consensus2024 というイベントに参加しました。Web3系のイベントとしてはかなり規模の大きいイベントの1つです。
私は仕事でWeb3に関わっているわけでありませんが、個人的な興味と、多くの世界的な企業が参加していることから、アメリカではWeb3が盛り上がっているように思い、日本との雰囲気の違いも感じたく参加することにしました。
当然仕事と関係ないので全額自費かつ有給を使っての参加です。自費参加なので仕事での海外カンファレンス以上に気楽でした。なので、当初は通常のカンファレンス参加者として、適当に講演など聞いて、会場を見て周りなんとなく雰囲気をわかった感じになろうと思っていました。
ハッカソンに参加することになる
カンファレンスではイベント期間の3日間をフルに使ってハッカソンが開催されていました。
Web3経験もない自分は当初はハッカソンに出るつもりは全くありませんでした。ただ、実は今回はイギリス人の友人と一緒にカンファレンスに参加しており、彼が自身のWeb3系のプロジェクトアイデアをハッカソンのピッチ枠を使って宣伝したいと言いだしました。
このハッカソンは賞金も用意されており、うまく選ばれればステージでピッチの機会も与えられるため、プロジェクトを宣伝する場としては絶好の場です。さらにハッカソンの参加費は無料なので参加ハードルはかなり低い。(すでに私は有料のDeveloperチケットを100ドル程で買っていましたが。)
友人と話し、とりあえずハッカソンに申し込んでピッチの機会を狙いつつ。様子見て盛り上がってなかったら適当に抜けようというかなりいい加減な気持ちで参加を決めたのでした。
ハッカソンの規模
参加前までは「Web3のハッカソンとかそんなに参加者いないだろう。せいぜい数十人くらい?」と思っていたのですが、当日会場に行くとハッカソン会場の開場待ちで100人以上の列ができていて驚きました。
後の運営の発表だとこのハッカソンには 500人以上の参加者で100チームが参加したようで、蓋を開けてみるとかなりの規模のイベントでした。
会場も広いイベントホールにテーブルがかなり用意されており、割と席も埋まっていました。
ちなみに、ハッカソン参加者に日本人いなかったように思います。アジア系は中国系・インド系が多かったです。私も参加してた!という方は教えてください。
オープンなチームビルド
友人と2人で会場の適当な席に座り、会場に置いてある無料の朝食を食べていると、他の参加者から驚くほど話しかけられました。大体みんな2人グループでテーブルにやって来て、簡単な挨拶をした後に、
- 「チーム探しているんだけど、メンバー募集している?」
- 「何作るつもりか教えて」
等の会話が始まり、割とみんな無計画に来てこの場で参加するチームを探しているようでした。会話を続けているうちに、「めっちゃいいアイデアだね!面白そう!入っていいかな?自分の得意分野コレコレで」等の会話に発展し、かなり気軽にチームにジョインするのでした。これから3日間開発するチームだけどそんな軽いノリでいいの?(笑)と思いましたが、とにかくカジュアルです。
また、単にアイデア交換のために隣のテーブルのグループが話しかけてきたりと会場の雰囲気はかなりオープンでした。他チームだからライバルという感じはなく、お互い楽しく頑張ろうというリラックスした雰囲気がありました。
自分も日本のハッカソンは過去に4回ほど出たことがありますが、日本だと開催前にほとんど知り合いとチームビルドを済ませておくし、なんとなく他のチームともあんまり話さない感じなので、この辺りは結構文化が違うと思いました。日本語では初対面の関係だと「ですます」口調で会話が始まりますが、それでは表現できないノリの良さがある気がします。
チームビルドできちゃって逃げられなくなる
そんな話をしているうちになんとチームメンバーが6人に増え、やるからには「賞を狙いに行くぞ!」という雰囲気に当然なり、チームの熱量と裏腹に、当初いい加減なノリで参加した自分は不安になってきたのを覚えています(笑)。
Web3開発未経験の自分がなにか戦力になるんだろうか?と不安でしたが、他の参加者もWeb3バリバリ経験者という人はそれほど多くなく、割と「Web3未経験だが興味がある」というWeb2エンジニアが多かったよう思います。まだWeb3界隈がそれほど一般的でないことが伺えます。事実、私のチームメイトも全員ほぼWeb3未経験者でした。ただし、某GAFA企業のエンジニアがサラッと自分のチームにジョインしたのは流石アメリカでエンジニアの層が厚いと感じました。
戦略はスポンサー賞狙い
このハッカソンではスポンサーが賞金を出しており、彼らの技術やプラットフォームを使うと、それぞれのスポンサーから賞を貰う可能性が高まります。そこで我々のチームはブロックチェーンを開発しているスポンサーである Sui, Stellar, Rootstock の3つのそれぞれのブロックチェーン上に、同じ機能要件のdappを構築することになりました。
担当割り振り
チーム内でSui、Stellar、Rootsock担当として3つのサブチームを作り、それぞれのチームでスマートコントラクト(分散システム上で実行されるロジックおよびストア)側と、それをフロントエンドから呼び出すフロントエンドに担当を分けました。自分はSuiのスマートコントラクト担当として、現地で会ったチームメイトのフロントエンドエンジニアとSuiを使ったdappを作ることになりました。
SuiはEthereumやBitcoinとは別のブロックチェーンです。Suiのチェーン上にスマートコントラクトを作るにはMoveという言語を使います。Suiの技術的な面もEthereumと違った特徴があって面白いのですが、今回は触れません。
英語でのチーム開発
国際的な現場での開発経験がない自分にとって、1日中英語漬けの環境は頭がはち切れるほど疲れました。チームメイトは全員英語ネイティブor現地企業勤務なので気を抜くと話についていけないし、話が急に飛ばれると文脈の推測が効かなくなり死にます。英語力的にはTOEFL100点とっているので割とイケると思ってたのですが甘かったです。特に聞き取りがしんどく、チームメイトが何かジョークを言って1人ぽかーんとしているのがツラい!
英語が一人だけ突出して下手な自分は、前半は割と黙々しがちでした。Suiのドキュメントを読んだり、サンプルプロジェクトを動かして、技術の外観を掴むように努めました。そしてドキュメントを参考に、我々のチームのdappの実装を始めました。
2日目の午前にどうにかそれっぽいものはできましたが、当然一発で動きません。試しにスマートコントラクトを呼ぶとエラーするし、コードが悪いのか呼び方が悪いのかもわからない。チームのSolidity(Ethereumのスマートコントラクト記述言語の1つ)経験者に見せると「うーん、なんかSolidityとだいぶ違うな。間違っているんじゃないか?」と言われ、方向性を見失いつつ黙々と試行錯誤を繰り返していました。
ブレークスルーは1つのアドバイスから
ある時チームメイトに調子を聞かれ、正直行き詰まっている状況を伝えると、「スポンサーブースにSuiの開発者たちがいるから直接聞くのが一番早いと思う。似たようなアプリのサンプルコードも持っているかもしれない」とアドバイスされました。彼はStellar担当でしたが、彼も疑問点は直接Stellar開発者に聞いて参考になるコードをもらったというのでした。この提案に対して私は英語での会話が億劫で正直気乗りしなかったのですが、どう考えても真っ当な指摘で、むしろやらない理由がないくらいのものでした。
とりあえずSuiの開発者に相談してみることにしました。彼らのブースに出向き、開発者の1人を捕まえ、やりたいことを色々と伝え、書いたコードを見せて疑問点を伝えました。すると、その開発者の方がとても親身に相談に乗って下さり、コードの間違いやどう書くべきかを丁寧に教えくれました。「この人はめちゃめちゃいい人だぞ!」と察した私はこの際なので、チーム内で言われたSolidityとの違いや、細かいコードの記法、特定の標準パッケージのユースケースなど他の疑問点も色々と質問し、Suiに対する理解を急激に深めたのでした。
結局、ドキュメントのどこにも書かれていない仕様もあったり、そもそも直接聞かないと動かせない問題もありました。まだ黎明期という感じで、Suiだけでなく他のStellar担当のチームメイトたちも色々とハマっていたようです。
アドバイスや賞賛をする
結果的にチームメイトのアドバイスに従ったことで大きく進捗しました。課題が解消され技術に対する理解も深まった私はチームに戻り、一気に開発を進めました。「まだハマる点はありそうだが、まあやってけば動くものが作れそうだな」という感覚も掴み始めました。開発者との会話を通して課題解決まで持っていけたことで英語にもそれなりに自信が付きました。ようやく動くものができ、進捗をチームに共有するとチームメイトたちが「おぉすごいじゃん!」と言って称賛してくました。
余裕が出てきて周りが見え始めて気がつくことは多かったです。改めてチームメイトたちの様子を観察すると、時々お互いに声を掛け合って度々話していました。進捗をチェックするための声掛けというより、「どう?いい感じ?」くらいのカジュアルな会話です。そして割とみんなわからないなりにアドバイスや、進捗があったら褒めあって進めていることに気がつきました。これは英語の下手さに関係なくチームメイトとして必要な姿勢だなと感じ、自分も時々チームメイトに進捗聞いたり、動いたものを見せてもらって賞賛を送ったり感想を伝えるように切り替えました。
後日チームメイトの1人とアドバイス文化に話したのですが、曰く、「他のメンバーの問題を聞くときに必ずしもその人がやっている分野に詳しい必要はなく、聞いてみて何か助けになれればというスタンスでいい。Rubber duck debugging という言葉があるくらい、話すだけで問題が解決されることすらある。だからWeb3素人のチームで当然お互いの担当技術なんて知らないけど問題を聞く。アメリカはこの文化があってソフトウェア企業の成長を支えてる。」 あくまで私見ですが、体験とリンクしてもっともらしい話だと感じました。
結果
話は戻り、2日午後は技術の理解が深まり、その後も詰まったら開発者に積極的に質問しに行き、スマートコントラクトが少しずつ動き始めました。会場は夕方6時に閉まるのでチームは一旦解散しつつも、夜11時ごろにzoomで繋いで少し開発を進めていました。自分も夜に集中して作業を進め、正常系のシナリオがとりあえずは動くとこまで作りました。
3日目の午前から昼にかけてはパワポを作ってスポンサーにピッチしに行きましたが、残念ながら我々のチームは賞を取ることは出来ませんでした。100チーム以上でかなり競争が激しかったようです。選ばれているチームのアイデアの傾向的には、仮想通貨に興味ない層を多く取り込めるか?ビジネスとして運営も儲かるのか?という観点が見られていたように思えます。
我々のチームのプレゼン資料もついでに貼っておきます。
まとめ
こうして3日間の刺激的なハッカソンが終わったのでした。3日間英語 + 新しい技術分野とあってとにかく頭が疲れたというのが一番の感想です。ただ、やっぱり新しい技術学ぶならハッカソンは超いい機会だと改めて感じました。3日間1つの技術に集中することで理解できてくるものがあります。
それから、人生初のインターナショナルなチーム開発を経験できたのも貴重でした。技術的なことは割と話せるし、ややこしい問題でも丁寧に説明するとちゃんと伝わって解決まで持っていけることは自信になりました。また、言語の壁があっても、姿勢として話をしにいくことが重要だと感じました。ちゃんと話せばちゃんと伝わるスピーキングスキルはあったのと、聞き取れない言葉は何度か聞き直せばなんとかなりました。ただもちろん英語は改善の余地はまだまだあり、学習のモチベーションが上がりました。
何より、もともと3日間のハッカソンに参加する予定なんて無かったけど、わざわざ有給を取って自費でアメリカのカンファレンスに参加した結果、こんなに刺激的な経験を得ることができて大変満足しました。日常を踏み外すような経験のきっかけは意外とそこら中にあって、少し無理して行動を変えてみると意外な体験に身を投じることができるものだと思いました。
というわけで、海外カンファレンスに参加する方はたまにいると思いますが、もしハッカソンがあれば参加してみるのもお勧めです!読んでいただきありがとうございました。