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
the-art-of-develop-culture-at-cybozu
Search
tomoya yokota
December 02, 2017
3.4k
0
Share
the-art-of-develop-culture-at-cybozu
開発文化を育て広げる愉しみ @ Cybozu Tech Conference 2017
https://cybozutech2017.qloba.com/
tomoya yokota
December 02, 2017
More Decks by tomoya yokota
See All by tomoya yokota
レガシーソフトウェアを再現性高く置き換える手法 〜「射撃しつつ前進」を支える技術〜
yokotaso
0
110
レガシーSolrの Elasticseach移行 Cybozu Tech Meetup #14
yokotaso
0
470
introduction-to-modern-gc
yokotaso
10
3.2k
product-sutainability
yokotaso
0
360
Go-To-Java9
yokotaso
0
240
障害にすてるところなし
yokotaso
8
4.2k
Featured
See All Featured
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
130
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Agile that works and the tools we love
rasmusluckow
331
21k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
830
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Optimizing for Happiness
mojombo
378
71k
Documentation Writing (for coders)
carmenintech
77
5.4k
How to train your dragon (web standard)
notwaldorf
97
6.6k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
710
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
130
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Transcript
։ൃจԽΛҭͯ ͛Δ༇͠Έ Cybozu Tech Conference 2017 @yokotaso
νʔϜͷ։ൃମ੍ • ϢʔβʔཧػೳΛ୲ • ։ൃຊɺࢼݧຊ + ্ւ ͷ 2ڌ •
࠷ॳ 1-SprintͰ։ൃ ~ ࢼݧઃܭͰ Done ։ൃ ~ ࢼݧྃ·ͰҰݸྲྀ͠࠷ۙͰ͖ΔΑ͏ʹ • Ҏલ։ൃFixޙʹɺࢼݧ։࢝
ͳͥKanbanͳͷ͔ʁ • ϚϧνϓϩδΣΫτ୲ϝϯόʔ͕ଟ͍ • Өͷࣄͷଘࡏ λεΫΛґཔ͠ʹ͍͘ ୭͕ԿΛ͍ͬͯΔͷ͔Θ͔Βͳ͍ • ։ൃ
~ ࢼݧྃͷࣄͷྲྀΕΛ͍ͨ͘͠
։ൃจԽͷྺ࢙
ΦϯϓϨϛεظͱ։ൃจԽ • ୯Ґͷ։ൃɾࢼݧεέδϡʔϧ • Unit Test͕ͳ͍ϓϩμΫτ • ։ൃFixલʹσΠϦʔϏϧυΛಈ͔͢ • ☠☠։ൃจԽ☠☠
Ϋϥυੈهͱ։ൃจԽ • ϦϦʔεͷ૿Ճ • ෆ҆ఆͳ࣭ͱ։ൃͷരൃ • CI/CDΛར༻࣭ͨ͠ͷ҆ఆԽ • ։ൃޮͷ্ʹੵۃࢿ •
։ൃࢧԉͨΊͷ։ൃจԽ
Ϋϥυશظͷ։ൃจԽ • Ϋϥυੈهͷ։ൃจԽ͕ϕʔεʹվળ ։ൃͷϘτϧωοΫ͕গͳ͘ͳΔ • ։ൃ͔Βࢼݧఔ·ͰΛؚΊͨશମ࠷దԽ • Scrum / Kanban
ܕͷ։ൃελΠϧ • ՁΛૉૣ͘ಧ͚ΔͨΊͷ։ൃจԽ
։ൃจԽ ϏδωεΛࢧ͑Δ ॏཁͳϑΝΫλʔ
ٙ
ᷚͷϤαήͳ։ൃจԽ ͏ͪʹೃછ·ͳ͍ͷ ͳΜͰͩΖ͏ʁ
ಋೖ͚ͨ͠Ͳɺ ଓ͔ͣʹഇΕͯ͠·ͬͨɻ
αΠϘζ͞Μ͔ͩΒ ͳΜͰ͏·͍͘͘ΜͰ͠ΐ? ͏ͪʹͪΐͬͱ…
αΠϘζͰࣦഊ͠ͳ͕Β લਐ͍ͯ͠Δͷ͕ݱ࣮ͳͷͰ͢
ຊ&্ւͰKanbanΛ ಋೖͨ͠ͷͱ աڈͷࣦഊΛωλʹ…
։ൃจԽΛҭͯΔ Practice ຊʂ
จԽͷ ϘτϧωοΫ
ͦΕϘτϧωοΫͳ͘ͳΔͷʁ • ◦◦จԽΛແཧʹ࡞Ζ͏ͱͯ͠·ͤΜ͔ • ಋೖͨ͠ΒϘτϧωοΫ͕ͳ͘ͳΔͷ͔ʁ • ϘτϧωοΫ͕ղফ͠ͳ͍จԽഇΕΔ • ίʔυ৫ͷঢ়گʹΑͬͯ։ൃจԽଟ༷
% UnitTestΛΊΑ͏ͱͨ͠ • UnitTest͕ͨΓલͷ։ൃମ੍ʹ͔ͨͬͨ͠ • ࣌ͷঢ়گͰUnitTest·ͩૣ͔ͬͨ • UnitTestϘτϧωοΫͰͳ͔ͬͨ ΄͔ʹେ͖ͳ͕͋ͬͨ
&σΠϦʔϏϧυΛࣗಈԽ • ΦϯϓϨɾΫϥυͷΞʔΧΠϒͷ ϏϧυεΫϦϓτΛඋͨ͠͠ • JenkinsͰ࣮ߦͰ͖Δ͓खܰײ • ΦϯϓϨͱΫϥυͷಉ࣌ࢼݧ͕Մೳʹ େ͖ͳϘτϧωοΫͩͬͨ
։ൃจԽͷ࢝·ΓΛ͡ΊΑ͏ • ϘτϧωοΫΛղফͰ͖Εେࣄʹ͞ΕΔ • ΈΜͳ͕େʹ͢Δͷ ։ൃจԽͷܧଓʹඞཁෆՄܽ • ։ൃจԽͷ֎ʹ৽͍͠։ൃจԽ͕͏·ΕΔ όʔϜΫʔϔϯߏ
ؒΛ૿ͦ͏
& શһࢀՃܕͷษڧձΛ։͜͏ • ࣝͷϕʔεϥΠϯΛἧ͑Α͏ • ษڧձͷࡐΛͬͯҙࣝͷڞ༗ • γϯϓϧͳݪཧɾݪଇͷཧղ > ࡉ͔ͳࣝ
• શһࢀՃ͍͢͠ษڧձΛ ଥڠͰ͖Δͷੵۃతʹଥڠ͢Δ
&্ւ ຊ Χϯόϯษڧձ • ࡉ͔͍ࣝΑΓɺΧϯόϯͷཧղΛపఈ WIPɺࣄͷྲྀྔ੍ݶ ࣄͷՄࢹԽ ࣄΛৼΓฦͬͯKanbanͰվળ͢Δʁ
&্ւ ຊ Χϯόϯษڧձ • ӳޠͰফͨ͘͠ͳ͔ͬͨͷͰ༁ॻΛར༻
&্ւ ຊ Χϯόϯษڧձ • Χϯόϯࣄज़ͷʹήʔϜ͕͋Δ • KanbanͷݪཧݪଇΛମײͰ͖Δ ඦฉҰݟʹ͔ͣ͠ • ։ൃจԽʹ͍ͯͨ͘͠Ίʹʮͳͥʓʓʁʯ
ͷڞײ͕ඞཁෆՄܽ
% ༗ࣝऀษڧձΛ։͘ • ϧαϯνϚϯ͕ཷ·Γ͕ͪ • ࢀՃऀ=ҙ͕ࣝ͋ΔਓͳͷͰޮՌ͕ബ͍ • ϝϯόʔͰ͕ࣝࠩग़ͯ͠·͏ • ཧ͕ڞ༗Ͱ͖ͳ͍
Small Start
Ͱ͖Δ͜ͱΛ͙͢ʹ࢝ΊΑ͏ • ޮՌ͕͋Γͦ͏ͩͬͨΒͬͦ࢝͘͞ΊΑ͏ • Ͱ͖Δ͚ͩγϯϓϧʹ1िؒͬͯΈΑ͏ • ϓϥΫςΟεͷҰ෦ͰOK • ࣗͨͪͰ࡞ͬͯӡ༻ͯ͠ΈΔͷ͕େ
& KanbanΛ͙͢ʹ࡞ͬͨ • ॳճษڧձͷޙʹϗϫΠτϘʔυΛߪೖ • ্ւɺຊͰ؆୯ͳKanban࡞ͬͯΈͨ • ษڧձͷςʔϚΛKanbanʹద༻ վͨ͠Γࢼߦࡨޡ •
ݟ͍͑ͯͳ͔ͬͨͷൃݟɺ৽ͨͳؾ͖ͮ
% ࣝΛҰ௨Γ͚͔ͭͯΒ࣮ફ • ϕετɾϓϥΫςΟεͳͷʹ ։ൃϓϩηεʹͦͷ··ద༻Ͱ͖ͳ͍ • ݱঢ়ͱཧͷҧ͍ʹർฐ • ϓϥΫςΟεͷվɺऔࣺબ͕ඞཁͩͬͨ
ޮՌతͳৼΓฦΓ
& ޮՌతͳৼΓฦΓΛ͠Α͏ • ։ൃจԽͱͯ͠ఆணͤ͞ΔͨΊͷৼΓฦΓ • ݪཧɾݪଇΛҙࣝͯ͠ৼΓฦΓΛͯ͠ΈΑ͏ • ݪཧɾݪଇΛҙࣝͯ͠KAIZENΛߟ͑Α͏ • ͕ࣝఆண͍ͯ͠Δ͔ͷࢼۚੴ
& ๙ΊΔϙΠϯτ͕໌֬ʹ • A͞ΜͷWIP͕ᷓΕͯͨͷͰλεΫΛ Ҿ͖ड͚·ͨ͠ • WIP͕ߴ͍ͷͰToDoλεΫΑΓ ϨϏϡʔλεΫΛऴΘΒͤΔ͜ͱʹྗͨ͠ • োରԠͳͲ͕ՄࢹԽ͞ΕͨͷͰɺ
ϨϏϡʔґཔͷ૬खΛͰ͖ͨ
& ݪଇ͔ΒΈ͑ͨProblem • AλεΫΛ͍ͬͯΔ࣌ʹWIP͕૿Ճͨ͠ • ্ւͷWIP͕ߴ͍ͷͳΜͰͩΖ͏ʁ • ϚϧνϓϩδΣΫτͷࣄΛ͢Δͱ͖ WIPΛͲ͏ѻ͏͖ʁ
% ;ΜΘΓͨ͠ৼΓฦΓ • ᘭͳProblem Λղܾ͢ΔՁ͋Δ͔ʁ ෳࡶͳղܾࡦΛ࠾༻ͯ͠ͳ͍ʁ • ։ൃϓϩηεͷϘτϧωοΫΛղফͰ͖Δ Problemͷൃݟɺௐࠪɺղܾʹྗ͠Α͏
KAIZENͱकഁ
& ৼΓฦΓ͔ΒKAIZEN͢Δ • ҰൠతͳPracticeʹతʹैΘͣ ৫Χϧνϟʔʹ͋Θͤͯऔࣺબ վ͠Α͏ • ࣗͨͪʹ߹ΘͤͯɺPracticeΛ มߋ͍ͯ͘͜͠ͱ͕େ
& कɾഁɾʂ • (Problem) ։ൃ։࢝࣌ɺWIP͕͍ͷʹ ϨϏϡʔͷΓͱΓ͕࢝·ΔͱWIP͕ߴ·Δ • (Try) Reviewͪͷ࣌ʹToDoͷࣄΛ࣋ͪࠐΉͷ͕
ݪҼͩͬͨɻKanbanΛվͩʂ
Before ToDo Doing Done
Before ToDo Doing Done WIPͷ੍ݶ͕ͳ͍ͷͰ ToDoͷࣄ͕։࢝͞Εͯ ͠·͏
Before ToDo Doing Done ϨϏϡʔΛґཔͨ͠Β ՋʹͳΔͷͰ ToDoʹணख͢Δ ࣮ ࣮
Before ToDo Doing Done ϨϏϡʔ͕ؼͬͯ͘Δͱ DoingͷྻͷWIP͕ ૿Ճͯ͠͠·͏ ϨϏϡʔ ϨϏϡʔ ϨϏϡʔ
࣮ ࣮
Before ToDo Doing Done WIP͕ߴ͍ঢ়ଶ ࣄͷΛམͯ͠͠·͏ ͷͰKanbanͰݏΘΕΔ ϨϏϡʔ ϨϏϡʔ ϨϏϡʔ
࣮ ࣮
After ToDo Doing Review Done ΞόλʔΛಋೖͨ͠ 1ਓ͋ͨΓ3ͭ ࣄ͕Ͱ͖Δ
After ToDo Doing Review Done ReviewྻΛ৽ઃ ϨϏϡʔૣ͘ ऴΘΒ͍ͤͨͷͰɺ ؔऀͷΞόλʔΛ શ͓ͯ͘
After ToDo Doing Review Done ϨϏϡʔ༏ઌ͕ ߴ͘ͳΔ ToDoΛDoingʹ ҠಈͰ͖ͳ͍
& ৫ʹ͋Θͤͨ։ൃจԽ • ৫ͷঢ়گʹ͋Θͤͨ։ൃจԽ • ૉͷPracticeͷద༻͔Β։ൃจԽ • KAIZEN͔ΒPracticeΛվ͢Δ༐ؾ • ։ൃจԽνʔϜͰҭͯ·͠ΐ͏
& ւ֎ڌͲ͏ͨ͠ͷ͔ʁ • ্ւͷKanban্ւͷΧϧνϟʔΛଚॏ • ࠷ॳͷKanbanΛ࡞Δͷ͚͓ͩख͍ ࠔΓ͝ͱ૬ஊҙשى͙Β͍ • ڕΛ༩͑ΔΑΓڕͷΓํΛڭ͑Α
& ւ֎ڌͲ͏ͨ͠ͷ͔ʁ • جຊkintoneͰλεΫॲཧ • ֤ڌͷKanbanͷը૾Λఆ࣌ʹΞοϓϩʔυ ଞڌͷλεΫͪʹؾͮ͘ ଞڌͷWIPΛ૿͗͢͠ͳ͍Α͏ʹ • ཧίετ͕͔͔Βͳ͍ӡ༻Λҙࣝ
ෳརͱ࠶ࢿ
• ෳར(༨࣌ؒ)Λ։ൃจԽʹ࠶ࢿ͍ͯ͘͠ • ఆணͨ͠։ൃจԽΛϕʔεʹ৽͍͠ઓ UnitTest CI/CD Scrum/Kanban
… • ઓΛ͢ΔͨΊʹ։ൃจԽΛKAIZEN͍ͯ͘͠ ։ൃจԽΛਐԽͤ͞Α͏
ςετΤϯδχΞʂ ࡶͳࢼݧखॱͷࣗಈԽ͍ͨ͠
վमޙɺଈϦϦʔε͍ͨ͠ʂ ։ൃϓϩηεͷਐԽ ·ͩ·ͩඞཁʂ
ΑΓΞδϟΠϧͳ։ൃจԽ • ։ൃจԽΛ࡞Γม͖͑ͯͨࣄ࣮͕ ৫ͷେ͖ͳࡒ࢈ɺ৫ͷجૅମྗʹͳΔ • ΞδϟΠϧͳ։ൃϓϥΫςΟεͰͳ͘ ΞδϟΠϧͳ৫ɺ։ൃจԽΛࢦ͢ • ͋Δ͕ɺมΘ͍͚͍͍ͬͯ
։ൃจԽΛ ਐԽͤ͞Δ औΓΈଓ͘
ͦͯ͠ɺເͷ֎
৫Λ͑ͯ։ൃจԽ͕͕Δ • ڌ ৫Λ͑ͯ։ൃจԽΛҭͯΔऔΓΈ • ։ൃจԽΛҭͯ͛ΔίπΛ͓͠·ͨ͠ • 100৫͋ͬͨΒ100௨Γͷ։ൃจԽ • ϘτϧωοΫΛղফ͢Δ։ൃจԽͰ͋Ε
ΦϯϓϨϛε࣌ͱִੈײ • ։ൃจԽ͕ત·͔ͬͨ࣌͠ • ։ൃจԽ͕͋Δ৫ʹಌΕ͍ͯͨ • ಌΕ͔Β։ൃจԽͷ͋Δ৫ʹͳΕͨ • ͦͯ͠ɺເͷ֎ ͜Ε͔Β։ൃจԽΛҭ͍͖͍ͯͯͨ
ΤϯδχΞͷ ʰָ͍͠ʱΛ ͛Α͏
։ൃจԽΛҭͯ ͛Δ༇͠Έ Thank you!