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
Team Refactoring -強いチームをつくる技術- #dotsconf
Search
TAKAKING22
February 27, 2016
Technology
16
2.8k
Team Refactoring -強いチームをつくる技術- #dotsconf
2016年2月27日(土)Dots Conference Spring 2016にて。
「Team Refactoring -強いチームをつくる技術-」。
TAKAKING22
February 27, 2016
Tweet
Share
More Decks by TAKAKING22
See All by TAKAKING22
受託開発でもアジャイル開発できました / Agile in Contract Development
takaking22
19
7.7k
AI時代のアジャイル開発(XP祭り2024版) / Agile Development in the AI Era in XPJUG
takaking22
15
4.5k
我々はなぜテストを書くのか / Why we write test codes
takaking22
7
1.1k
AI時代のアジャイル開発 / Agile Development in the AI Era
takaking22
2
970
スクラムガイドに載っていないスクラムのはじめかた - チームでスクラムをはじめるときに知っておきたい5個のコツ - / How to start Scrum that is not written in the Scrum Guide
takaking22
21
7.8k
よいチームをよい雰囲気を保ったままよい組織にスケールさせていくためにできること / What you can do to scale a good team into a good organization
takaking22
12
6.1k
Open Space Technology Introducion (EN)
takaking22
2
200
オープンプロポーザルの文化をよいものにしたい / improve the culture of open proposals
takaking22
1
1.2k
いきいきした受託開発をするためにアジャイルチームができること / What Agile Teams Can Do for Lively Contract Development
takaking22
3
3k
Other Decks in Technology
See All in Technology
CZII - CryoET Object Identification 参加振り返り・解法共有
tattaka
0
380
組織貢献をするフリーランスエンジニアという生き方
n_takehata
2
1.3k
【Developers Summit 2025】プロダクトエンジニアから学ぶ、 ユーザーにより高い価値を届ける技術
niwatakeru
2
1.4k
Classmethod AI Talks(CATs) #16 司会進行スライド(2025.02.12) / classmethod-ai-talks-aka-cats_moderator-slides_vol16_2025-02-12
shinyaa31
0
110
地方拠点で エンジニアリングマネージャーってできるの? 〜地方という制約を楽しむオーナーシップとコミュニティ作り〜
1coin
1
230
リーダブルテストコード 〜メンテナンスしやすい テストコードを作成する方法を考える〜 #DevSumi #DevSumiB / Readable test code
nihonbuson
11
7.3k
PHPで印刷所に入稿できる名札データを作る / Generating Print-Ready Name Tag Data with PHP
tomzoh
0
110
プロダクトエンジニア構想を立ち上げ、プロダクト志向な組織への成長を続けている話 / grow into a product-oriented organization
hiro_torii
1
220
明日からできる!技術的負債の返済を加速するための実践ガイド~『ホットペッパービューティー』の事例をもとに~
recruitengineers
PRO
3
410
Nekko Cloud、 これまでとこれから ~学生サークルが作る、 小さなクラウド
logica0419
2
980
エンジニアのためのドキュメント力基礎講座〜構造化思考から始めよう〜(2025/02/15jbug広島#15発表資料)
yasuoyasuo
18
6.9k
表現を育てる
kiyou77
1
220
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
35
1.6k
A Modern Web Designer's Workflow
chriscoyier
693
190k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Producing Creativity
orderedlist
PRO
344
39k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
1k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
Rebuilding a faster, lazier Slack
samanthasiow
80
8.8k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.5k
Making Projects Easy
brettharned
116
6k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Transcript
5FBN3FGBDUPSJOH ڧ͍νʔϜΛͭ͘Δٕज़ ٴ෦ܟ༤ !5",",*/( 1IPUPCZ/BUVSBM)FBSU IUUQTHPPHMWK;-
!5",",*/( ٴ෦ܟ༤ !5",",*/( ✓ָఱגࣜձࣾ ✓ՎͬͯགྷΕΔΤϯδχΞ ✓ੜͷΞδϟΠϥʔ ✓अಓεΫϥϜϚελʔ ✓νΣϯδΤʔδΣϯτ ✓ΞΠυϧϚελʔ ✓ϨΠϯϝʔΧʔ
!5",",*/( ετϨονλΠϜ 1IPUPCZ4*-)06&55&%&4*(/ IUUQLBHFEFTJHODPN
!5",",*/( ·ΘΓΛݟ͍ͯͩ͘͞ ✓͙͢ʹཱͬͯΔਓ ✓·ΘΓΛݟͯ͡ΊΔਓ ✓ઈରʹΖ͏ͱ͠ͳ͍ਓ ✓ϊϦϊϦͳਓ ✓ΠϠΠϠͳਓ
!5",",*/( 1IPUPCZ.FMBOJF IUUQTHPPHM#R("/X ͍ΖΜͳਓ͕͍Δத νʔϜͰͷͮ͘Γ͢Δͷେม
!5",",*/( ։ൃݱͰΑ͘ݟΔ ✓ϨΨγʔγεςϜ ✓ϝϯόʔͷεΩϧ͕͍ ✓ਓࡐ͕ෆ͍ͯ͠Δ ✓ׂΓࠐΈλεΫ͕ଟ͍ ✓͍ͭԌ্͍ͯ͠Δ
!5",",*/( 1IPUPCZϑϦʔࣸਅૉࡐͺͨͦ͘ IUUQTXXXQBLVUBTPDPN ࣮ຆͲ͕ٕज़తͳͰͳ͘ νʔϜɾίϛϡχέʔγϣϯͷ
!5",",*/( ࣮ࡍͷͱ͜ΖɺιϑτΣΞ։ൃ্ͷͷ ଟ͘ɺٕज़తͱ͍͏ΑΓࣾձֶతͳͷͰ͋Δ CZτϜɾσϚϧίςΟϞγʔɾϦελʔʢϐʔϓϧΣΞʣ
!5",",*/( ։ൃͷΈ·͍ͬͯΔ͕ɺ ݱͷ͋·ΓมΘͬͯͳ͍
!5",",*/( 1IPUPCZMPBCBDPO IUUQTHPPHMKQ697: l;ͭ͏zʹ͍ͬͯΔ͚ͩͰ ͏·͍͔͘ͳ͍ͷ͔͠Εͳ͍
!5",",*/( 1IPUPCZ$ISJT1PUUFS IUUQTHPPHM7/L['( ࠩͳΜͩΖ͏͔ʁ
!5",",*/( ✓μϝͳϓϩμΫτΛΑ͍ͭ͘ΓํͰ ͭ͘Δͱμϝͳͷ͕ੜ·ΕΔ ✓Α͍ϓϩμΫτΛμϝͳͭ͘ΓํͰ ͭ͘Δͱμϝͳͷ͕ੜ·ΕΔ Α͍ϓϩμΫτΛΑ͍ͭ͘ΓํͰ ͭ͘Δඞཁ͕͋Δ
!5",",*/( 1IPUPCZ(JVTFQQF.JMP IUUQTHPPHM/2797 ϓϩμΫτܧଓ͢Δ
!5",",*/( Ϗδωε ։ൃ νʔϜ ϓϩμΫτ։ൃͷߏཁૉ
!5",",*/( νʔϜ ։ൃ Ϗδωε νʔϜ͕Ϗδωεͱ։ൃͷج൫
νʔϜ !5",",*/( νʔϜ͕༳Β่͛Εͯ͠·͏ ։ൃ Ϗδωε
!5",",*/( Α͍ϓϩμΫτΛ Α͍ͭ͘ΓํͰ ͭ͘Γଓ͚Δ ڧ͍νʔϜ͕ඞཁ 1IPUPCZ/BUVSBM)FBSU IUUQTHPPHMWK;-
!5",",*/( 4MJEFCZ3ZV[FF͞Μ IUUQHPPHM-NDRK1
!5",",*/( ΤϯδχΞͷ͕ࣗɺ ࣮ࡍͷݱͰԿখ͞ͳࣦഊ Λ܁Γฦ͠ͳ͕Βڧ͍νʔϜΛ ͭ͘ΔͨΊʹ͖ͬͯͨ͜ͱɺ ͦͷதͰಘͨνʔϜͮ͘Γͷ ίπͱඞཁͳϚΠϯυηοτ ࠓ͢͜ͱ
!5",",*/( ڧ͍νʔϜͱ
!5",",*/( νʔϜɺڞ௨ͷతɺୡ͖͢ ඪɺͦͷͨΊͷΓํΛڞ༗͠ɺ ࿈ଳΛՌͨͤΔิతͳεΩϧ Λඋ͑ͨগਓͷू߹ମ CZ8JLJQFEJB
!5",",*/( 1IPUPCZ'MBWJPd IUUQTHPPHM(;'J νʔϜʺӊ߹ͷऺ
!5",",*/( 1IPUPCZ(SPVOEIPQQJOH.FSTFCVSH IUUQTHPPHMZI[3Y ڞ௨ͷతɺίϥϘϨʔγϣϯ
!5",",*/( ڧ͞ͷఆٛνʔϜʹΑͬͯҧ͏ 1IPUPCZϑϦʔࣸਅૉࡐͺͨͦ͘ IUUQTXXXQBLVUBTPDPN
!5",",*/( ڞ௨͍ͯ͠Δ͜ͱ ✓ ʜ OҎ্Ͱ͋Δ ✓มԽʹڧ͍ ✓νʔϜͷจԽ͕ଘࡏ͢Δ ✓վળαΠΫϧ͕·Θ͍ͬͯΔ ✓νʔϜ͕ܧଓతͰ͋Δ
O
!5",",*/( νʔϜϦϑΝΫλϦϯάͷਐΊํ
1IPUPCZ/BUVSBM)FBSU IUUQTHPPHMWK;- !5",",*/( ڧ͍νʔϜҙࣝతʹͭ͘Δ
!5",",*/( 2୭͕ʁ "νʔϜ͕
1IPUPCZ&MJ$ISJTUNBO IUUQTHPPHM[P28 !5",",*/( ୭͔͕͍ͬͯΔܧଓ͠ͳ͍ ࣗసंΛԡ͘͢Β͍ͷΠϝʔδ
!5",",*/( ࣗୡͰࣗୡΛڧ͘͢Δ ͦͯͦ͠ΕΛࣗୡͰଓ͚Δ
!5",",*/( 5FBN3FGBDUPSJOH 1IPUPCZ3BJOJFS.BSUJO"NQPOHBO IUUQTHPPHMXW;37
!5",",*/( ࠓ νʔϜͷࠓΛΔ
!5",",*/( ࠓ ڧ ڞ௨ͷతΛͭ͘Δ
!5",",*/( ࠓ ڧ ࣍ ϒϨΠΫμϯͨ͠ඪΛઃఆ
!5",",*/( ࠓ ڧ ࣍ ࣮ࢪ˰ৼΓฦΓ˰࣍ͷඪΛઃఆ
!5",",*/( ࠓ ڧ ͦΕΛͻͨ͢Β܁Γฦ͢
!5",",*/( 5FBN3FGBDUPSJOH νʔϜͷࠓΛΔ ڞ௨ͷతΛͭ͘Δ తΛϒϨΠΫμϯͯ͠ඪΛઃఆ ݁ՌΛͰ͖Δ͚ͩ7JTVBMͰ;Γ͔͑Δ ͦΕΛͻͨ͢Β܁Γฦ͢
!5",",*/( 4MJEFCZ3ZV[FF͞Μ IUUQHPPHM-NDRK1 ࠞཚ͍ͯ͠ΔνʔϜ ͜ͷ͋ͨΓΛ͏Ζ͏Ζ ͍ͯ͠Δ͜ͱ͕ଟ͍
!5",",*/( CZ7MBEJNFS4IJPTIWJMJ IUUQTHPPHM$NO&.# ࠞཚ͍ͯ͠Δͱ͜ΖͰ ઓͯ͠͞ΒͳΔࠞཚΛੜΉ
!5",",*/( 5FBN3FGBDUPSJOH νʔϜͷࠓΛΔ ࠔ͍ͬͯΔ͔Βղܾ͢Δ ৼΓฦΓͷΛͭͬͯ͘ޭΛتͿ ͠Β͘ଓ͚ͯश׳Խ͢Δ ڞ௨ͷతΛͭ͘Δ తΛϒϨΠΫμϯͯ͠ඪΛઃఆ ݁ՌΛͰ͖Δ͚ͩ7JTVBMͰ;Γ͔͑Δ ͦΕΛͻͨ͢Β܁Γฦ͢
!5",",*/( ࣮ࡍͷݱͰ͍ͬͯΔ 5FBN3FGBDUPSJOHΛ Ұ෦͝հ
!5",",*/( $BTF POΧϑΣτʔΫ ✓νʔϜʹೖͬͨΒ࣮ࢪ͢Δ ✓֤νʔϜϝϯόʔͱPOͰ͢ ✓ίʔώʔΛҿΈͳ͕Βؾܰʹ͢ ✓ͳΔ͘૬खʹͯ͠Β͏ ✓૬खͷߟ͍͑ͯΔ͜ͱΛௌ͘ ✓ʮ͜͏ͳͬͨΒ͍͍ͷʹͳʯ ✓ͦͷޙఆظతʹ࣮ࢪ͢Δ
!5",",*/( $BTF CZ.BUUIFX)VSTU IUUQTHPPHMD36Z9 େ͖ͳʹօؾ͍͍ͮͯΔ ݸਓݸਓͷຊԻΛ͢ Ωʔύʔιϯ͕Θ͔Δ
!5",",*/( $BTF ;Γ͔͑Γʢॳظʣ ✓νʔϜʹೖͬͨΒػձΛ͏ ✓࠷ॳΞΠεϒϨΠΫʹྗΛೖΕΔ ✓֤ݸਓ͕͢ػձΛͭ͘Δ ✓શһͰߟ͑ͯબ͢Δ ✓খ͞ͳޭΛେ͖͘تͿ ✓࠷ޙʹଓ͚Δ͔Ͳ͏͔Λ͏ ✓ఆظతʹ࣮ࢪ͢Δ
!5",",*/( $BTF গͣͭ͠Φʔφʔγοϓ͕ੜ·ΕΔ ҰఆͷϦζϜ͕ੜ·ΕΔ
!5",",*/( $BTF νʔϜΠϯηϓγϣϯσοΩ ✓ࣗୡͰνʔϜͷڞ௨ͷతΛ࡞Δ ✓Ͱ͖Δ͚ͩݟ͑ΔՌΛઃఆʹ͢Δ ✓ఆظతʹ;Γ͔͑ͬͯߋ৽͢Δ ✓Ϛωʔδϟʔͱ͢Γ߹ΘͤΔ ✓͕࣌ؒऔΓʹ͚͘ΕɺݸผʹώΞ Ϧϯάͯ͠Ұ෦·ͱΊ͓ͯ͘ ✓ͨͩ͠࠷ޙνʔϜશһͰ߹ҙ͢Δ
!5",",*/( $BTF
!5",",*/( $BTF ✓νʔϜͷϛογϣϯ ✓νʔϜͷςʔϚ ✓νʔϜ๊͕͍͑ͯΔ ✓νʔϜϨʔμʔνϟʔτ ✓νʔϜϩʔυϚοϓ ✓ݸਓͷνʔϜͷߩݙ
!5",",*/( $BTF νʔϜͷڞ௨ͷΰʔϧ͕ ໌จԽ͞ΕΔ
!5",",*/( $BTF νʔϜϨʔμʔνϟʔτ ✓νʔϜʹͱͬͯॏཁͳτϐοΫΛ ֤ࣗͰॻ͖ग़ͯ͠ڞ༗͢Δ ✓ಛʹେࣄͩͱࢥ͏ͭʹථ ✓બΜͩͭʹ͍֤ͭͯࣗͰ ຬͰݱࡏͷνʔϜΛධՁ͢Δ ✓શһͷฏۉΛϨʔμʔԽ͢Δ ✓ఆظతʹৼΓฦΓਐΛه͢Δ
!5",",*/( $BTF
!5",",*/( $BTF ࣗୡͰࣗୡͷ ఆੑతͳධՁΛ͢Δ
!5",",*/( $BTF νʔϜϩʔυϚοϓ ✓νʔϜͰ5SZ͖͢͜ͱɾղܾͨ͠ ͍Λ֤ࣗͰॻ͖ग़͢ ✓Ϩʔμʔνϟʔτͷ߲ͷɺ ࠷͍ۙτϐοΫͷۙ͘ʹషΔ ✓τϐοΫ͝ͱʹ༏ઌॱҐΛܾΊΔ ✓݁ՌΛݩʹϩʔυϚοϓΛ࡞͢Δ ✓Ϛωʔδϟʔͱ͢Γ߹ΘͤΔ
!5",",*/( $BTF
!5",",*/( $BTF
!5",",*/( $BTF νʔϜվળͷϩʔυϚοϓ͕ શһͷڞ௨ೝࣝʹͳΔ
!5",",*/( $BTF εΩϧϚοϓ ✓νʔϜʹඞཁͳεΩϧηοτΛϦε τΞοϓ͢Δ ✓֤ϝϯόʔ͕ࣗݾධՁΛ࣮ࢪ͢Δ FYˑਓʹڭ͑ΒΕΔ ˓̍ਓͰͰ͖Δ ˚αϙʔτ͕͋ΕͰ͖Δ ̇ͬͯΈ͍ͨ
✓ఆظతʹߋ৽͢Δ ✓৽ϝϯόʔͷड͚ೖΕ࣌࠾༻໘ஊ ͷ࣌ʹ༻͢Δ ✓֤εΩϧͷڭҭίϯςϯπΛఏڙ
!5",",*/( $BTF
!5",",*/( $BTF νʔϜͷڧΈɾऑΈ͕Θ͔Δ ݸਓͷεΩϧΞοϓͷඪʹͳΔ ϝϯόʔೖସͷஅࡐྉʹͳΔ
!5",",*/( ίπ ✓ຊϓϨθϯଞਓͰͳ͘ νʔϜ͔ΒͷֶͼΛୈҰʹ͢Δ ✓νʔϜʹɺݸਓʹௌ͢Δ ✓খͯ͘͞܁Γฦ͠ɺଓ͚Δ ✓νʔϜָࣗ͠Ή ✓ແཧ͠ͳ͍ɺૣΊʹఘΊΔ
!5",",*/( FYଓ͚Δͱʜ ճ;Γ͔͑ΓΛͯ͠ ݸͷΑ͔ͬͨΛݟ͚ͭͯ ݸͷͱ͖߹͍ ݸͷ5SZΛ͖ͯͨ͠
!5",",*/( FYଓ͚Δͱʜ ΠϠͰΑ͘ͳΔ 5SZͷ૯
!5",",*/( νʔϜΛ͑ͨͦͷઌ
!5",",*/( νʔϜ ։ൃ Ϗδωε νʔϜ͕Ϗδωεͱ։ൃͷج൫
!5",",*/( νʔϜ ։ൃ Ϗδωε ৫ νʔϜ ։ൃ Ϗδωε ৫͕νʔϜͷج൫
!5",",*/( νʔϜ ։ൃ δωε ৫ νʔϜ ։ൃ Ϗδωε ৫͕νʔϜΛࢧ͑ΒΕͳ͍߹
!5",",*/( ৫ͷߏ͕γεςϜͷઃܭʹ େ͖ͳӨڹΛ༩͑Δ CZϝϧϰΟϯɾίϯΣΠʢίϯΣΠͷ๏ଇʣ
!5",",*/( ৫ͷߏ͕ϓϩμΫτͷ࣭ʹ େ͖ͳӨڹΛ༩͑Δ CZϑϨσϦοΫɾϒϧοΫεʢϒϧοΫεͷਓ݄ͷਆʣ
!5",",*/( "SUJDMFCZ1VCMJDLFZ IUUQHPPHM&-X ৫͕࣭ʹ༩͑ΔӨڹͷ࣮ূ
!5",",*/( ࠷ۙͷ)PU5PQJDT৫བྷΈ %FW0QT .JDSPTFSWJDF Ձఏڙ·ͰͷϦʔυλΠϜͷ ͳͷͰ৫Λ͑ͨվળ͕ඞཁ ৫ͱηοτͰߟ͑ͣʹྲྀߦΓʹ ඈͼ͍ͭͯʹಋೖ͢Δͱࣦഊ͢Δ
!5",",*/( 1IPUPCZ%FOOJT+BSWJT IUUQTHPPHM%78.CC ΧϕΛ͑ΔͨΊʹ ৫վળෆՄܽ
!5",",*/( 1IPUPCZ%BOEFMJPO4PVQ IUUQTHPPHMF9KNI ৫ͷʹͳΔͱݏԎ͕ͪ͠
!5",",*/( ࣗୡͷ৫Λม͑Δͷ୭ͩ 1IPUPCZϑϦʔࣸਅૉࡐͺͨͦ͘ IUUQTXXXQBLVUBTPDPN
!5",",*/( ະདྷձٞ ✓৫ʹ͍ͭͯ;Γ͔͑Δ ✓ϚωδϝϯτਞࢀՃ ✓େ͖ͳٞͷରʹ͢Δ ✓ະདྷࢤͰߟ͑Δ ✓ͦͷ··ҿΈձʹߦ͘ྲྀΕ ✓͏·͍ͬͨ͘ΒαΠΫϧʹ͢Δ $BTF
!5",",*/( ҼՌؔਤΛͭͬͯ͘ࣄલ४උ $BTF
!5",",*/( શһͰ৫ͷɾ՝Λੳ $BTF
!5",",*/( νʔϜʹผΕͯվળࡦΛߟ͑Δ $BTF
!5",",*/( ✓ࢣঊͱͳΔΤϯδχΞͷෆ ✓৽͍ٕ͠ज़ઓ͕Ͱ͖͍ͯͳ͍ ✓͔ΔαʔϏε͕গͳ͍ ✓αʔϏε͕ଟ͗͢Δ ✓ͦͦԾઆཱ͕͍ͬͯͳ͍ $BTF ະདྷձٞͰग़ͨ1SPCMFN
!5",",*/( ✓ࢥͬͨΑΓΈΜͳੵۃతͩͬͨ ✓ීஈͤͳ͔͕ͬͨͰ͖ͨ ✓سጨͳ͍ҙݟ͕ग़ͨ ✓͓ޓ͍ͷߟ͑ํ͕Θ͔ͬͨ ✓৫ʹ͍͕ͭͯ͢Ͱ͖ͨ $BTF ࢀՃऀ͔ΒͷϑΟʔυόοΫ
!5",",*/( ͦͷޙͷҿΈձ͕Ұ൪Γ্͕ͬͨ 1IPUPCZϑϦʔࣸਅૉࡐͺͨͦ͘ IUUQTXXXQBLVUBTPDPN $BTF
!5",",*/( 4MJEFCZࠤ౻͞Μ IUUQHPPHM;(O0
!5",",*/( ͜Ε͔ΒऔΓΉ͋ͳͨ
!5",",*/( Βͳ͍ཧ༝ͨ͘͞Μݟ͔ͭΔ ✓ίʔυॻ͍͍͍ͯͨ ✓ͦΕࣗͷࣄͰͳ͍ ✓͏ͪେاۀ͔ͩΒͳ͔ͳ͔ʜ ✓͍͔͠ΒͦΕͲ͜Ζ͡Όͳ͍ ✓Ͳ͏ͤΘ͔ͬͯ͘Εͳ͍Α ✓νʔϜͱ͔͘৫ʜ
!5",",*/( զຫ͢Δ͔ɺࣙΊΔ͔ɺม͑Δ͔ CZϢϧήϯɾΞϖϩʢ)PXUP$IBOHF5IF8PSMEʣ
!5",",*/( զຫͰ͖ͳ͍ࣙ͠Ίͳ͍ͳΒ ม͑ΕΑΖ͠Μ 1IPUP#Z4VEIBNTIV)FCCBS IUUQTHPPHM)O1*
!5",",*/( Change Our World!! Follow Me