Retty Tech Blog

実名口コミグルメサービスRettyのエンジニアによるTech Blogです。プロダクト開発にまつわるナレッジをアウトプットして、世の中がHappyになっていくようなコンテンツを発信します。

Retty Developer Team 2018

この記事は Retty Advent Calendar 2018 25日目の記事です。
昨日は @wtnVegna さんの記事で、 クリスマス(季節性)に負けない統計的因果推論 でした。

本日はRetty VP of Engineeringのkosakoが担当します。

実はVP of Engineeringという役職になったのは二ヶ月前の10月からで、社内でもエンジニア以外からはVP...Nだっけ?といわれたりまだまだ定着していなかったります。

ちなみにこちらの記事にもあるとおり、昨年の今頃はアプリチームでiOSリニューアルをやっていました。
なんとかリリースにこぎつけた後で会社全体を見渡したときに、開発組織という観点で誰かがコミットして牽引していく必要性があると感じたため2018年は組織にコミットするということを目標に決めました。
課題感を持っていたメンバーと一緒に進めたものもあれば、ボトムアップに任せたもの、トップダウンで決めたことなど様々なものがあります。

2018年のRettyは月間利用者数が4000万人突破や、Yahooとの提携といった大きなニュースがありました。
その裏でこの一年Rettyの開発チームがどのような取り組みを行ってきたかをお届けします。

1.技術への取り組み

フロントエンド技術の刷新

2017年から今年にかけてRettyではフロントエンドの技術の刷新を行ってきました。
それまではフロントエンドを専門でやっているメンバーもおらず、jQueryを使ったかなりレガシーなコードになっていました。
Rettyの中でも新しい取り組みが少ない分野でしたが、フロントエンドエンジニア陣の頑張りによりVue.jsをメインとしたモダンな開発環境に生まれ変わりつつあります。
今では社内でも最もモダンな取り組みや、技術的挑戦がされるようになりました。

実際にどのようなことが行われているかは今年のアドベントカレンダーの記事を御覧ください。

PRごとにCIでStorybookをビルドしてデザイナーとインタラクションまで作っていく話
ESLintの力で秩序あるAtomic Designを後世に残す
SEO に強くなる構造化データマークアップ ~ Nuxt.js で JSON-LD をコンポーネント指向で管理する ~
Vuex ORM についてなにか書いてみようとしたがやめた話
GraphQL でフロントに優しい API を作ろう

テクノロジーロードマップの策定

それまでも技術に関するロードマップはあったのですが、各チームで決めていたり運用と先端技術への投資の区別がされておらず、全体として大きな方針が見えづらい状況がありました。

そこで、数ヶ月かけて様々な角度から議論を行い数年後の目指す方向性を定めたテクノロジーロードマップを作成しました。
説明会や質問会も開き、できるだけ多くの人の意見や理解の吸い上げなども行っています。

f:id:rettydev:20181225145130p:plain説明に使用したスライドから抜粋

大きな方向性としてはマイクロサービス化をしていくことを定め、そのためにどのようなノウハウや技術が必要かといったことがわかるようにしています。
また、ロードマップは一度決めたら終わりではなく状況により変化していくのが当たり前ですので定期的な見直しを行うこと、そして見直しを行った際は必ず説明をするといった運用を行っていく予定です。

テクノロジーロードマップを決めたことにより全員の目線が揃ってきており、面接時に今後の方針について一貫性がある説明ができたり、アーキテクチャについて議論する場合にもベースとなるロードマップがあることにより議論が拡散し過ぎないようになったりといった効果がありました。

技術における共通認識ができてきたことは大きな成果でした。

マイクロサービス化に向けた取り組みの開始

テクノロジーロードマップで定めたマイクロサービス化ですが、first stepとなるプロジェクトに取り組んでいるところです。
リリースは来年になるため、まだ詳細は書けませんがお話できるようになったらこのブログで取り組みや内容について掲載していく予定です。

道のりはまだ長いのですが、マイクロサービス化とそれを成立させるための体制づくりを一歩づつ進めています。

2.開発プロセスへの取り組み

スクラムの本格導入

これまでRettyではカンバンを使ったりアジャイル的な開発スタイルではありましたが、属人性が高いものが多くチーム開発としては成熟した状態ではありませんでした。
その中でアプリチームがスクラムをしっかりと導入し、属人性が低く生産性の高いチームに生まれ変わっています。

全社での導入には至っていませんが、広げていくための取り組みも始めています。

詳細は下の記事を御覧ください。

実例に学ぶスクラム導入手順 - タスク属人化を避け、チーム開発力向上のためにRettyがやったこと

分析チームの発足

今年分析チームが作られましたが、それまではチームはなくプランナーがやるかチームのエンジニアがやるかといった形であることが多く、統一した動きになっていませんでした。
ログの設計なども場当たり的な物が多く、やたら細かく取られていたり取得されていなかったりと粒度もバラバラでした。

現在はログの設計や分析の基盤づくりなども進み事業推進のための重要な役割を果たしており、チームのモチベーションも高く、ノウハウ化、自動化が最も進んでいるチームになっています。

どのような思想でチーム作りをしているのか、どのような開発・分析をしているのか気になった方は下記記事を是非ご覧ください。

Webサービスを支えるユーザログ基盤開発@Retty
ベンチャー企業におけるDWH DevOps @ Retty
Rettyの意思決定を最大化!データ分析チームの取り組みをご紹介

3.組織に対する取り組み

エンジニアFeedBack

エンジニアの評価制度についてはどの会社でも悩んでいると思いますが、Rettyでも課題を抱えています。
よくあるのがミッションの達成に対する貢献度で評価を行う方法ですが、技術負債の返済やリリース後のリファクタリング、自動化などに対する評価がされにくいというものです。
また、エンジニアの技術的成長につながる評価やFeedBackといったものがあったほうがいいのではないか?という意見もあったことから、エンジニアが自分たちで考えて作るFeedBack制度を立ち上げました。

評価への影響を限定した上で、立候補を含めたメンバーでやり方をどうするかから説明・実行までを行いました。
前回行った方法としてはGitHubを使ってpull requestベースのやり取りによる評価シートの作成という形になりました。さらに具体的な方法については、後々になると思いますが別の形でご紹介できるようにしていきたいと思っています。

結果としては納得度の高い評価を得られた人がいた一方で、工数がかかりすぎだったり評価への影響が限定的なためやるモチベーションが湧きにくいといった課題も見えてきました。
問題もありましたが、評価についてより多くの人が考える切っ掛けになったのではないかと思います。

現在は前回の課題を踏まえた上でどう変えていくか検討しています。

開発組織課題プロジェクト

今年の1月から開始したプロジェクトで、開発組織の課題を集め解決を図っていくものになります。
これまでに出てきたテクノロジーロードマップや、エンジニアFeedBackなどはこのプロジェクトから生まれてきたものになります。
このプロジェクトにはCFOも参加したりしており、エンジニアだけではない意見が出てきて本質的な課題に踏み込むことができました。

約3ヶ月かけて本質的な課題の発見とその対策を検討し、開発チーム全員に対して現状の課題がどこにあり、どう解決していかなければならないのかを説明しました。

現在は、この後にある技術戦略本部がその役割を担うようになっています。

技術戦略本部

CTOとVP of Engineeringが運営する組織になります。
発足は今年の12月から。できたてホヤホヤです。

1月から様々な取り組みを進めていく中で、複数のワーキンググループの立ち上げを行いました。
小さなものも含めれば20近い数になりこのままでは管理ができなくなること、スケールしないこといった課題がでてきました。
またワーキンググループは手軽に始めるのにはよいのですが、実行や継続することに課題が出やすく対策が必要になってきたためこのような枠組みを新たに設置しました。

この技術戦略本部には3つの目的を設定しています。

  1. 全体の技術の方向性を定め、そこに向けて技術のトップラインを伸ばす
  2. 働きやすく、個人とチームがより成果が出せる強いエンジニア組織にする
  3. 効率化や必要な共通認識の醸成を行い生産性を高めることにより、より本質的な課題に集中できるようにする

単純に技術を追求するのではなく事業とのバランスをとりながらサービスの成長を支えること、さらには事業の新たな可能性を切り開けるような組織にしていければと思っています。

まとめ

今年一年のRettyを

という軸でそれぞれ振り返ってみました。

こうしてみるとサービス的にも事業的にも大きな出来事もありましたが、組織的にも大きな変化が起きた年になったと思います。
一貫して取り組んだこととしては、チームで継続した成果を出せるような組織にしていくことです。

もちろんまだまだ十分ではない所だらけですし、取り組んできたものの中にはうまくいったものもあれば課題が残ったものもあります。
2019年は今年取り組んだことをしっかり継続させていくこと、そしてその上にさらなる挑戦を積み重ねていくことが大事だと思っています。

それでは本年もRettyをご利用くださったみなさまに感謝して、アドベントカレンダーを終わりとさせていただきます。