SlideShare une entreprise Scribd logo
1  sur  80
チームとプロダクトをぶっ壊した話
@DevLOVE199 越境CON
2017/01/28
楽天株式会社
渡邉太一
2
はじめに
「楽天の人が楽天のユニフォームを着ている」!?
いいえ 違います
「ファンがイーグルスのユニフォームを着ています」
3
イーグルスファン
2005年~
楽天入社
2008年~
← 本日はこちらの「正装」を
着用しております
2009年クライマックスシリーズ 2nd stage 第4戦
8回裏の「バッテリーの交代」 について30分語れる方
いらっしゃいましたら是非お声がけください アツくお話しましょう
4
自己紹介
• Webエンジニア
• 言語: Java
• 「Dynamic Package Team」 リーダー
twitter:@taichiw0424
渡邉太一(わたなべたいち)
5
“Dynamic Package Team”
6
1.異動
2.チームをぶっ壊した話
3.プロダクトをぶっ壊した話
7
第1章
異動
8
2015年2月
9
異動前
在庫登録 検索・予約
ホテル
・
旅館
• 良いプロダクトと良いメンバーに恵まれていた
• 若手率が高いながらいいチームができて、満足しつつ
ちょっと やることを見失い始めていたかも
このプロダクトの
開発チームのリーダー
(2年半ほど)
エンド
ユーザー
10
うちのマネージャはそういうの許してくれない
ちょっと やることを見失い始めていたかも
突然の異動
「パッケージチーム」へ
11
パッケージチーム : サービス
12
パッケージチーム : メンバー
ユニットA ユニットB ユニットC
13
パッケージチーム : 評判
• 正直あまりいい噂は聞いていなかった
• 「上手くチームが回っていない」
• 前年3人辞めている
14
新たなる挑戦!
火事場で自分の力がどれだけ通用するか試してみたかった
15
事件
開始直後はエンジニアで監視
問題なさそうなのでそろそろ解散!… という時。
異動から二週間後。
16
一件の問い合わせ
楽天スーパーセール開催中!!
「セール開始と同時に出ているはずのバナーが出ていない」
という事業からの問い合わせ
17
状況
私 担当:Iさん
パッケージチーム
XXXチーム
18
経過
一旦解散しかかっていたが、残っていたメンバーにて部屋作成
19
詳しくないけど俺も調べる!
20
原因判明
一ヶ月ほど前に別案件でViewを修正した際のバグ
原因が判明したため、
対応は週明けで良い ということになり、ここで解散。
21
原因がわかった瞬間のIさんの一言
22
原因がわかった瞬間のIさんの一言
今までは こういう時一人だった…?
23
実はIさん
チームの「核」になってもらおうと思っていたメンバー。
しかし
既に転職が決まっていた。
去年辞めた3人に次ぐ4人目の、チームからの退職者。
24
決意
チームが機能していないことが理由で
退職者を出してしまうのは
彼で最後だ。
25
第2章
チームをぶっ壊す!
26
私が問題視していたもの
ユニットA ユニットB ユニットC
厚い「境」 厚い「境」
27
厚い壁の理由
ユニットA ユニットB ユニットC
• 各プロダクトの仕様やアーキテクチャが全く異なるため
担当を分けたほうが効率がいい (と、思われていた)
28
厚い壁の弊害
ユニットA ユニットB ユニットC
メモリリークが
解決しない…
解決方法を知っているが
問題が起こっていることを知らない
この壁こそが「みんなで調べられない」
元凶だと思った
29
目標
ユニットA ユニットB ユニットC
この「境」を取り除いて
“One Team”
を作る!!!
30
…ところが。
それ以前に
まず解くべき課題があった
31
初めにしたこと
• 全員と 1対1の面談
32
初めにしたこと
• 全員と 1対1の面談
運用が多いです。
辛いです。
33
初めにしたこと
• 全員と 1対1の面談
運用が多いです。
辛いです。
運用が多いです。
辛いです。
34
初めにしたこと
• 全員と 1対1の面談
運用が多いです。
辛いです。
運用が多いです。
辛いです。
運用が多いです。
辛いです。
35
…ということで
チームをぶっ壊す前に
第1.5章
運用をぶっ壊す!
36
分担できないの?
ユニットA ユニットB ユニットC
37
作業可能なのは3人
ユニットA ユニットB ユニットC
社員
パートナー
スタッフ
38
助け合えるといいのだけど
ユニットA ユニットB ユニットC
社員
39
他サービスを知らない
ユニットA ユニットB ユニットC
社員
40
一人で多くの「運用」をすることになる
運用が多いです。
辛いです。
41
対案を考えてみたけど
人を増やす ×すぐにはできない
作業量を減らす ◯
運用が多いです。
辛いです。
【対案】
42
本番作業に時間がかかりすぎ
サーバ 20台くらい
心を込めて
一台ずつマニュアル作業
43
本番作業に時間がかかりすぎ
サーバ 20台くらい
Capistranoで自動化!
早い!!
44
定常な「イレギュラー作業」
Database
「お客さまがXXXな理由でキャンセルされたので
キャンセル料を0円にしてください」
毎月来る → でもなぜか手運用
「秘伝の手順」
45
定常な「イレギュラー作業」
Database
ツールを作って依頼者が自分で更新できるように!
「秘伝の手順」
もう作業
しなくていい!
46
尽きない問い合わせ
楽天トラベルの標準問い合わせフロー
事業
問い合わせ
専門チーム
開発
チーム
質問
回答
自力で回答できないときだけ
質問、調査依頼
当時のパッケージチーム
事業
問い合わせ
専門チーム
47
レンタル移籍!
事業
問い合わせ
専門チーム
• 調査のヘルプ
• ログの調べ方、プログラムの調べ方など
調査のノウハウを伝授
問い合わせが
激減した!!
48
結果
49
少し余裕が出てきた!
運用が減った!
辛くない!!
コーディング
するぞ-!!
もっと運用
減らすぞ-!!
50
実は…
問い合わせ
専門チーム
このレンタル移籍
裏目的が。
51
ユニット数 3→2へ
ユニットA ユニットB ユニットC
1ユニットに統合!
52
広範囲な知識を持ったエンジニアの育成
ユニットA ユニットB
知ってる!!知ってる!!
53
改めて。
第2章
チームをぶっ壊す!
54
これではまだ「情報共有」が難しい
ユニットA ユニットB
デイリーミーティング
プランニング
ふりかえり
デイリーミーティング
プランニング
ふりかえり
55
デイリーミーティングを一緒にやろう!
私「デイリーミーティング一緒にやりません?」
メンバー「人数増え過ぎちゃうし、
関係ない話を聞いても時間のムダ…」
お互いの状況を
早く・頻繁に・ちょっとずつ 共有して欲しい
「魔法の言葉」使用。
56
魔法の言葉
とりあえず1スプリントだけやらせて!
二週間後にふりかえりがあるので
そこで、どうだったか意見を聞かせてください
57
「とりあえず1スプリント」作戦
抵抗なく受け入れてもらえる
2週間後にきいてみると
「良かったのでこのまま続けたい」 と言われることが多い
(そうでないときもある)
58
ついに!
ユニットA ユニットB
デイリーミーティング
プランニング
ふりかえり
プランニング
59
「合体ふりかえり」初回におきた奇跡
一緒にふりかえったから得られた成果!!!
Problem:
XXXができなくて…
それ、
YYYYすると、できますよ
60
破壊
チームをぶっ壊して
One Team になった!!
61
更に
• 相互でのコードレビュー
• ユニットテストの書き方など共通課題の議論
• トラブル対応は誰でも可能
.
.
.
62
もう
63
一人じゃない!
• 知識や問題を相互に共有するチーム
• お互いに助け合えるチーム
• 「誰か一人しかできないこと」がないチーム
いいチームになった!!!
64
……あれ、この流れは…?
65
組織改編。
Dynamic Package Team Hotel Search Engine Team
主務
このチームのリーダー。
兼務 New!!
このチームのリーダー。
担当プロダクトと
メンバーが増えた。
66
実は…
この組織変更があってから1ヶ月。
【理由】 扱っているプロダクトも、今までの文化も、違いすぎるから
デイリーミーティング
プランニング
ふりかえり
デイリーミーティング
プランニング
ふりかえり
67
でも…
これって俺が必死に破壊した組織では?
今度は自分が「境」を作ってしまっている…?
68
必殺「1スプリントだけ作戦」実行中
次はこの「境」を『超える!!』
デイリーミーティング
プランニング
ふりかえり
プランニング
ふりかえり
69
一緒に壁を超えたい人募集中!
http://corp.rakuten.co.jp/careers/engineering/
70
ここまではマネージャとしての私
71
自己紹介
• Webエンジニア
• 言語: Java
• 「Dynamic Package Team」 リーダー
渡邉太一(わたなべたいち)
本業はエンジニアなんです
72
ちょっとだけ
エンジニアっぽいことも
話させてくださいね
73
第3章
プロダクトをぶっ壊す!
74
そびえ立つ6のモノリス
• それぞれ似た機能なのに作りが全然違う
• 各担当者が広範囲なシステムを
それぞれ把握しなければならない
検索
予約
管理画面
検索
予約
管理画面
検索
予約
管理画面
検索
予約
管理画面
検索
予約
管理画面
検索
予約
管理画面
サービスA サービスB サービスC サービスD サービスE サービスF
75
理想
予約
管理画面
検索
サービスA サービスB サービスC サービスD サービスE サービスF
ユニットA
ユニットB
ユニットC
• 機能ごとに共通のコンポーネントで実装。
• 担当は「機能ごと」に。
76
2016
予約
管理画面
検索
予約
管理画面
検索
予約
管理画面
プロダクト破壊の第一弾
国内ダイナミックパッケージサービスの検索のService化
• 既存のコードは捨てて、
読みやすさ・理解のしやすさにこだわった新しいプログラムに。
77
今までの話って
この辺の
マイナーな
サービス
の話
78
さらに 2017年
楽天トラベル
One Platformへ
79
楽天トラベル OnePlatformへ
全サービス横断の
機能開発
検索・予約・在庫登録・管理…
microservice
UIは
Single Page Applicationで作る?
サービスはどこで分ける?
クラス設計は共通化できる?
テストは?
80
一緒に楽天トラベルを「ぶっ壊したい」人募集中!
http://corp.rakuten.co.jp/careers/engineering/

Contenu connexe

Plus de Taichi Watanabe

ポジションペーパー
ポジションペーパーポジションペーパー
ポジションペーパーTaichi Watanabe
 
2番ペゲーロとは何だったのか
2番ペゲーロとは何だったのか2番ペゲーロとは何だったのか
2番ペゲーロとは何だったのかTaichi Watanabe
 
私がなぜ今日ユニフォームを着ているのか
私がなぜ今日ユニフォームを着ているのか私がなぜ今日ユニフォームを着ているのか
私がなぜ今日ユニフォームを着ているのかTaichi Watanabe
 
あの選手なんでスタメン外されたん
あの選手なんでスタメン外されたんあの選手なんでスタメン外されたん
あの選手なんでスタメン外されたんTaichi Watanabe
 
「エース」と「ローテーション」
「エース」と「ローテーション」「エース」と「ローテーション」
「エース」と「ローテーション」Taichi Watanabe
 
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LT
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LTエンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LT
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LTTaichi Watanabe
 
2014年NPBたらいまわされ十傑
2014年NPBたらいまわされ十傑2014年NPBたらいまわされ十傑
2014年NPBたらいまわされ十傑Taichi Watanabe
 
スクラムマスター1年生⇒2年生
スクラムマスター1年生⇒2年生スクラムマスター1年生⇒2年生
スクラムマスター1年生⇒2年生Taichi Watanabe
 
特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-
特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-
特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-Taichi Watanabe
 
Web API デザインの鉄則 第2章
Web API デザインの鉄則 第2章Web API デザインの鉄則 第2章
Web API デザインの鉄則 第2章Taichi Watanabe
 
俺の「機能横断的チーム」に近づくためのあれこれ
俺の「機能横断的チーム」に近づくためのあれこれ 俺の「機能横断的チーム」に近づくためのあれこれ
俺の「機能横断的チーム」に近づくためのあれこれ Taichi Watanabe
 
10%Rule -Challenge to Making Innovative Team- @RakutenTechnologyConference2012
10%Rule -Challenge to Making Innovative Team- @RakutenTechnologyConference201210%Rule -Challenge to Making Innovative Team- @RakutenTechnologyConference2012
10%Rule -Challenge to Making Innovative Team- @RakutenTechnologyConference2012Taichi Watanabe
 

Plus de Taichi Watanabe (13)

ポジションペーパー
ポジションペーパーポジションペーパー
ポジションペーパー
 
2番ペゲーロとは何だったのか
2番ペゲーロとは何だったのか2番ペゲーロとは何だったのか
2番ペゲーロとは何だったのか
 
私がなぜ今日ユニフォームを着ているのか
私がなぜ今日ユニフォームを着ているのか私がなぜ今日ユニフォームを着ているのか
私がなぜ今日ユニフォームを着ているのか
 
あの選手なんでスタメン外されたん
あの選手なんでスタメン外されたんあの選手なんでスタメン外されたん
あの選手なんでスタメン外されたん
 
「エース」と「ローテーション」
「エース」と「ローテーション」「エース」と「ローテーション」
「エース」と「ローテーション」
 
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LT
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LTエンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LT
エンドツーエンドテストを自動化したらチームがすごく良くなった@XPまつり2015LT
 
Reactive Programing
Reactive ProgramingReactive Programing
Reactive Programing
 
2014年NPBたらいまわされ十傑
2014年NPBたらいまわされ十傑2014年NPBたらいまわされ十傑
2014年NPBたらいまわされ十傑
 
スクラムマスター1年生⇒2年生
スクラムマスター1年生⇒2年生スクラムマスター1年生⇒2年生
スクラムマスター1年生⇒2年生
 
特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-
特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-
特大のヤラカシからの復活 -俺とみんながテストコードを書き出すまで-
 
Web API デザインの鉄則 第2章
Web API デザインの鉄則 第2章Web API デザインの鉄則 第2章
Web API デザインの鉄則 第2章
 
俺の「機能横断的チーム」に近づくためのあれこれ
俺の「機能横断的チーム」に近づくためのあれこれ 俺の「機能横断的チーム」に近づくためのあれこれ
俺の「機能横断的チーム」に近づくためのあれこれ
 
10%Rule -Challenge to Making Innovative Team- @RakutenTechnologyConference2012
10%Rule -Challenge to Making Innovative Team- @RakutenTechnologyConference201210%Rule -Challenge to Making Innovative Team- @RakutenTechnologyConference2012
10%Rule -Challenge to Making Innovative Team- @RakutenTechnologyConference2012
 

Dernier

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 

Dernier (9)

論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 

チームとプロダクトをぶっ壊した話