Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
初めての本当の意味でのチーム開発 / pmjp 2016-12-03
Search
yuma iwasaki
December 02, 2016
Technology
4
1.6k
初めての本当の意味でのチーム開発 / pmjp 2016-12-03
pmjp.slack.comオフ会&忘年会#6で話しました。
https://pmjp.connpass.com/event/44117/
yuma iwasaki
December 02, 2016
Tweet
Share
More Decks by yuma iwasaki
See All by yuma iwasaki
僕のキャリアとワインと鍋 / daikichijojipm
suthio
8
5.1k
「Laravel Novaの適切な使い方を考えてみる」 / laravel meetup tokyo vol 11
suthio
0
1.7k
バッチをGoにリプレイスして高速化した話 / GoGoGolangEdition!
suthio
2
28k
本当は怖くない AWS Lambda / speee_cafe_meetup06
suthio
2
770
広告配信サーバーにおけるBlue Green Deploymentの導入事例について \ SpeeeCafeMeetup05
suthio
3
1.7k
AWSインフラ構築ツールとしてのTerraform / SpeeeKaigi
suthio
1
2.1k
広告配信サーバーの設計について / Speee Engineer Meeting 2016-06-22
suthio
5
2.5k
しくじり先生 アドネットワーク開発でしくじった話 / yapc8oji
suthio
2
1.9k
Other Decks in Technology
See All in Technology
20241214_WACATE2024冬_テスト設計技法をチョット俯瞰してみよう
kzsuzuki
3
510
KnowledgeBaseDocuments APIでベクトルインデックス管理を自動化する
iidaxs
1
260
.NET 9 のパフォーマンス改善
nenonaninu
0
990
事業貢献を考えるための技術改善の目標設計と改善実績 / Targeted design of technical improvements to consider business contribution and improvement performance
oomatomo
0
100
ゼロから創る横断SREチーム 挑戦と進化の軌跡
rvirus0817
2
270
KubeCon NA 2024 Recap / Running WebAssembly (Wasm) Workloads Side-by-Side with Container Workloads
z63d
1
250
フロントエンド設計にモブ設計を導入してみた / 20241212_cloudsign_TechFrontMeetup
bengo4com
0
1.9k
AI時代のデータセンターネットワーク
lycorptech_jp
PRO
1
290
OpenAIの蒸留機能(Model Distillation)を使用して運用中のLLMのコストを削減する取り組み
pharma_x_tech
4
560
Snykで始めるセキュリティ担当者とSREと開発者が楽になる脆弱性対応 / Getting started with Snyk Vulnerability Response
yamaguchitk333
2
190
社外コミュニティで学び社内に活かす共に学ぶプロジェクトの実践/backlogworld2024
nishiuma
0
260
UI State設計とテスト方針
rmakiyama
2
600
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Unsuck your backbone
ammeep
669
57k
Making the Leap to Tech Lead
cromwellryan
133
9k
Adopting Sorbet at Scale
ufuk
73
9.1k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.9k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
810
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Rails Girls Zürich Keynote
gr2m
94
13k
Transcript
初めての本当の意味でのチーム開発
自己紹介 @suthio_ 株式会社Speee ネイティブ広告の配信システムを作っている
None
agenda 一年間やってきたこと 開発開始 リリース後 メンバー追加 いいチームとは? なぜチームが必要なのか いいチームとは いいチームを作るために
一年間やってきたこと
今年1 月、新規事業の開発リーダー を任された
当時の自分の状況 エンジニアとして、自分よりもメンバーの方がエ ンジニアリング能力が高い状態(Scala 、Golang を メインに開発しているのに自分の得意言語は Ruby ) 今までチームのことなんか考えたことないし、自 分が頑張って開発してなんとかしてきた
個人技の組み合わせがチームだと思っていて、チ ーム開発とかスクラムとかでうまくいくとか全然 信じていない
結局どういうことか 結局、自分が一番のプレイヤーのプロジェクトし かやったことがない マネジメントとかチーム開発を一切学んでこなか った そもそもそういったことを考えたこともなかった
そんな中
開発リーダーを任せられた
その時の状況 エンジニア4 名(僕を含む)、PO 1 名 1 月開発開始 要件ふわっとしてる なのに構想という名の夢が存在 なぜか3
月にリリースすることが決まっている
圧倒的成長機会✨
当然チーム体制を整える暇もなく、 気合駆動開発でプロジェクトを進 め、なんとかプロダクトをリリース
リリース後
リリース後状況 開発ルールがされてない統一 運用フロー無し ドキュメントはコア部分の一部のみ 監視は死活監視のみ
とても健全な運用ができるような体制 ではなかった
チーム状況 リリースを終えて疲弊している 属人性が高く、◦◦ さんが居ないと修正できないと いう状況 日々、積み上がっていくIssue
非常に良くない状況
今までだったら自分が頑張ることで大 体は解決できていた
自分が頑張ることで解決できる部分が 少なく、わからない部分も多かった。
解決する能力も時間も足りない...
自分1人の力では改善できない
当時の自分はどうすればいいかわからなかった 社内ではスクラムを導入するチームが増えてい て、うまくチームがあったので、スクラムを導入 しようか考えていた たまたま社内に居たアジャイルコーチにスクラム を導入するのはどうかを相談してみた
スクラム入れたいんですけど、どう いう風に入れたらいいですかね?
スクラムを入れるんじゃなく、まず は振り返りをしてみたらどうか?
言われたこと いきなりスクラムじゃなくアジャイルプラクティ スを少しずつ入れたらどうか スクラムを入れて失敗したらスクラムのせいにさ れる可能性がある 今すぐ全部を改善するより、今より少しずつ良く する方向を続けたらいいんじゃないか 今の状態はなにが課題なのかが明確化されてない ので、まずは振り返りを行うべき
振り返りをやってみた 思ったよりも改善したいという気持ちがあること がわかった チームとして解決するべき課題が見つかった メンバーの発散を行う必要があることがわかった 状況を整理した上でチームの進むべき方向性を揃 える必要があることがわかった
振り返りの際に決めたこと 必ず次の週までに最低一つは改善する
振り返りのコツ 結局、終わった後にチームメンバーがもやもやし ている状態は良くない 改善ポイントが見えていて、実行可能な状態にな っている チームメンバー振り返りの目的を理解している
振り返り後 チーム内で改善が行われやすくなった 共通認識が取りやすくなった チームの雰囲気がよくなった(気がした)
チーム運営についての提案も 出てきた タスクをポイントで見積ろう イテレーションで区切ろう ユーザーストーリーを作ろう
結果的にスクラムっぽくなった
5 月からはプロジェクトとして、スク ラムをやっていると言うようになった
メンバー追加
メンバー追加 今まではほぼ初期メンバーのみで開発をしていた ので、技術的負債の経緯や今後の動きについて、 共通認識が取れていた 新規メンバーと共通認識をとったり、背景を説明 する必要が出てきた それまでは初期のメンバーのみだったら問題なか ったが追加で入ったことで背景理解がないまま意 見を言うことが多々あった。(プラスの意味でも マイナスの意味でも)
その頃、僕はチームメンバーが目指すべき方向性 が揃ってない感を感じていた。
今までは作った経緯とかが共有され ている状態だったけど、共有されて なく、システムの詳細知識がない人 が入ってきたため、方向性が揃って なかった。
その時、タスクの粒度がバラバラにな っていることに気づいたため、いいタ スクとはなにかということを定義する ことにした。
いいタスクとはなんだろう?
考えてみたけど決まらなかった
逆に悪いタスクについて考えてみた
悪いタスクとは? やることが不明確 誰がやるか不明確 やることが多い、タスクが大きい タスクが小さすぎる 期限、優先度がわからない 工数が見積もりずらい 複数人の対応が必要
悪いタスクとは? 目的がわからない 関連するタスクがわからない 関連するタスクの担当者がわからない 進捗がわからない 完了の定義が不明 完了した後の対応がわからない
この悪いタスクじゃないタスクをいい タスクと定義することにした
新しいメンバーには適切細かい粒度 のタスクを渡して、チームに慣れて もらうことで、方向性がすりあって いった
このプロダクトの開発を通して本当の チーム開発というものを初めて学んだ
いいチームとはなにか?
なぜチームというものが必要なのか
なぜプロダクトを作るのか なんらかの課題を解決するため。 プロダクトを成功させるためにプロダクトを作っ ていると言っても過言ではない。 プロダクトを成功に必要な課題解決は個人一人だ けでは実現が困難なものが非常に多い。 ※ なにを作ればいいということがわかっていたと しても。
なぜチームというものが必要なのか 個人では実現することが困難なものに対して、複 数人で分担することによって、解決する可能性が 上がるため とはいえ、ただ複数人を集めただけじゃ本当の意 味でのチームではない チームでやることのメリットもあるけど、デメリ ットも当然あるので、 メリットを最大限活かせる方が良い
いいチームとは
いいチームとは チームが向かうべき方向性がはっきりしていて、 チームメンバーも方向性を理解している チームメンバーが積極的に意見を言える状態であ ること チーム全員が適切に責任を持てている チームがステークホルダーから信頼されている 継続的に素早く改善が行えていること
向かうべき方向性の統一 チームの向かうべき方向性を合わせることがすご く重要 どんな機能を作って欲しいか伝えるよりも、どう いう体験をユーザーに与えたいかを伝える
ファシリテーション MTG 時に議論を拡散させすぎない。 答えを言わずに自分達で気づいてもらえるように する 決定事項など大事なことは何度でも繰り返し言う ようにする
チームメンバーにどうやって動いて もらうか 人間は得をする方、損をしない方に動く ◦◦ をすると得をするものという状態にしてか ら、得だということを認識させる。 また、やらないと損という状態をどんどん作っ ていく。 どんどん巻き込ませて、責任を与えていく。 意見が言いやすい環境を作る
意見を言ってもマイナスならない状態を作る 場を用意する
ステークホルダーとのやり取 り 対立する形は良くない 技術ではなく、結果どうなるかということベース で話す 重要事項については何度も相手がわかるように確 認 自分も相手がやりたいことについてきちんと理解 する
素早く改善 必ず開発を止めるタイミングを作る(振り返り、 その他MTG 等) 積極的に意見を求め、少しずつでもいいので改善
その他やっておくと良いこと 焼肉ランチ 飲みに行く
焼肉ランチ 新しいメンバーを迎える際は焼肉ランチに行く これを儀式と言っている 同じ網の上で肉を焼くという行為がなんかいい感 じする なにより、おいしい
焼肉みやび https://tabelog.com/tokyo/A1307/A130702/130958 90/
飲みに行く 相手のことがわかり、距離が近くなる こだわりポイントがわかる その人の折れる部分、折れない部分がわかる
チームとは結局は人の集まり 相手のことを知って 自分のことを知ってもらって 相手と自分にとって一番いい方法を探す