APIチーム 2019年のあゆみ

Kentaro Takahashi
Dec 13, 2019 · 9 min read

お久しぶりです。エウレカで Head of API / Head of QA を担当している @takochuu です。

この記事は eureka Advent Calendar 2019 13日目の記事になります。

本記事では、私がHeadを務めているAPIチームの2019年やってきたことを紹介するとともに、学びを共有する目的で書いています。

あくまで主観的な記事になりますので、何か疑問や興味がある部分などあれば Twitter / Facebook でもご連絡を頂ければと思います。

APIチームの構成と役割

APIチームの発足は2018年4月で、メンバーは11月末まで7名、現在は6名のチームです。Pairs / Pairsエンゲージのバックエンドの開発を行うのがチームの目的になります。APIチームの発足前は、事業チームにバックエンド開発を行うエンジニアが属していました。

APIチームは特定の事業のみを担当するのではなく、エウレカにおけるバックエンド開発を横断的に実施し、ナレッジを共有することも目的になっています。

事業チーム(プロジェクト)との関係性はこのようになっており、複数のチームから依頼を受け付けて仕事をこなしています。

例えばAWSのコンポーネントを用いた開発やバッチ処理の実装なども行うため、「APIチーム」という名称よりは広い範囲の開発を行っています。バックエンド開発全般と言った方がイメージが湧きやすいかもしれません。

バックエンドを書けるエンジニアは他にも複数人エウレカには在籍していますが、彼らはSREに所属していたり、事業チームに所属しているため、彼らと連携してシステムを運用しています。

2019年APIチームのあゆみ

Pairs開発

Pairsは言わずもがなエウレカを支える屋台骨の事業です。

リリースから7年が経過しますが、主力事業として継続して開発を行っており、会社の中でもとても関わる人の数が多い事業になります。

Pairsは日本だけではなく台湾・韓国へも展開しており、サーバーサイドは1つのリポジトリで運用をしているため、翻訳アセットの管理や抽象化を用いて仕様の異なる部分を疎結合に管理するなどの工夫が必要な開発を行っています。

事業的な側面では、大切な価値観を表現できる新機能の開発をはじめとして、多様な開発を行ってきました。

技術的な側面でAPIチームが2019年に取り組んできたのは主に技術的課題の計画的な対応になります。

Pairsのサーバーサイドのコードベースは2016年3月にGoにシステムリプレースを終え、3年9ヶ月運用しているのですが、開発上の経緯があり、修正したい部分なども少なからずある状態になっています。

Pairsは利用しているお客様も多く、開発に関わるメンバーも多いため、サービスを停止しての技術的な対応を行うことは極力避けたい状態です。その上で、サーバーサイドの技術的課題を計画的に管理して事業のスピードを長期的に落とさない必要があります。そのため、技術的課題を無停止で計画的に対応していく必要があり、Pairs開発の文脈ではこちらを紹介したいと思います。

まずチーム全体で、自分が問題だと思う技術的課題を書き出してもらいます。

その後は、優先順位を付与します。優先順位の付加の方法については、以下のようになっています。

  1. ただちに対応しなければ直近の開発に影響が出るもの
  2. 対応しなければ長期的な開発に影響が出るもの
  3. 対応すれば効果を生むが、それほどのインパクトを出せるわけではないもの

ここで気を付けているのは、あくまで事業から逆算して意思決定をすることを意識しています。エンジニアとしては「コードが汚い」や「少し取り回しづらい」と言った理由で直したいものもやはりありますが、そうなると全てやろうとしてしまい、結果として進まない、成果が上がらない等の問題も抱える事になります。

それでは本末転倒なので、現実的にやれる範囲を設定するようにしています。

こうして選ばれた技術的な課題については、3ヶ月単位でやらなければならないチームとしての目標(OKRは全社導入はしていないのですが、チーム内ではOKRを設定しています。そのKey Result)としてセットし、貢献については評価へも反映するようにしていました。

こうすることにより、進まない理由が多い技術的課題への対応を仕組みで対応することが可能になり、少しづつですがコードベースの改善が進んでいます。

Pairsエンゲージ開発

Pairsエンゲージについては、エウレカとしてCouples以来の5年ぶりの新規事業になります。

こちらの山下が書いた記事が詳しいですが、実はエンゲージはJimと山下の2名に加え、 Kentaro Takahashi (私) / Shinichi Jufuku の4名体制で開発しています。

APIチームとしては当時7名のチームでしたので、半分を超える4名がエンゲージの開発に入る事になり、APIチームとしての仕事量が大量に増えたことでチームの負荷が上がっていました。

これにより、組織的に取り組まなければならなくなったのが採用でした

採用について

エウレカにおいての採用責任はHeadが持っており、チーム内の採用活動についてはHeadが責任を持って取りまとめています。

それまでAPIチームにおいては、Headである僕が「カジュアル面談」と「1次面接」を担当していたのですが採用が急務となった今、何らかの権限委譲を行って採用にスケーラビリティをもたせることが必要でした。(Headは事業担当のみではなく、組織関連のMTGや1on1もあるため、候補者のみなさまを増やさなければならない状況にあってHeadがボトルネックになっていました)

そこで、API内での採用定例を実施し、以下のようなことを順番に決めていきました。

  1. どのようなポジションで活躍して欲しい人なのかの明確化
  2. APIチームとして採用したい条件の言語化
  3. データから逆算したKPIの設定
  4. お声がけする際のメッセージの言語化
  5. 実際にツールを利用してお声がけしてカジュアル面談の設定
  6. メンバーと一緒にカジュアル面談をする
  7. メンバー一人でカジュアル面談をする

結果、これまで僕一人でカジュアル面談を実施していた時と比較すると採用に関するアイデアの数も、お会いできるも格段に広くなり非常に多くの方とカジュアル面談をすることができました(ご来社頂けた方、ありがとうございました!)

このように、採用は組織にとって生命線だと言われながらも計画的にリソースを配分し、組織立って継続的に取り組んでいくことが難しい領域だと自分もやりながら感じています。

このような取り組みを通じて手応えを非常に感じていて、まだ採用に至るという結果は出せていないものの2020年度についてはこの活動を継続することによって仲間を増やしていくことができたら良いなと考えています。

おわりに

このように、エウレカのAPIチームでは求められる状況に応じて柔軟に振る舞い、成長することで成果を目指すメンバーが集まっています。

2020年も非常に楽しい開発が自分たちを待っていると思うと、Headとして準備を今年中に頑張らなきゃな、という責任感を感じます。

この記事でご興味を持って頂けたら是非チームメンバーや僕と会って頂ければと思っています。ご連絡をお待ちしています!!!!


Eureka Engineering

Learn about Eureka’s engineering efforts, product developments and more.

    Kentaro Takahashi

    Written by

    Head of API Team at eureka, inc.

    Eureka Engineering

    Learn about Eureka’s engineering efforts, product developments and more.

    Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
    Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
    Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade