他チームと⼀緒に⽣産性を⾼めるGaroonチーム

 他チームと⼀緒に⽣産性を⾼めるGaroonチーム

A97eee01397705443a72a48ce29d3e19?s=128

Cybozu

June 15, 2020
Tweet

Transcript

  1. 他チームと⼀緒に ⽣産性を⾼めるGaroonチーム 川畑 裕也 サイボウズ株式会社 Garoon開発チーム

  2. 川畑 裕也 @n1wat0n ▌Garoon開発チーム 新卒4年⽬ l新機能開発チーム, サポートエンジニアチームを経験 l現在は改善専⾨チームで⽴案/設計/実装 ▌⽣産性向上チーム 兼務8ヶ⽉

    (後述)
  3. ▌組織の情報を集めるWebアプリケーション ▌⽇々頑張っている会社/⼈を⽀える製品 ▌たくさんの会社、ユーザ様に使われている l5,600 社 2,700,000 ユーザ

  4. 今⽇お話すること Garoonチームは 他チームと協⼒することで つらい状況を変えていった

  5. Garoonのつらかった話 ▌開発⾯ l18年の開発で読みづらくなったコード群 l ちょっとした不具合を直すのに影響範囲が膨⼤ l⾃動テストの結果が出るのが1時間後 l 誰が落としたかわからない l 重要視されなくなっていく…

  6. Garoonのつらかった話 ▌組織体制 lベテランが抜けていく l開発や問い合わせ業務を進めるだけでギリギリの配置 l2年⽬の僕と新⼈の後輩で問い合わせ対応(不具合調査、 障害調査)をやってる時期が⼀番つらかった

  7. 開発を取るか改善を取るか ▌技術的負債は溜まっていく⼀⽅ ▌限られた⼈数で開発も改善も進めていくのは厳しい 当時の発⾔

  8. 兼務するきっかけ ▌あるGaroonチームのメンバーが⽣産性向上チームと 兼務して改善活動を始める ▌Garoonがよくなっていくことを感じて⾃分も参加

  9. ⽣産性向上チームについて ▌チームを横断して開発基盤を整備するチーム 開発基盤の整備 • AWSにSSOする 仕組みづくり • 開発⽤のGCP, Office365の管理 •

    本番環境への リリース⾃動化 • Garoonの改善⽀援 ⾃動化・効率化の⽀援
  10. ⽣産性向上チームと Garoonチームの取り組み ▌⾃動テスト環境の整備 ▌ローカル開発環境のDocker移⾏ ▌テスト⽤メールサーバの改善 ▌点在していたDocker Imageを管理しやすく集約 ▌⾃動テスト環境構築の⾼速化

  11. ⽣産性向上チームと Garoonチームの取り組み ▌⾃動テスト環境の整備 ▌ローカル開発環境のDocker移⾏ ▌テスト⽤メールサーバの改善 ▌点在していたDocker Imageを管理しやすく集約 ▌⾃動テスト環境構築の⾼速化

  12. 改善前の⾃動テスト ▌プルリクエスト作成時にユニットテストが⾛らない lマージしないと問題に気づけない ▌ビルドからE2Eテストが終わるまで最低1時間以上 lちょっとしたミスを直すのに⻑時間かかる ▌定期実⾏されてる⻑時間かかるJobがある lユニットテストのカバレージ取得に6時間

  13. 改善前のJenkins ▌⼤量の⾃動テスト/⾃動ビルド lどのJobの後にどのJobが動くのか わからない l新バージョンごとにJobを再作成 l 1週間以上かかることも ▌メンテナンスが⼤変︕

  14. 現状を整理 この辺にZoomロゴ この辺にZoomロゴ →

  15. 改善の取り組み ▌CI基盤: Jenkins → CircieCI l⼤量のジョブを少しづつ移⾏ ▌テストの実⾏⽅式 l直列 → 10並列

    ▌テスト環境 lVM使いまわし → Amazon EC2で都度作成 ▌不安定なテストケースを改修
  16. 改善後の⾃動テスト ▌プルリクエスト作成時にユニットテストが⾛らない → プルリクエスト作成時にユニットテストを実⾏ 圧倒的に⼿戻りが減った ▌ビルドからE2Eテストが終わるまで最低1時間以上 → 36分に削減 ▌定期実⾏されてる6時間かかるJobがある →

    14分に削減
  17. 改善後のCircleCI ▌ジョブの関係もわかりやすくなった

  18. 改善をしてハッピーになった ▌Garoonメンバーの喜びの声を聞けた ▌暗い雰囲気はなくなってきた(体感) l これからも改善できる雰囲気になった ▌⽣産性向上チームに限らず他のチームと協⼒する機会が 増えた

  19. Garoonチームだけでは 出来なかった ▌助けてくれるチームがいると⼼強い ▌客観的に「この状況はヤバい」と⾔ってもらえた l 他チームの状況を知らないと本当にヤバいか分からない l 変えていこう、やっていこうと思えた ▌他製品での改善の知⾒を活かして進められた l

    CircleCIへ移⾏しよう l 他チームではこのツールを使っている
  20. 改善の種は尽きない ▌Garoonは改善の種の宝庫 l定期的にGaroon開発チームと⽣産性向上チームで 次にやることを話す会を設けている ▌改善したことでレガシーコードへの戦いに 挑めるようになった

  21. 俺たちの戦いはこれからだ︕

  22. ⼀緒に⽣産性を⾼める⼈を募集中!