$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
チーム開発における様々なボトルネックの整理 / Organization of bottlen...
Search
すてにゃん
March 18, 2023
Technology
0
2.8k
チーム開発における様々なボトルネックの整理 / Organization of bottlenecks in Team Development
YAPC::Kyoto 2023 前日祭 - connpass
のReject Conにて発表した時の資料です。
すてにゃん
March 18, 2023
Tweet
Share
More Decks by すてにゃん
See All by すてにゃん
dotfiles について話したい #湘なんか
stefafafan
2
350
意義から考えるObservability入門 #srenext
stefafafan
2
1.1k
高橋メソッド風の発表を生成するCLIツールをPHPで作った #phpcon_odawara
stefafafan
1
440
令和最新版 ソフトウェアエンジニアのためのDJ入門、あるいはDJに学ぶ仕事術 #ya8
stefafafan
2
480
一番やさしいDJ入門 2024
stefafafan
6
1.8k
『Goサブ会』によるチームを超えた知見展開、あるいは hatena.go に対する期待 #hatenago
stefafafan
0
1.9k
開発チーム横断タスクフォース 「Goサブ会」の 運用事例と今後の展望
stefafafan
0
700
Team Topologies輪読会とScrapboxの活用
stefafafan
1
280
Deployment Previewを用意する流れで学んだ良い仕事の進め方
stefafafan
0
1.2k
Other Decks in Technology
See All in Technology
LangChainとSupabaseを活用して、RAGを実装してみた
atsushii
0
160
PR TIMESにおけるNext.jsとcacheの付き合い方
apple_yagi
2
190
開志専門職大学特別講義 2024 デモパート
1ftseabass
PRO
0
210
Nihonbashi Test Talk #3_WebDriver BiDiと最新の実装状況 / WebDriver BiDi latest status
takeyaqa
1
150
2024年のModern Data Stackを振り返ろう~分野別の目玉アップデート情報まとめ~
sagara
0
260
Advancing the 3D Geospatial Ecosystem in Japan via Global Collaborations
osgeojp
0
170
リクルートのデータ基盤 Crois 年3倍成長!1日40,000コンテナの実行を支える AWS 活用とプラットフォームエンジニアリング
recruitengineers
PRO
1
130
深層学習のリペア技術の最新動向と実際 / DNN Repair Techniques for AI Performance Alignment for Safety Requirements
ishikawafyu
0
490
EthernetベースのGPUクラスタ導入による学びと展望
lycorptech_jp
PRO
0
580
[GDG DevFest Bangkok 2024] - The Future of Retail E-commerce with Gemini AI
punsiriboo
0
300
asumikamというカンファレンスオーガナイザの凄さを語る / The Brilliance of Asumikam
tomzoh
1
290
sre本読んだ感想
pisakun
0
230
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
427
64k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
We Have a Design System, Now What?
morganepeng
51
7.3k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
43
9.3k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
A Philosophy of Restraint
colly
203
16k
Designing for Performance
lara
604
68k
Making Projects Easy
brettharned
116
5.9k
Transcript
チーム開発における様々な ボトルネックの整理 すてにゃん (id:stefafafan) 2023/03/18 YAPC::Kyoto 2023 Reject Con 1
自己紹介 • すてにゃん (id:stefafafan / @stefafafan) • 2015- 株式会社はてな ◦
Webアプリケーションエンジニア ◦ 最近はスクラムマスター、テックリードなど 2
今日話すこと • チーム開発のサイクルを改善するにはどうす ればよいのか ◦ 状況に応じて取れる手段を提示 ◦ 読んだ本や記事、経験を元に分類分けしたものを共有 3
4 ケース1: 改善サイクルが 回っていない
ケース1: 改善サイクルが回っていない • 状況 ◦ 効率の悪い仕事の仕方を続けている ◦ 改善される見込みがない • 取れると良い手段
◦ アジャイルフレームワークを取り入れる 5
ケース1: 改善サイクルが回っていない • 大事なのは Incremental で Iterative である こと ◦
Incremental: 漸進的 ◦ Iterative: 反復的 • 課題の解消に向けて少しずつ着実に進めると 良い 6
ケース1: 改善サイクルが回っていない • 漸進的で反復的に仕事を進めるには? ◦ アジャイルフレームワークを導入すると良い ▪ Scrum とかはソフトウェア開発に限らず汎用的に使える 7
8 ケース2: ソフトウェア開発速度が 遅い
ケース2: ソフトウェア開発速度が遅い • そもそも「遅い」とはどういうことなのか • Four Keysの指標で会話すると良い ◦ デプロイの頻度 ◦
変更のリードタイム ◦ 変更障害率 ◦ サービス復元時間 9
ケース2: ソフトウェア開発速度が遅い • Four Keysはそれぞれの指標が満たされてい る必要がある • 例えば「デプロイ頻度は高いけど毎回障害が 発生している」だとサービス復旧などに時間 がとられてしまっていることとなる
10
ケース2: ソフトウェア開発速度が遅い • Four Keysの指標の改善にはどういうものが 効くのか ◦ Extreme Programming (XP)
のプラクティス ◦ DevOps のプラクティス 11
ケース2: ソフトウェア開発速度が遅い • Extreme Programming (XP) プラクティス (以下は一部の例の抜粋) ◦ 計画
▪ 小さい単位でリリースする ◦ コーディング ▪ ペアプログラミングで進める ◦ テスト 12
ケース2: ソフトウェア開発速度が遅い • DevOpsのプラクティス ◦ インフラ要件も一緒のプロジェクトで管理する ◦ CI/CDを整える ◦ Infrastructure
as Code (IaC) する ◦ 可観測性をあげる ◦ アプリケーションエンジニアがインフラのオーナー シップを持つ 13
14 ケース3: チーム内の連携が イマイチ
ケース3:チーム内の連携がイマイチ • 心理的安全性が足りない ◦ HRT (謙虚・尊敬・信頼) の欠如 ◦ コードレビューが辛い、気軽に発言できなくて課題が 隠されてしまう等
• プロセスの改善の前に信頼関係を作るところ から 15
ケース3:チーム内の連携がイマイチ • チームが自己組織化されていない ◦ エラスティックリーダーシップ ▪ サバイバルモード ▪ 学習モード ▪
自己組織化モード ◦ 現在のモードを自覚し、自己組織化へと導くにはどう すると良いかを考える 16
17 ケース4: チーム外との連携が イマイチ
ケース4:チーム外との連携がイマイチ • Team Topologies ◦ 現状の他チームとの関わりを図にする ◦ リリースまでの流れで毎回他チームとコミュニケー ションが発生していると効率が悪そうなど ◦
モノリシックなリポジトリのデプロイのたびに他チー ムに許可をとらないといけないなど 18
19 様々な話題があるが 上手く整理できないか
整理: スコープ別 • いくつかのスコープで考えることができる ◦ 職能チーム(エンジニアチーム、デザイナーチーム) ◦ 機能開発チーム(企画からリリースまで) ◦ チーム横断(同じ部署、会社レベルなど)
20
整理: カテゴリ別 • スコープごとに以下のようなカテゴリがある ◦ テクニカルな話題(コード設計、リファクタリング) ◦ プロセス周り(Scrum、XP) ◦ 人間関係(信頼、メンバーの成長)
21
スコープ✖カテゴリで考える • チームごとにどこにボトルネックがあるかは バラバラなのでスコープ×カテゴリで考えると 良い 22
1. 職能チーム 2. 機能開発チーム 3. チーム横断 1. テクニカルな話題 2. プロセス
3. 人間関係 23 スコープ✖カテゴリで考える
スコープ✖カテゴリで考える • エンジニア+デザイナー × テクニカル面 ◦ コードベースがデザイナーにとっても開発体験の良い ものになっているか会話しながら見直すなど • App
Engineer+SRE × プロセス ◦ DevOpsのプラクティスを導入すると良い ◦ デプロイを依頼するのではなくIaCやCI/CDを整える 24
スコープ✖カテゴリで考える • 会社のエンジニア組織 × メンバーの成長 ◦ チーム間のエンジニアの交流が足りているか ◦ 社内でのエンジニアの異動を促進していくと良いか 25
まとめ • チーム開発には様々なボトルネックが存在す る • スコープ×カテゴリ別に考えてどこから手をつ けていくかを考えると良さそう ◦ 足りていないところはどこかというのを出すのにおす すめ
26
参考文献 • Brian W. Fitzpatrick, Ben Collins-Sussman. Team Geek ―Googleのギークた
ちはいかにしてチームを作るのか. オライリージャパン. 2013. • Matthew Skelton, Manuel Pais. チームトポロジー 価値あるソフトウェアをす ばやく届ける適応型組織設計. 日本能率協会マネジメントセンター. 2021. • Nicole Forsgren Ph.D., Jez Humble, Gene Kim. LeanとDevOpsの科学 [Accelerate] テクノロジーの戦略的活用が組織変革を加速する. インプレス. 2018. • Roy Osherove. エラスティックリーダーシップ ―自己組織化チームの育て方. オ ライリージャパン. 2017. 27
参考文献 • Don Wells. “The Rules of Extreme Programming”. Extreme
Programming (xp): A Gentle Introduction. 1999. http://www.extremeprogramming.org/rules.html • hirokidaichi. “エンジニアリングマネージャ/プロダクトマネージャのための知識体系と読 書ガイド”. Qiita. 2021. https://qiita.com/hirokidaichi/items/95678bb1cef32629c317 • Tom Hall. “DevOps のベスト プラクティス”. Atlassian. 2023. https://www.atlassian.com/ja/devops/what-is-devops/devops-best-practices • Toshimaru. “『Team Geek』読んだ ~HRT(謙虚/尊敬/信頼)の精神を知り会社でサバイブし ていく方法~”. Hack Your Design!. 2019. https://blog.toshimaru.net/team-geek/ • yigarashi. “Four Keysがなぜ重要なのか - 開発チームのパフォーマンスを改善する方法に ついて”. yigarashiのブログ. 2022. https://yigarashi.hatenablog.com/entry/2022/05/30/093000 28