Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

Cybozu
PRO

June 15, 2020
Tweet

More Decks by Cybozu

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  9. ⽣産性向上チームについて
    ▌チームを横断して開発基盤を整備するチーム
    開発基盤の整備
    • AWSにSSOする
    仕組みづくり
    • 開発⽤のGCP,
    Office365の管理
    • 本番環境への
    リリース⾃動化
    • Garoonの改善⽀援
    ⾃動化・効率化の⽀援

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  15. 改善の取り組み
    ▌CI基盤: Jenkins → CircieCI
    l⼤量のジョブを少しづつ移⾏
    ▌テストの実⾏⽅式
    l直列 → 10並列
    ▌テスト環境
    lVM使いまわし → Amazon EC2で都度作成
    ▌不安定なテストケースを改修

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide