Rails Developers Meetup 2018 Day4 でお話ししたときに使った資料です
STORES.jp開発組織の軌跡Rails Developers Meetup 2018 Day42018.12.08 - Takeshi Yabe (@tyabe)
View Slide
お話しすることの確認STORES.jpは2012年のサービス開始から事業として様々なチャレンジを続け、組織としても変化し続けてきました。本セッションではその歴史をふり返りながら、開発組織としてどのような問題に直面し解決を試みてきたのかをお話しします。
前提
STORES.jp(サービス)とは
どんな会社?
STORES.jpリリース後の社員数の変動 ※正社員のみ
なんとなくフェーズを分けると2012 - 2013 : 0 -> 1フェーズ2013 - 2014 : イケイケフェーズ2015 - 2016 : 混沌フェーズ2016 - 2017 : 独立第2フェーズ2018 - : ギアチェンジフェーズ
2012 - 2013 0 -> 1フェーズ
会社の状況- とにかく早くユーザへ価値を届けることに注力STORES.jpエンジニアチームの体制- 1名 -> 3名システム構成- AngularJS + Rails + MongoDB- Postfix- 本体の他に決済システムと画像配信システムを運用- サービス開始時はVPSだったが拡張性を求めAWSへ移行2012 - 2013 0 -> 1フェーズ
2012 - 2013 0 -> 1フェーズSTORES.jpエンジニアチームの状況- 1つの機能をすべて1人が担当- 思いついたアイデアを即時実装、即リリース- とにかく様々な手を打っていた- master直push -> git-flow(チック)- コードレビューほぼなし.. テストなし...- サーバ台数が増えデプロイツールにminaを導入- SPAだったのでPhantomJSを利用してSSR
2013 - 2014 イケイケフェーズ
会社の状況- STORES.jp PRO担当とZOZOフリマ担当が発足STORES.jpエンジニアチームの体制- 3名 -> 9名 -> 3名2013 - 2014 イケイケフェーズ
STORES.jpエンジニアチームの状況- 外部サービスとの提携強化- コードレビューの実施とテストコードが追加され始める- 開発ドキュメントが残されるようになる(Google Docs)- 問いあわせ対応のタスク管理にRedmineを利用- 利用者が増え色々な問題が表面化し始める..システム構成の変化- 大きくは変わらず- Postfix -> Sendgrid- CircleCI導入2013 - 2014 イケイケフェーズ
2015 - 2016 混沌フェーズ
会社の状況- ZOZOフリマに注力していた時期STORES.jpエンジニアチームの体制- 3名 -> 4名システム構成の変化- デプロイツールをminaからCapistranoへ- 例外情報の収集にErrbitを導入- Qiita:Team導入- 開発タスクはすべてGithub Issuesへ2015 - 2016 混沌フェーズ
STORES.jpエンジニアチームの状況- リニューアルプロジェクトを2回に分けて実施- ブランチ運用のルール化(git-flowへ)- チャットbotによるレビュアー自動アサイン- 朝会/夕会、週1回のふりかえりを実施2015 - 2016 混沌フェーズ
2015 - 2016 混沌フェーズhttps://careerhack.en-japan.com/report/detail/650
リニューアルでどうしても解決したかった課題- SPA- PhantomJSでSSR- 構成上の問題でbotが押し寄せてくると死ぬ- PhantomJSの突然死- コア吐く -> ディスク埋まる -> 死ぬリニューアルのついでに素直にRailsでレンダリングするように改修し、穏やかな日常を手に入れた2015 - 2016 混沌フェーズ
会社の状況- フリマチームが大忙し- STORESのオペレーションチームが2名にSTORES.jpエンジニアチームの体制- リーダーに就任STORES.jpエンジニアチームの状況- オペレーション業務を効率化させるための開発に注力- リモートワークの実験的導入2015 - 2016 混沌フェーズ
2016 - 2017 独立第2フェーズ
会社の状況- 初期の開発メンバーが社内にいなくなったSTORES.jpエンジニアチームの体制- 4名 -> 6名- CTO就任(2017年4月)2016 - 2017 独立第2フェーズ
STORES.jpエンジニアチームの状況- 外部連携系サービスのクローズ- 決済アプリ ”STORES.jp Payment” リリース- 使われなくなったコードを一掃- チームとして動く体制へ- プロジェクト制、正/副担当制、ペアプロシステム構成の変化- Elasticsearchの運用をElasticCloudへ- 画像配信サービスの運用をImageFluxへ2016 - 2017 独立第2フェーズ
2018 - ギアチェンジフェーズ
会社の状況- 社名変更 & 組織拡大- “だれになにを提供するのか”を再定義- “自分のブランドのコミュニティがある人に、楽しく続けられるしくみをつくる”- heyグループとして情報共有を強化- 1つのオフィスにお引っ越し- Slack共通化- 毎月末にグループ全体でレビュー会を実施- 福利厚生等々も両社のいいとこ取りして共通化- フレックス制導入2018 - ギアチェンジフェーズ
STORES.jpエンジニアチームの体制- 4名 -> 16名 (※現在も積極採用中!!!)STORES.jpエンジニアチームの状況- 目的別のチーム体制(3~4名)- 採用に全員何かしらで関わる(面談/面接/hello hey)システム構成の変化- AngularJS -> Vue.js- MongoDBの運用をMongoDB Atlasへ- データ構造の見直し- データ分析基盤の構築2018 - ギアチェンジフェーズ
おわりに
1. 会社の状況や体制が変化しても、 なぜやるのか(ビジネス的な背景や目的の説明)を明確にし、楽しみながら事業もチームも成長を続けていた2. どうやるのかはエンジニアチームの責任で、個人に与えられる裁量も大きい3. 今後は、組織とサービスが大きなっても上記を保ち続けることが課題おわりに
https://hey.jp/events/hello-hey/