つらさと喜びがプロをつくる:「Tuning the backend Contest」がもたらしたもの
ー「3日以内に解決せよ」ー
実践の開発現場さながらの環境に立った時、42東京の学生がどこまで頑張れるのか。そんな学生の奮励を期待して、協賛企業のドリーム・アーツと共同で、3日間のチューニングコンテストを開催しました。
総勢102名の学生が奮闘した42時間の様子を、『WIRED』日本版の元編集者で現在フリーランスとして活動する矢代真也さんの密着レポートでお届けします。
(Photo by Victor Nomoto)
「どこから手をつけたらいいか分からないなかで、黒い画面と向き合いつづける。バックエンドの改善という仕事は地味です。ただ、チームでの作業が実って処理速度が大幅に向上したときには、大量のアドレナリンが出る。勉強だとできない、そんな体験をしてほしい」
フランス発のエンジニア養成機関42 Tokyoの学生を対象に2022年4月15日から17日まで開催された42時間耐久バックエンドのパフォーマンスチューニングコンテスト「“Tuning the backend”Contest」(以下、TtbC)。ITソリューションの企画・開発を手がけるドリーム・アーツが企画・協賛を行なった同イベントの開会式直後のインタビューで、同社のCTO・石田健亮は学生への期待を込めて、こんな言葉をもらしていた。
TtbCでは、ドリーム・アーツのエンジニアが用意した架空の業務アプリが依存するバックエンドを、42Tokyoの学生が組んだ3人のチームがどれだけ高速化できるかを競う。ここで意図されたのは、「プログラミング」という行為の先にある「仕事」がもつおもしろさを体験してもらうことだ。
課題は以下のようなものだ。
クライアントは、建設機械のレンタル業を全国で営む大企業である株式会社Celloグループ。参加者は自社が提案、採用され、本番運用されて3カ月の現場状況報告SaaSサービス「Qspin」の「パフォーマンス改善チーム」として42時間のメンテナンスに取り組むことになる。運用されたサービスのパフォーマンスが低く、営業やサポートは謝罪の毎日を送っているなかで、緊急メンテナンス期間が取れたという胃が痛くなるような設定だ。
想像を超えた難問の出現
参加したのは、42Tokyoで学ぶ総勢34チーム(オンライン:25チーム、オフライン:9チーム)。学生は「Piscine」と呼ばれる入学試験を突破しているが、それぞれのバックグラウンドにはエンジニアとしての勤務経験がある人から、まったくの初心者までバラつきがある。
ただ、Piscineはただのテストではない。「学生同士で教え合う」ことを重要視する同校では、試験のなかでも受験者同士が協力して試験を突破することが求められる。そこで試された「ともにゴールに向かう」ための能力がTtbCでも試されることとなる。各チームは3人で構成され、オンラインのDiscord上やオフラインのキャンパスでコミュニケーションを取りながら課題に取り組むことが求められるからだ。
開会式で課題が発表されたあと、それぞれのチームはまずドキュメントを読み込む作業に取りかかっていた。42Tokyoではコンピューターサイエンスの基礎を固めることが大きな目標として掲げられているために、今回のような現場レベルでの開発の経験がないメンバーが多い。仮想マシンの設定など、作業の前提となる環境の構築から学ぶ必要がある人も少なくなかった。
「何からすればいいのかわからない」「正直、42時間後に何ができているか想像もできない」。そんな言葉をオフライン会場でもらしているメンバーもいた。ただ、オフラインでもオンラインでもチームメンバーがコミュニケーションをとるなかで自然と役割分担が生まれていっている印象があった。
「やみくもにいろんなことをやっても無駄です。モニタリングや計測によって、いま何が起きているのかを把握して、問題の原因と解決法に関して仮説を立てる。そんなステップをひとつひとつ進めていってほしい」。開会式で石田はこんな「ヒント」を与えていた。
プログラミング経験を整理しながら、問題を整理しつつ、メンバーそれぞれができることを担当する。圧倒的なプログラム力がある人間が一人で解決するのではなく、「問題に全員で取り組む」ことがどう実現できるのかをみな試行錯誤することとなった。
訪れた「きっかけ」
42時間のコンテストのなかで、大きく事態が動いたのが開始から15時間ほどが過ぎた16日の12時ごろ。メンターをつとめるドリーム・アーツのスタッフが課題のライブハッキングを行なったのだ。
メンターたちはオンライン、オフラインを問わず、進捗状況を確認しアドバイスを行なう「チェックポイント」の時間を設けていた。このなかで、チームによっては進捗が悪く、このままでは課題がもっている改善の醍醐味にまでたどり着けない可能性があった。そのためライブハッキングは、一旦基礎的な知識とおおまかな方向を「とっかかり」として示すことで、チーム全体の状況を平準化し、コンテストの競技性を取り戻す目的で行なわれた。
実際、オフライン会場では多くの学生がライブハッキングを食い入るような目で見つめていた。そして、ライブハッキング終了後は、もくもくと作業に没頭する。「とりあえず、ライブハッキングでメンターがやっていたことを再現する」、「ようやく道筋が見えた」。ここから20時間強、学生たち全員がドリーム・アーツが意図した「改善」に向けて歩み始めた瞬間だった。
会場から生まれる熱量
今回のイベントの特徴として挙げられるのは、コロナ禍の間隙をぬうようなかたちで、久々に行なわれたリアル会場をもつイベントだったという点だ。オンラインでの参加者もいたものの、開会式や閉会式はオフラインから中継され、メンターもふくめ20〜30人の学生とスタッフが42Tokyoのキャンパスに集まっていた。
会場では十分なソーシャルディスタンスなどの予防対策をとったうえで、学生同士が「耐久レース」の名にふさわしい奮闘を行なっていた。iMacの前に横一列に並び、作業の状況を逐一報告しながら、深夜までの作業に取り組む。机の上に並ぶ目薬、天井を向いて目を閉じ休憩する人……。会場で夜を明かした学生もいたようだ。
また、Discord上では、会場の近くでのオススメランチを教えあうなど、チームの垣根を越えたコミュニケーションも生まれていた。一つの場所で切磋琢磨しながらも、お互いを助け合う……。オンラインで課題に取り組んだチームと比較することは難しいが、オフラインにはオフラインでしか生まれない「お祭り」のような熱量が確かにそこにあった。
教えることで学ぶ
また今回のメンターを務めたドリーム・アーツのメンバーにも、大きな気付きがあったようだ。金曜日の夜と土曜日の夜、2回のチェックインのほかにも、メンターたちはオンラインオフラインを問わず巡回しながら、学生の一挙一動を見つめてきた。
そんななかで感じたことを、メンターのリーダーをつとめた矢田はこう語る。「プロの自分と学生さんを比較してしまいますね。同じ作業をダラダラするような仕事をしているのが、プロのエンジニアなのか? 知識を吸収しながら、難題に立ち向かおうとする彼・彼女たちの姿が、とにかく刺激になります」
企業が教育プログラムを提供する場合、何かの知識を学生に授けるようなイメージが頭をよぎる。ただ、実際はそうではない。教える側も学生から学ぶことが大いにある。協創をミッションに事業を行なってきたドリーム・アーツと、協に学ぶことを主眼とする42TokyoのコラボレーションによるTtbCは、「協育」ともいえる双方向に生まれる価値を生みだしていたといえそうだ。
強いエンジニアとは何か?
3日間にわたるプログラムも、ようやく終わりがみえてきた最終日。課題提出の2時間前に会場へと足を運ぶと、学生たちは、最後のねばりに奮闘していた。
システムの改善を計測するには、その検証のためのベンチマーク自体に時間が必要となる。できる仮説検証のすべてを行なうには時間が足りないともらすチームもあれば、「もっと時間をくれ!」と叫ぶチームもいた。最後の最後のタイミングで、「やっとひとつ改善ポイントを潰せた!」と歓喜の声を挙げた学生もいた。そんなそれぞれのラストスパートを経て、すべてのチームが課題を提出し、コンテストは終了した。
結果としては、優勝したチームの速度を示すスコアは「6,981」、2位のチームは「3,617」とトップとそれ以下に大きな差をつけた形となった。ちなみに最下位のチームのスコアは「66」。この数字だけみても、コンテストに参加した学生たちの能力の違いが分かる。
ただし、能力の違いを測るためだけに、本コンテストが行なわれたわけではない。冒頭で引用した石田の言葉にある通り、ここで意図されたのはプロのエンジニアとしての「体験」を提供することだ。
閉会式で石田は、こんなことを学生に伝えていた。「強いエンジニアは、知識が多いから強いんじゃない。調べものをしないと何もできない(笑)。本質的な問題を分解して、ひとつひとつを解決する姿勢こそが、強さをつくっている。金曜日の自分と、いまの自分は絶対に違うと思う。いろんなことを調べたり、作業が無意味になったり、どういうコードが遅いか、逆に速い書き方を理解したり……。今回学んだステップは、将来現場に立ったとき、大きな力になると思う」
フリーランスや社員といった定義があいまいになり、プロの定義が問われつづけるいま、キャリアを形成するルートもまた多様化しつつある。ドリーム・アーツと42Tokyoによる本コンテストが浮かび上がらせたのは、その新しい道をつくるために企業と教育機関が共に手を取りあう可能性だ。TtbCでメンターたちと学生がつくりあげたのは、プログラミングを「仕事」にし、プロフェッショナルになるためのつらさと喜びだったのだろう。
42Tokyoでは、協賛企業の支援のもと、現役のエンジニアから技術を直接学べるイベントを定期的に開催しています。
このような環境で学習をしたい皆様、ぜひ42Tokyoへの挑戦をお待ちしています。
42東京詳細はこちら▼