他チームと⼀緒に⽣産性を⾼めるGaroonチーム川畑 裕也サイボウズ株式会社 Garoon開発チーム
View Slide
川畑 裕也 @n1wat0n▌Garoon開発チーム 新卒4年⽬l新機能開発チーム, サポートエンジニアチームを経験l現在は改善専⾨チームで⽴案/設計/実装▌⽣産性向上チーム 兼務8ヶ⽉ (後述)
▌組織の情報を集めるWebアプリケーション▌⽇々頑張っている会社/⼈を⽀える製品▌たくさんの会社、ユーザ様に使われているl5,600 社 2,700,000 ユーザ
今⽇お話することGaroonチームは他チームと協⼒することでつらい状況を変えていった
Garoonのつらかった話▌開発⾯l18年の開発で読みづらくなったコード群l ちょっとした不具合を直すのに影響範囲が膨⼤l⾃動テストの結果が出るのが1時間後l 誰が落としたかわからないl 重要視されなくなっていく…
Garoonのつらかった話▌組織体制lベテランが抜けていくl開発や問い合わせ業務を進めるだけでギリギリの配置l2年⽬の僕と新⼈の後輩で問い合わせ対応(不具合調査、障害調査)をやってる時期が⼀番つらかった
開発を取るか改善を取るか▌技術的負債は溜まっていく⼀⽅▌限られた⼈数で開発も改善も進めていくのは厳しい当時の発⾔
兼務するきっかけ▌あるGaroonチームのメンバーが⽣産性向上チームと兼務して改善活動を始める▌Garoonがよくなっていくことを感じて⾃分も参加
⽣産性向上チームについて▌チームを横断して開発基盤を整備するチーム開発基盤の整備• AWSにSSOする仕組みづくり• 開発⽤のGCP,Office365の管理• 本番環境へのリリース⾃動化• Garoonの改善⽀援⾃動化・効率化の⽀援
⽣産性向上チームとGaroonチームの取り組み▌⾃動テスト環境の整備▌ローカル開発環境のDocker移⾏▌テスト⽤メールサーバの改善▌点在していたDocker Imageを管理しやすく集約▌⾃動テスト環境構築の⾼速化
改善前の⾃動テスト▌プルリクエスト作成時にユニットテストが⾛らないlマージしないと問題に気づけない▌ビルドからE2Eテストが終わるまで最低1時間以上lちょっとしたミスを直すのに⻑時間かかる▌定期実⾏されてる⻑時間かかるJobがあるlユニットテストのカバレージ取得に6時間
改善前のJenkins▌⼤量の⾃動テスト/⾃動ビルドlどのJobの後にどのJobが動くのかわからないl新バージョンごとにJobを再作成l 1週間以上かかることも▌メンテナンスが⼤変︕
現状を整理この辺にZoomロゴこの辺にZoomロゴ→
改善の取り組み▌CI基盤: Jenkins → CircieCIl⼤量のジョブを少しづつ移⾏▌テストの実⾏⽅式l直列 → 10並列▌テスト環境lVM使いまわし → Amazon EC2で都度作成▌不安定なテストケースを改修
改善後の⾃動テスト▌プルリクエスト作成時にユニットテストが⾛らない→ プルリクエスト作成時にユニットテストを実⾏圧倒的に⼿戻りが減った▌ビルドからE2Eテストが終わるまで最低1時間以上→ 36分に削減▌定期実⾏されてる6時間かかるJobがある→ 14分に削減
改善後のCircleCI▌ジョブの関係もわかりやすくなった
改善をしてハッピーになった▌Garoonメンバーの喜びの声を聞けた▌暗い雰囲気はなくなってきた(体感)l これからも改善できる雰囲気になった▌⽣産性向上チームに限らず他のチームと協⼒する機会が増えた
Garoonチームだけでは出来なかった▌助けてくれるチームがいると⼼強い▌客観的に「この状況はヤバい」と⾔ってもらえたl 他チームの状況を知らないと本当にヤバいか分からないl 変えていこう、やっていこうと思えた▌他製品での改善の知⾒を活かして進められたl CircleCIへ移⾏しようl 他チームではこのツールを使っている
改善の種は尽きない▌Garoonは改善の種の宝庫l定期的にGaroon開発チームと⽣産性向上チームで次にやることを話す会を設けている▌改善したことでレガシーコードへの戦いに挑めるようになった
俺たちの戦いはこれからだ︕
⼀緒に⽣産性を⾼める⼈を募集中!