STORES.jp 開発組織の軌跡 / Rails Developers Meetup 2018 Day4

2c246b10eca87568dda9f431c1134cb3?s=47 Takeshi Yabe
December 08, 2018

STORES.jp 開発組織の軌跡 / Rails Developers Meetup 2018 Day4

Rails Developers Meetup 2018 Day4 でお話ししたときに使った資料です

2c246b10eca87568dda9f431c1134cb3?s=128

Takeshi Yabe

December 08, 2018
Tweet

Transcript

  1. STORES.jp 開発組織の軌跡 Rails Developers Meetup 2018 Day4 2018.12.08 - Takeshi

    Yabe (@tyabe)
  2. お話しすることの確認 STORES.jpは2012年のサービス開始から事業として 様々なチャレンジを続け、組織としても変化し続けて きました。 本セッションではその歴史をふり返りながら、開発組 織としてどのような問題に直面し解決を試みてきた のかをお話しします。

  3. 前提

  4. STORES.jp(サービス)とは

  5. None
  6. どんな会社?

  7. None
  8. STORES.jpリリース後の社員数の変動 ※正社員のみ

  9. なんとなくフェーズを分けると 2012 - 2013 : 0 -> 1フェーズ 2013 -

    2014 : イケイケフェーズ 2015 - 2016 : 混沌フェーズ 2016 - 2017 : 独立第2フェーズ 2018 - : ギアチェンジフェーズ
  10. 2012 - 2013 0 -> 1フェーズ

  11. 会社の状況 - とにかく早くユーザへ価値を届けることに注力 STORES.jpエンジニアチームの体制 - 1名 -> 3名 システム構成 -

    AngularJS + Rails + MongoDB - Postfix - 本体の他に決済システムと画像配信システムを運用 - サービス開始時はVPSだったが拡張性を求めAWSへ移行 2012 - 2013 0 -> 1フェーズ
  12. 2012 - 2013 0 -> 1フェーズ STORES.jpエンジニアチームの状況 - 1つの機能をすべて1人が担当 -

    思いついたアイデアを即時実装、即リリース - とにかく様々な手を打っていた - master直push -> git-flow(チック) - コードレビューほぼなし.. テストなし... - サーバ台数が増えデプロイツールにminaを導入 - SPAだったのでPhantomJSを利用してSSR
  13. 2013 - 2014 イケイケフェーズ

  14. 会社の状況 - STORES.jp PRO担当とZOZOフリマ担当が発足 STORES.jpエンジニアチームの体制 - 3名 -> 9名 ->

    3名 2013 - 2014 イケイケフェーズ
  15. STORES.jpエンジニアチームの状況 - 外部サービスとの提携強化 - コードレビューの実施とテストコードが追加され始める - 開発ドキュメントが残されるようになる(Google Docs) - 問いあわせ対応のタスク管理にRedmineを利用

    - 利用者が増え色々な問題が表面化し始める.. システム構成の変化 - 大きくは変わらず - Postfix -> Sendgrid - CircleCI導入 2013 - 2014 イケイケフェーズ
  16. 2015 - 2016 混沌フェーズ

  17. 会社の状況 - ZOZOフリマに注力していた時期 STORES.jpエンジニアチームの体制 - 3名 -> 4名 システム構成の変化 -

    デプロイツールをminaからCapistranoへ - 例外情報の収集にErrbitを導入 - Qiita:Team導入 - 開発タスクはすべてGithub Issuesへ 2015 - 2016 混沌フェーズ
  18. STORES.jpエンジニアチームの状況 - リニューアルプロジェクトを2回に分けて実施 - ブランチ運用のルール化(git-flowへ) - チャットbotによるレビュアー自動アサイン - 朝会/夕会、週1回のふりかえりを実施 2015

    - 2016 混沌フェーズ
  19. 2015 - 2016 混沌フェーズ https://careerhack.en-japan.com/report/detail/650

  20. リニューアルでどうしても解決したかった課題 - SPA - PhantomJSでSSR - 構成上の問題でbotが押し寄せてくると死ぬ - PhantomJSの突然死 -

    コア吐く -> ディスク埋まる -> 死ぬ リニューアルのついでに素直にRailsでレンダリングするように改 修し、穏やかな日常を手に入れた 2015 - 2016 混沌フェーズ
  21. 会社の状況 - フリマチームが大忙し - STORESのオペレーションチームが2名に STORES.jpエンジニアチームの体制 - リーダーに就任 STORES.jpエンジニアチームの状況 -

    オペレーション業務を効率化させるための開発に注力 - リモートワークの実験的導入 2015 - 2016 混沌フェーズ
  22. 2015 - 2016 混沌フェーズ

  23. 2016 - 2017 独立第2フェーズ

  24. 会社の状況 - 初期の開発メンバーが社内にいなくなった STORES.jpエンジニアチームの体制 - 4名 -> 6名 - CTO就任(2017年4月)

    2016 - 2017 独立第2フェーズ
  25. 2016 - 2017 独立第2フェーズ

  26. STORES.jpエンジニアチームの状況 - 外部連携系サービスのクローズ - 決済アプリ ”STORES.jp Payment” リリース - 使われなくなったコードを一掃

    - チームとして動く体制へ - プロジェクト制、正/副担当制、ペアプロ システム構成の変化 - Elasticsearchの運用をElasticCloudへ - 画像配信サービスの運用をImageFluxへ 2016 - 2017 独立第2フェーズ
  27. 2018 - ギアチェンジフェーズ

  28. 会社の状況 - 社名変更 & 組織拡大 - “だれになにを提供するのか”を再定義 - “自分のブランドのコミュニティがある人に、楽しく続けられ るしくみをつくる”

    - heyグループとして情報共有を強化 - 1つのオフィスにお引っ越し - Slack共通化 - 毎月末にグループ全体でレビュー会を実施 - 福利厚生等々も両社のいいとこ取りして共通化 - フレックス制導入 2018 - ギアチェンジフェーズ
  29. STORES.jpエンジニアチームの体制 - 4名 -> 16名 (※現在も積極採用中!!!) STORES.jpエンジニアチームの状況 - 目的別のチーム体制(3~4名) -

    採用に全員何かしらで関わる(面談/面接/hello hey) システム構成の変化 - AngularJS -> Vue.js - MongoDBの運用をMongoDB Atlasへ - データ構造の見直し - データ分析基盤の構築 2018 - ギアチェンジフェーズ
  30. None
  31. None
  32. おわりに

  33. 1. 会社の状況や体制が変化しても、 なぜやるのか (ビジネス的な背景や目的の説明)を明確にし、楽 しみながら事業もチームも成長を続けていた 2. どうやるのかはエンジニアチームの責任で、個人 に与えられる裁量も大きい 3. 今後は、組織とサービスが大きなっても上記を保

    ち続けることが課題 おわりに
  34. None
  35. https://hey.jp/events/hello-hey/