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

「ログイン画面が開きません」から始まるチーム改革の軌跡

 「ログイン画面が開きません」から始まるチーム改革の軌跡

susumutomita

April 15, 2021
Tweet

More Decks by susumutomita

Other Decks in Programming

Transcript

  1. © DENS O C ORPORATION All Rights Reserved. /00 DevOpsDays

    Tokyo 2021 / Apr 15, 2021 島津直道 Naomichi Shimazu デンソーSRE室 寿司を握って⾷べるエンジニア 冨⽥ 進 Susumu Tomita デンソーSRE室 Site Reliability Engineering team Software Engineer 迎 諒 Ryo Mukai デンソーテン ICT技術部 ミュージシャン兼エンジニア(新婚) Who are speakers https://codezine.jp/article/detail/11391 2
  2. © DENS O C ORPORATION All Rights Reserved. /00 DevOpsDays

    Tokyo 2021 / Apr 15, 2021 今⽇持ち帰って欲しいこと 1. ⼩さいチームから変えていこう 2. いきなり100点を⽬指さない⼀つ⼀つ変えていく 3. 同志を⾒つけよう 3
  3. © DENS O C ORPORATION All Rights Reserved. /00 DevOpsDays

    Tokyo 2021 / Apr 15, 2021 1. 組織横断チーム結成 2. どんどん増える課題 3. ⼩さなチームから取り組みを変えた 4. 僕らのチームが成し遂げたこと 5. 学んだこと Agenda 4
  4. © DENS O C ORPORATION All Rights Reserved. /00 DevOpsDays

    Tokyo 2021 / Apr 15, 2021 組織横断チーム結成 KeyCloakのログイン画⾯を表⽰せよ 1 5
  5. © DENS O C ORPORATION All Rights Reserved. /00 KeyCloak(OSSの認証・認可ソフトウエアである)を使⽤したあるサービスの開発チームでは

    リリースに向けて着々と開発作業を進めていた。 そんなある⽇、チームのキーマンがとある事情で離脱することになった。 あるプロジェクトの悲劇 DevOpsDays Tokyo 2021 / Apr 15, 2021 マジか…… 6
  6. © DENS O C ORPORATION All Rights Reserved. /00 キーマンが離脱しても開発は進む、問題が⾒つかれば当然、構成変更も⾏う。

    この⽇は認証・認可に使⽤しているKeyCloakの構成変更を⾏った。 ちょっとした構成変更だし、インフラもコード化してあるし⼤丈夫! 変更した結果…… 暗雲が立ち込める DevOpsDays Tokyo 2021 / Apr 15, 2021 7
  7. © DENS O C ORPORATION All Rights Reserved. /00 KeyCloak周りを開発したのはキーマン。

    細かい知⾒は引き継げておらず、なぜログイン画⾯が出ないのかわからない。 それでもプロジェクトは待ってくれない。 3週間後には顧客との結合試験の予定なのに、このままではすべての試験に影響が出てしまう。 途⽅にくれる担当者…… 焦る担当者 DevOpsDays Tokyo 2021 / Apr 15, 2021 9
  8. © DENS O C ORPORATION All Rights Reserved. /00 部⻑も巻き込み、KeyCloakの知⾒を持つ⼈を求めてさまざまな知り合いにメールを送るもの

    の⾒つからない…… そんな中、⼀⼈だけKeyCloakを知っていると応答を返した⼈がいた。 それがSRE室のメンバーだった。 つづく 一筋の光が差す DevOpsDays Tokyo 2021 / Apr 15, 2021 10
  9. © DENS O C ORPORATION All Rights Reserved. /00 SRE室とは

    DevOpsDays Tokyo 2021 / Apr 15, 2021 Siteの プロダクト Reliability実現するために 信頼性、性能効率性、セキュリティ Engineeringを活⽤して貢献する Cloud , Open Source, プログラミング SREチームはプロダクトを開発しているチームと密 に連携して以下を担う • 品質要件の定義と評価、改善⽀援 • 運⽤の要件定義と機能構築、オペレーション⽀ 援 • PaaS設計・構築⽀援 SREはGoogle社が提唱、実践しているシステム管理 とサービス運⽤の⽅法論であり役割 ENGINEERING能⼒を⾝に着けた運⽤チームがこの 役割を担う 11
  10. © DENS O C ORPORATION All Rights Reserved. /00 求められるスキルセットが広く⼀⼈ではカバーできないことは当然ある

    ❖ チームメンバでお互いの強みを活かし協⼒しながら仕事を進めている ❖ 困ったときにはペアワーク、複数⼈で⼀つの問題に取り組むモブワークを積極的に利⽤ SRE室の働き方 DevOpsDays Tokyo 2021 / Apr 15, 2021 12
  11. © DENS O C ORPORATION All Rights Reserved. /00 SRE室でKeyCloakを使⽤して開発基盤を構築していたため、コラボレーションが始まった。

    しかし、いくつかの懸念があった。 懸念 ❖ 独⽴した調査チームで動いて、すでに解決済みや結論が出ていることに時間を費やして しまう ❖ 直接環境を変更することでさらなる障害を発⽣させてしまう ❖ 働き⽅に違いがあるが、コミュニケーションをうまく取れるか 取り組み ❖ プロジェクトの背景も抑えている有識者とチームを作り⼀緒に働いてもらう ❖ ソースコードも公開してもらい、⼀緒に読み込んでいく ❖ 意識的に雑談を多くする チームビルディング前のぼくらの懸念 DevOpsDays Tokyo 2021 / Apr 15, 2021 13
  12. © DENS O C ORPORATION All Rights Reserved. /00 避けたかったこと

    確定でない情報は混乱を招くかもしれない と思って、 情報共有しない (でも、本当は悪い情報ほど早く共有してほしい) 解決⽅法 ❖ 意識的に雑談や業務に関係ない話をしてコミュニケーションを取る ➢ プレッシャーのかかる状況だったが、なんでも⾔い合える⼼理的なセーフティー ネットの⽤意 ❖ 確定でない情報は事実確認を丁寧に⾏う ➢ 「そう思う」「⾔ってた」などのキーワードが含まれていたら要注意 ➢ 今わかっている課題について優先順位をつけて⼀つづつ確実に取り組んでいく Why雑談? DevOpsDays Tokyo 2021 / Apr 15, 2021 14
  13. © DENS O C ORPORATION All Rights Reserved. /00 DevOpsDays

    Tokyo 2021 / Apr 15, 2021 どんどん増える課題 2 15
  14. © DENS O C ORPORATION All Rights Reserved. /00 KeyCloakのログイン画⾯が表⽰できない問題はすぐに解決した。

    しかし次々と課題が⾒つかった。 ❖ ログアウトできない ❖ 認証⽅式をAWSのロードバランサー経由からNginxを使⽤した⽅式に変更してほしい ❖ 顧客システムと接続してほしい ❖ 顧客システムからはVPNで接続しているので認証をスキップしてほしい ❖ 外部のシステムへの接続⽅法をマネージドサービスから他のソリューションへ変更でき るか技術検証をしてほしい ❖ KeyCloakのログイン画⾯をカスタマイズしたものへ変更してほしい ❖ 監視についての検討が進んでいなかった ❖ APIの仕様にセキュリティ関連の課題を⾒つけてしまった ❖ なんかエラーがでた など どんどん増える課題と追加要望 DevOpsDays Tokyo 2021 / Apr 15, 2021 16
  15. © DENS O C ORPORATION All Rights Reserved. /00 KeyCloakのログイン画⾯が表⽰できない問題はすぐに解決した。

    しかし次々と課題が⾒つかった。 ❖ ログアウトできない ❖ 認証⽅式をAWSのロードバランサー経由からNginxを使⽤した⽅式に変更してほしい ❖ 顧客システムと接続してほしい ❖ 顧客システムからはVPNで接続しているので認証をスキップしてほしい ❖ 外部のシステムへの接続⽅法をマネージドサービスから他のソリューションへ変更でき るか技術検証をしてほしい ❖ KeyCloakのログイン画⾯をカスタマイズしたものへ変更してほしい ❖ 監視についての検討が進んでいなかった ❖ APIの仕様にセキュリティ関連の課題を⾒つけてしまった ❖ なんかエラーがでた など どんどん増える課題と追加要望 DevOpsDays Tokyo 2021 / Apr 15, 2021 何からやればいいの? 17
  16. © DENS O C ORPORATION All Rights Reserved. /00 DevOpsDays

    Tokyo 2021 / Apr 15, 2021 ⼩さなチームから取り組みを変えた 3 18
  17. © DENS O C ORPORATION All Rights Reserved. /00 ❖

    モブワーク ❖ プランニングの導⼊ ❖ ふりかえりを導⼊ ❖ ⾒える化 ❖ ログを残す 取り組みの変え方 DevOpsDays Tokyo 2021 / Apr 15, 2021 19
  18. © DENS O C ORPORATION All Rights Reserved. /00 常にZoomをつないだ状態でモブで作業する。

    メンバー間で理解に差ができないようにこまめにドライバーを交代する。 作業中は1H〜1.5Hごとに休憩を意識的に⼊れる。(定期的にお休みして頭をリフレッシュ) →議論が⽩熱している時こそ落ち着くために休憩を挟む。議論が堂々巡りの時ももちろん。 モブワーク ※画像はイメージです DevOpsDays Tokyo 2021 / Apr 15, 2021 20
  19. © DENS O C ORPORATION All Rights Reserved. /00 ❖

    常に同期、すべての成果物を常時レビューしている状態となるので、進捗共有のための 会議やレビューを別途持つ必要がなくなった ❖ 難しい問題や障害調査時にアイデアがどんどんでてくる ❖ みんなで進める安⼼感がある ❖ でも疲れる モブワークメインで進めるとどのようになるのか DevOpsDays Tokyo 2021 / Apr 15, 2021 21
  20. © DENS O C ORPORATION All Rights Reserved. /00 解決すべき課題が増え、

    何をいつまで解決すればよいか? 優先度が⾼いものはなにか? の把握が難しくなってきたため導⼊した。 毎週ふりかえり後に ❖ 優先順位の⾒直す ❖ バックログのサイズをS(半⽇)・M(1⽇)・L(3⽇)・XL(それ以上)で⾒積もる ➢ XLの場合は抽象度が⾼く⾒積もれないと判断し、S・M・L(分量が想像できるレベ ル)までタスクを分割することを考える ❖ ⼀週間後どこまで終わらせるか⽬標をたてる プランニングを導入 DevOpsDays Tokyo 2021 / Apr 15, 2021 22
  21. © DENS O C ORPORATION All Rights Reserved. /00 プランニングを導入

    DevOpsDays Tokyo 2021 / Apr 15, 2021 タスクのサイズを ⾊で表現 23
  22. © DENS O C ORPORATION All Rights Reserved. /00 毎⽇終業前の10分間でふりかえりをやってみる

    ↓ 1ヶ⽉くらいたってプロジェクトが⻑期戦になりそうだとわかった ↓ 毎週1-2時間強制的にふりかえりをやってみる ↓ ふりかえりで出てきた課題について少しずつ改善をしていった ふりかえりを導入 DevOpsDays Tokyo 2021 / Apr 15, 2021 24
  23. © DENS O C ORPORATION All Rights Reserved. /00 属⼈化を防ぎ、全員が情報を共有している状態を作るために、常にログを残すようにした。

    ❖ 作業ログ ❖ 設計意図 ❖ 思考過程 ❖ 議事録 不要になったものについては適宜整理した。 ログを残す DevOpsDays Tokyo 2021 / Apr 15, 2021 27
  24. © DENS O C ORPORATION All Rights Reserved. /00 ログを残す

    DevOpsDays Tokyo 2021 / Apr 15, 2021 28
  25. © DENS O C ORPORATION All Rights Reserved. /00 DevOpsDays

    Tokyo 2021 / Apr 15, 2021 僕らのチームが成し遂げたこと 4 29
  26. © DENS O C ORPORATION All Rights Reserved. /00 課題を⼀つ⼀つ着実に対処していった結果

    ❖ すべての課題を解決してスケジュール通りにリリースすることができた ❖ このチームの⽂化を他のチームにも広めるきっかけを作れた ❖ プロジェクトの進め⽅の改善の働きかけ ➢ 技術検証なしに難易度の⾼い機能(無停⽌マイグレーション)の実装を顧客にコミッ トしようとしていたのを⾒直した 僕らのチームが成し遂げたこと DevOpsDays Tokyo 2021 / Apr 15, 2021 30
  27. © DENS O C ORPORATION All Rights Reserved. /00 ❖

    状況の整理や課題の明確化が必要だったもの ➢ ログアウトできない問題 ➢ 監視についての検討が進んでいなかった ➢ APIの仕様にセキュリティ関連の課題を⾒つけてしまった ➢ なんかエラーが出た ❖ 要件を洗い出し地道に実装したもの ➢ 認証⽅式をAWSのロードバランサー経由からNginxを使⽤した⽅式に変更してほしい ➢ 顧客システムと接続してほしい ➢ 顧客システムからはVPNで接続しているので認証をスキップしてほしい ➢ KeyCloakのログイン画⾯をカスタマイズしたものへ変更してほしい ❖ 実装⽅式の変更を提案したもの ➢ 外部のシステムへの接続⽅法をマネージドサービスから他のソリューションへ変更できるか 技術検証をしてほしい それぞれの課題への対処 DevOpsDays Tokyo 2021 / Apr 15, 2021 31
  28. © DENS O C ORPORATION All Rights Reserved. /00 DevOpsDays

    Tokyo 2021 / Apr 15, 2021 学んだこと 5 32
  29. © DENS O C ORPORATION All Rights Reserved. /00 ログインできたと思ったら今度はログアウトができない...

    調べてみた結果、まだ実装されていないKeyCloakの機能を使わないとログアウトできないこ とがわかった。 そして、それがわかった当⽇の夜にその機能が実装され、無事解決。 仕様を決める人と開発する人に距離があると痛い目を見る 仕様チーム 開発チーム あとはよろしく できへんやん DevOpsDays Tokyo 2021 / Apr 15, 2021 33
  30. © DENS O C ORPORATION All Rights Reserved. /00 ログインできたと思ったら今度はログアウトができない...

    調べてみた結果、まだ実装されていないKeyCloakの機能を使わないとログアウトできないこ とがわかった。 そして、それがわかった当⽇の夜にその機能が実装され、無事解決。 仕様を決める人と開発する人に距離があると痛い目を見る 仕様チーム 開発チーム あとはよろしく できへんやん 仕様と開発は密に連携しよう DevOpsDays Tokyo 2021 / Apr 15, 2021 34
  31. © DENS O C ORPORATION All Rights Reserved. /00 たまたまKeyCloak側の実装が間に合ったので解決したが

    ❖ 実現可能性の確認が取れていない状態で顧客にコミットするのはリスクがある ❖ ⾃分で動かすことが⼤事、知っているとできるとの間にはギャップがある ❖ 難易度が⾼い機能については特に技術的スパイクを適宜⾏う 技術検証してから開発進める DevOpsDays Tokyo 2021 / Apr 15, 2021 35
  32. © DENS O C ORPORATION All Rights Reserved. /00 モブワークから学びを得たよという話

    DevOpsDays Tokyo 2021 / Apr 15, 2021 これまでは単独プレイ、⾃分が⼀番の専⾨家 悩んだときに頼れるのは、ネットの情報と勘。 ⾃分がその道のパイオニアになるのだ! もしネットでも載ってないことだったらもう詰む。⼀⼈で泣くしかなかった。 新しい⽂化、モブワーク 同じ課題を複数⼈で頑張って対処するのは初めての体験。 VSCodeのLiveShareとか、Nowなツール、最⾼。 ⾊んな知⾒が集まると、⾊んな勘所が集まるので、結果的に早く課題を解決できる。 普段なら独り⾔で終わる疑問が、独り⾔にならない。 ⼀⼈で5分考えても分からないことは、きっともう分からない。みんなで考えれば、 きっといつかはアイデアが出てくる。 ⼀⼈で悩むな、みんなで悩め! 36
  33. © DENS O C ORPORATION All Rights Reserved. /00 モブワークが機能するコツ

    DevOpsDays Tokyo 2021 / Apr 15, 2021 モブワークに慣れたチームに⼈が⼊ってくる形は機能する 今回はモブワークに慣れたチームに新しいメンバーが⼊ってくる形だったのでうまく機能した。 でもモブワークに興味がない、理解がない状態から始めるのは難しかったと思う。 モブワークを始めるときに向いているタスク ❖ 障害調査 ❖ アイデア出し ❖ 構成図の作成とか技術的な話 コミュニケーションを取りながら進める必要があるものには適⽤しやすく、効果もわかりやすい モブワークに興味がある⼈でベースを作り広げていく 37
  34. © DENS O C ORPORATION All Rights Reserved. /00 ❖

    次の開発ではもう少し⼤きなチームでこの働き⽅を試してみる ➢ モブワークを徐々に取り⼊れてみる ❖ 技術者間の交流を活発に ➢ SRE室が開催しているテックトークへの招待 ❖ 学びを活かす ➢ 難易度が⾼い部分については、技術的スパイクを実施してからコミットする コラボレーションは続く DevOpsDays Tokyo 2021 / Apr 15, 2021 38
  35. © DENS O C ORPORATION All Rights Reserved. /00 使用したツール群

    コミュニケーションツール Slack , Amazon Chime 情報共有基盤 DocBase タスク管理 Miro 共同編集 Visual Studio Code Live Share DevOpsDays Tokyo 2021 / Apr 15, 2021 39
  36. © DENS O C ORPORATION All Rights Reserved. /00 DevOpsDays

    Tokyo 2021 / Apr 15, 2021 今⽇持ち帰って欲しいこと 1. ⼩さいチームから変えていこう 2. いきなり100点を⽬指さない⼀つ⼀つ変えていく 3. 同志を⾒つけよう 40