企業情報

2021.08.31

社内ハッカソン「Internal Hack Day」を開催 アスクル、一休、LINE、PayPay、ヤフー、ZOZOテクノロジーズ 開発スタイルの違いとは?

画像

2007年からヤフー社内で開催されているハッカソン(※1)イベント「Internal Hack Day」は、今年で14年目を迎えます。
※1 ハッカソン:
ハック(hack)とマラソン(marathon)を組み合わせた造語。「hack」を「創意工夫」と捉え、プログラマーやデザイナーが開発するイベント

昨年2020年は、2019年10月にホールディングス体制への移行後、アスクル、一休、PayPay、ヤフー、ZOZOテクノロジーズの5社合同で初めて開催。計112名のエンジニア・デザイナーが参加しました。今年は経営統合によってグループ入りしたLINEが加わり、6社合同での開催に。今回も各社の個性を感じる3日間となりました。

今回の「Internal Hack Day」のテーマは、「Zホールディングスのシナジー創出」。
参加した6社が自由にサービスを組み合わせたり、新機能を追加したりすることで、優れた作品を生み出すことを目標に実施しました。参加者のみなさんは、どのようなシナジーの創出に取り組んだのでしょうか…? 
今回参加して感じた、各社の開発スタイル、コミュニケーションの取り方などについて、各社の「Internal Hack Day」運営メンバー、最優秀賞受賞チームのエンジニアに聞いてみました。

  1. Hack Dayなど短期間で効率的に開発するときに工夫していること
  2. 特に力を入れている、注目している技術
  3. どんなエンジニアが多いですか?
  4. ものづくりに関する社内(社外)イベントは開催していますか?
  5. CTOとの距離感はどんな感じですか?
  6. オンライン下のものづくり コミュニケーションの工夫

回答者
アスクル 大木 徳太郎さん(「Internal Hack Day」運営メンバー)
一休 山口 将希さん(「Internal Hack Day」運営メンバー、参加者)
LINE 中平 有樹さん、平賀 郁子さん(最優秀賞 / LINE賞 ダブル受賞チーム)
PayPay 大川 瑛里さん(「Internal Hack Day」運営メンバー)
ヤフー 三上 大河、大島 榛名、花岡 大樹(最優秀賞 / LINE賞 ダブル受賞チーム)、善積 正伍(「Internal Hack Day」運営メンバー)
ZOZOテクノロジーズ 光野 達朗 さん(「Internal Hack Day」運営メンバー)

Hack Dayなど短期間で効率的に開発するときに工夫していること

アスクル:
短期間で開発を行う際は、いつも以上にチームメンバーの個々の強みを発揮できるアサインを適材適所に行うこと、やること・やらないことをより強気に判断することを意識しています。

一休:
ある程度バグも容認しつつMVP(※2)で、とりあえず動くものを最短で作るということを考えています。
細かな挙動の不自然さなど細部にはひとまず目をつぶりコア機能が動くこと、その価値が発揮できていることを最優先にしています。コードもあまりきれいさを求めずに、まず動くものを作るようにしています。
※2 MVP:
Minimum Viable Productの略。想定ユーザーに対して「コアとなる価値」を提供できる必要最低限の機能を持つ製品のこと。コアとなる最小限の機能を低コスト・短期間で実装し、ユーザーからのフィードバックを得ることで、低リスクで早い段階での検証が可能となることがメリット。

LINE:
このような短期間で開発をすることはあまりないのですが「LINEらしいやり方・考え方」をまとめた、「LINE STYLE」というものがあります。全部で11個あるのですが、その中で効率的に開発をするということに近いポイントでいうと「Stay a Step Ahead」つまり、「完璧さよりもまず踏み出す勇気」というのが当てはまるのではないかと思います。
「ユーザーニーズを満たすアイデアが生まれたら、いち早く形にするために、1分1秒でも早く、全速力で行動しましょう」と書かれていて、常に意識しています。

PayPay:
常にMVPを意識して、まずは必要最小限のものを開発することを心がけています。その上で改善のサイクルを素早く回すことでユーザーの期待するプロダクトを作り上げていくようにしています。そのため、最初のフェーズにおいては、まだニーズがあるかどうかわからないものに関してスコープを広げすぎないよう気をつけています。
もうひとつの工夫として、フロントエンドもバックエンドもカナリアリリース(※3)のアプローチを意識しています。テストで十分な品質は当然担保しますが、リリースの際にそれまでに見つけられなかった問題が見つかることがあるので、小さな失敗で留められるよう常に意識しています。具体的には、本番環境とデータベースだけ共用したカナリア環境での動作確認をリリース前のプロセスと必須にしていたり、本番環境への実装時も、1%リリース、10%リリースと、少しずつ割合を引き上げていって影響を確認したり、という手法を取っています。
※3 カナリアリリース:
プロダクトやサービスの新機能を一部のユーザーが利用できるようにリリースし、問題がないことを確認しながら段階的に展開していく手法。

ヤフー:
プレゼンテーション駆動開発(※4)をしています。
そうすることによって必要な機能が絞られ、無駄な実装がなくなります。また、設計段階ではZoomをつないでおくことでスムーズに意思決定ができるようにしています。
※4 プレゼンテーション駆動開発
一般的な開発→プレゼンという流れではなく、プレゼンを先に行ってから開発する方法。解決したい課題が明確になり、プレゼンで伝えたい部分をまず開発すればよいのがメリット。

ZOZOテクノロジーズ:
今回は運営として関わったため昔を思い出して回答しますと、最終的な発表を意識するところから開発を始めていました。泣いても笑ってもプレゼン時間は90秒なので、伝えたいメッセージを決め、それが伝わるように開発します。エンジニア的には不格好でも、ともかく動くものが正義。絵に描いた餅にならないよう、動くように開発します。

一方、通常業務で短期間にという状況を考えると、技術的に後の負債になるかどうかを意識して工程の取捨選択をします。省くことでどんなに時間短縮になったとしても、リリース早々に負債となることが明らかな部分であれば、しっかり時間を取るように計画します。逆にそれ以外は積極的に省略します。その後の運用まで含めての効率が重要だと考えています。

特に力を入れている、注目している技術

アスクル:
「サーバーサイドKotlin」に注目しています。「アスクルと言ったらサーバーサイドKotlin」、と言われるように力を入れています。

一休:
「GraphQL」です。もう普通に使われているものですが奥が深いと思っています。
一休では宿泊、レストランという2つの大きな事業部があるのですが、その両方でフロントエンドとバックエンドの通信にGraphQLを使用しています。とても便利な反面、その便利さを作るためにいろんな工夫が必要で、そこもおもしろく、設計・実装しがいがあります。

LINE:
幅広くさまざまなサービスを提供しているため、サービスごとに要件が異なるので特にこれ、と言えるものはないですが、常に新しい技術は追いかけています。

PayPay:
データストレージです。Amazon Aurora、TiDB, DynamoDBなどPayPayの大量トランザクションを効率的かつ安定的に処理するために、案件ごとに適したストレージを選択しています。
また、AWS Fault Injection Simulatorにも注力しています。本番環境の負荷試験環境において本番同等の負荷をかけながら、意図的にAWSサービスをダウンさせて、安定性の評価と改善を行っています。

ヤフー:
ZホールディングスではAIテックカンパニーをうたっており、そのグループ会社であるヤフーでは、さまざまなサービスでAIを活用しています。さまざまな活用事例を公開していますので、こちらからご覧ください。
最近ではZホールディングスのグループ各社と共に「Z AIアカデミア」を発足するなど、AI人材の育成にも力を入れています。

ZOZOテクノロジーズ:
私個人としては、AWSのストレージとデータベース系サービスに注目しています。ストレージではEBS(Elastic Block Store)やS3(Simple Storage Service)など、データベースではRDSやDynamoDBなどです。それぞれに特徴があり、目的によって選びがいがあります。
組織としては、つい先日定めた標準的な技術スタック(一つのアプリケーションを構築・実行するために使用される一連のテクノロジーサービス)に注目が集まっています。
プログラミング言語としてJavaとGolang、ML・データ系でPython。インフラ基盤としてAWS、ML・データ系でGCPです。その上でKubernetesを使っているプロダクトが多いですね。

どんなエンジニアが多いですか?

アスクル:
主体性を持って、自ら行動できるエンジニアが多いです。また、さまざまな業務部門とコミュニケーションを取って仕事をするケースが多いので、コミュニケーション能力が高いエンジニアも多いと感じています。

一休:
スキルでいうとアプリケーションエンジニアはウェブフロントエンド、サーバーサイドどちらも開発することが多いです。
また、開発では事業成果を意識しているエンジニアが多いのも特徴です。何か新しい技術を選定するにも、それが事業にどうプラスになるのか、ただその技術を使いたいだけではないか、という点はしっかり検討しています。

LINE:
LINEは海外にも開発拠点があるので、さまざまなバックグラウンドを持った優秀なエンジニアが多いと思います。「チームとして作る」ということを意識している社員が多いので、コミュニケーションを円滑にしながら進めるという姿勢があると感じています。

PayPay:
全エンジニアの70%が40カ国以上から集まった海外メンバーで構成されていることもあり、お互いの価値観や文化の違いを尊重し受け入れながらプロジェクトを進められるメンバーが集まっています。メンバー同士の助け合いの意識も強く、何か少しでも異常があると、すぐオンライン上で集まって協力して原因を突き止めて対処しています。

ヤフー:
100以上のサービスをユーザーに提供しているヤフーで特徴的なのは、特定領域に偏ることなくフロントからバックエンドまで幅広い領域で活躍している多数のエンジニアたちがいることです。また、CTOの藤門が常々話しているのは「技術は変化しても、マインドは大きく変わるべきではない」ということ。
「すべての結果を自分ごとにする」「社外に対してオープンになる」「困難なことにチャレンジする」という社内で掲げられているクリエイターマインドを意識して開発に取り組んでいる方の存在が多く見受けられます。

ZOZOテクノロジーズ:
プロダクト愛の強いエンジニアが多いです。プロダクトへの貢献ができれば使用技術は問わないとまで言うスタッフもいます。また、ファッション好きな社員が多いため、それが競争力の源泉につながっていると感じます。加えて、周囲のメンバーと協力、協調して成果を出すことや、周囲を思いやる行動を取ることを皆が意識しています。

(画像:アフロ)

ものづくりに関する社内(社外)イベントは開催していますか?

アスクル:
エンジニアの業務の10%を「KAIZEN活動」という時間に充てており、業務上の困りごとをハックする取り組みを実施しています。
具体的には、「アスクル」をハックして、テクノロジーを使って会社の課題を解決するハッカソンイベントを随時実施しています。

一休:
社内、社外の両方で勉強会を行っています。コロナ禍でリモートになってからはほとんど行えていないので、社員がリモートにも慣れてきたので、少しずつ再開したいと思っています。

LINE:
話題の技術や社内ツール、開発手法について共有する「Tech Talk」という社内イベントを定期的に開催しています。
また、長期休暇を挟む時には社内の有志で「何かお題を設定して作ったものを発表する会」というのを開催するなど、有志が集まっての比較的ライトな機会も実施しています。

PayPay:
毎週金曜日に全エンジニアが集まり「All Hands Meeting」を開催しています。新しくリリースする機能のデモや、課題の共有などが話されます。また、誰でも他薦ができる「Rock Star」という表彰制度があり、すばらしい仕事をしたメンバーを表彰しています。他にはチームごとの「book club(輪読会)」や技術共有のためのナレッジシェアリング会も毎週行っています。

ヤフー:
今回行われたZHDグループ向けのInternal Hack Dayとは別に、社外向けのHack Dayを開催しています。次回は9月25日から10月10日に「Digital Hack Day」として開催します。
他にも学生向けのハッカソンイベントとしての「Hack U」や、「Bonfire(ヤフー主催の技術・デザインコミュニティ)」「Mixleap(ヤフー大阪オフィスで毎週開催しているイベント)」といったさまざまな勉強会も開催しています。社内でもさまざまなLT会(※5)が開催されています。
※5 LT:
Lightning Talks(ライトニングトーク)の略。勉強会やイベント、カンファレンスなどで行われる5分程度の短いプレゼンテーションのこと。

ZOZOテクノロジーズ:
過去には、開発合宿というイベントがありました。温泉旅館の大部屋にみんな集まって黙々と開発します。いわば「Internal Hack Day in Yugawara」です。業務として1泊2日の時間を利用するもので、業務に貢献できるもの、業務の効率をあげるようなものを作るというテーマ設定でした。現在はコロナ禍ということもあり、開催が延期されていますが、第2回があれば参加したいと思っています。
その他、社内では各プラットフォーム(iOS、Android、フロントエンド、バックエンド、SREなど)がそれぞれ技術共有会というノウハウ交換イベントを月に1回開催しています。

CTOとの距離感はどんな感じですか?

アスクル:
CTOとの距離はとても近いと感じています。上下の垣根なく、各エンジニアとの技術的な検討や議論もフラットにできる関係性です。

一休:
近からず遠からずという感じで、ポジションによっては毎日ミーティングしたり相談したりしているという人もいます。
コミュニケーションの頻度が多い人は限られているかもしれませんが、何か相談があれば声をかけて話せる距離感です。

LINE:
技術系の役員に直接質問が出来る社内イベントが開催されています。テーマを限定せず、CTOを始めとした役員たちにカジュアルに質問ができるので距離感は以前よりも近くなっていると感じます。

PayPay:
CTOが、PayPayに技術提供するPaytm (インド・カナダ)のグループ会社Paytm Labs(カナダ)の社長を兼務していることもあり、会話する頻度は高くないですが、必要に応じてPaytm(カナダ・インド)での取り組みなどを共有してくれるため、常に日本にはない価値観をインプットしてもらっています。また、ジャッジメントをする上で、いろいろな判断軸があって決断に迷う際にも、プロダクトドリブンな目線でシンプルに優先順位を決め、物事を前に進めてくれています。

ヤフー:
CTOはヤフーに新卒入社後、さまざまなサービスでの開発経験を経てCTOのポジションに就任したため、現場の状況も理解してくれており社員にとっても身近な存在です。
もちろん、ビジネスをドライブするために技術側からの貢献に向けて働きかけなければならないという役割もありますが、開発現場でのアウトプットをしっかりと見ていたり、自分で開発したツールを社内に紹介したりするなど、現場感覚も大事にしてくれます。

ZOZOテクノロジーズ:
2021年8月現在、CTOは空席となっています。代わりに、ZOZOTOWNリプレイスプロジェクトの責任者を中心に、幾人かが集まり長期的な技術方針などを議論しています。
責任者とは、Slack上で自由にコミュニケーションできます。また、明示的に「気軽に質問どうぞ」と確保されている時間(通称オフィスアワー)があり、困ったら気軽に相談することができるので、距離感は近いと思います。

オンライン下のものづくり コミュニケーションの工夫

アスクル:
なるべく伝わりやすいような言葉を使う、可能な限りビデオをONにする、画面共有をしながら文字に起こしつつ会話をするなど、なるべく認識のズレや雰囲気のズレが出ないようなコミュニケーションを心がけています。

一休:
SlackやZoomでコミュニケーションを密に取っています。
リモートでは遠慮してしまうと物事が進まなくなってしまうことが多いです。積極的にSlack上でメンションしたり通話したりして、出社していたころよりも意識的にコミュニケーションを取るようにしています。

LINE・ヤフー:
テキストだけでは認識の違いが生まれたり、自分の意見が意図通り伝わらなかったりするので、適宜Zoomなどで直接会話をすることも大事だと思います。
リモート環境下では相手の状況が分からなくて質問しづらいので、急ぎではない質問は好きな時に質問して好きな時に回答してもらう用の壁打ちSlackスレッドを立てています。
また、チームとして話しやすい雰囲気を作るためにデイリーミーティングなどの余った時間で雑談をすることも大切だと思います。

PayPay:
PayPayはWFA(Work from Anywhere at Anytime)制度を導入しているため、社員は常にリモート中心で働いています。朝の「Daily Stand Up」や「Coffee Break Chat」などを設けるなど、チームごとにコミュニケーションの工夫をしています。

ZOZOテクノロジーズ:
コミュニケーションの中心はSlackですが、これとは別に全社でボイスチャットサービス「Discord」を導入しています。チームによって運用は異なりますが、勤務中はチームのチャンネルにマイクオフで参加しておき、必要に応じて「◯◯さん、ちょっとここ教えてもらえませんか?」というような使い方をしています。同じチャンネルに参加している他のメンバーもやりとりが聞こえるため、オフライン時代にデスクの周りで話していた時と似た状況を作ることができています。

今回の「Internal Hack Day」について

善積 正伍(よしづみ しょうご)
ヤフーでHack Dayプロデューサーを務めている。
「今回は、事前にアイデアソンを開催しました。チームメンバー探しや、アイデア磨き、グループ内の社員同士がつながる機会としても活用してもらえたと思っています。また、今回のHack Day用のSlack Workspaceも用意し、各社同士の交流にご利用いただきました。
今年が初参加となるLINEからは、日本法人だけでなく韓国や台湾、タイなどからも出場するチームがありました。異なる会社でチームを組むことで、開発スタイルを共有してスキルアップしたり、各社のテクノロジーをうまく組み合わせておもしろい作品を作ったりする機会になったのではないでしょうか。
今回のInternal Hack Dayで生まれた作品が、いずれ新たなサービスや機能としてユーザーに使っていただけるようになったらうれしいですね」

各社でもイベントレポートを公開していますので、ぜひご覧ください。

シナジー創出をテーマに、社内ハッカソン「Internal Hack Day」を開催しました(Yahoo! JAPAN Tech Blog)
Internal Hack Day 18参加レポート(アスクル)
ヤフーのInternal Hack Dayに参加しました(一休)

【関連リンク】

このページの先頭へ