開発チームに属してボトムアップで生産性活動をしてきた経験から、今改善活動をする上で大切している考え方について発表します。
1. 数字で見る。しかし数字だけで判断しない 2. 開発プロセス全体を俯瞰してボトルネックを探す意識を持つ 3. 一方で、ボトルネック以外を改善するのは無駄と考えない
ࠓͷੜ࢈ੑվળ׆ಈͰେʹ͍ͯ͠Δߟ͑ํʙ։ൃνʔϜʹଐͨ͠վળ׆ಈ͔Βಘͨؾ͖ͮʙ2022/06/14גࣜձࣾΞϯυύου@shibayu36
View Slide
ࣗݾհ• @shibayu36 (ࣲ㟒༏ق)• https://blog.shibayu36.org/• 2021/10ʙגࣜձࣾΞϯυύου• ΞΧϯτج൫νʔϜςοΫϦʔυ• લ৬ͯͳ
10΄Ͳલ͔Β։ൃνʔϜͷதͰੜ࢈ੑվળ׆ಈΛ࣮ࢪ͖ͯͨ͠• GitHubΛͬͨ։ൃϑϩʔվળ• νʔϜ͝ͱͷ։ൃੜ࢈ੑͷఆྔԽɾՄࢹԽ• όϦϡʔετϦʔϜϚοϓΛͬͨɺ։ൃϑϩʔͷϘτϧωοΫൃݟ• CIͷߴԽϨϏϡʔϑϩʔվળɺϖΞϓϩಋೖͳͲʹΑΔੜ࢈ੑվળ• Findy TeamsΛͬͨੜ࢈ੑՄࢹԽͱվળ
https://developer.hatenastaff.com/entry/2014/06/04/151502 https://blog.shibayu36.org/entry/2021/08/10/173000https://tech.andpad.co.jp/entry/2022/01/06/110000 https://tech.andpad.co.jp/entry/2022/03/08/110000
ࠓճͷςʔϚ:ࠓͷੜ࢈ੑվળ׆ಈͰେʹ͍ͯ͠Δߟ͑ํ• ࣮ࡍʹͲΜͳվળΛߦ͔ͬͨϒϩάʹॻ͍ͯ͋Δ• ͔͠͠ɺͦͷཪͰ͕ࣗେʹ͍ͯ͠Δߟ͑ํॻ͍͍ͯͳ͔ͬͨ• ։ൃνʔϜʹଐͨ͠վળ׆ಈ͔Βؾ͖ͮɺࠓେʹ͍ͯ͠Δߟ͑ํΛ͢
େʹ͍ͯ͠Δߟ͑ํ1. ࣈͰݟΔɻ͔͠͠ࣈ͚ͩͰஅ͠ͳ͍2. ։ൃϓϩηεશମΛ၆ᛌͯ͠ϘτϧωοΫΛ୳͢ҙࣝΛ࣋ͭ3. ҰํͰɺϘτϧωοΫҎ֎Λվળ͢Δͷແବͱߟ͑ͳ͍
ࣈͰݟΔɻ͔͠͠ࣈ͚ͩͰஅ͠ͳ͍
• νʔϜվળΛ͢Δͱ͖ɺੜ࢈ੑͳͲΛඞͣఆྔԽ• ͔͠͠ɺࣈͷΈΛݟͯɺݪҼվળࡦΛܾΊ͚ͭͳ͍• ࣈΛݟΔ -> νʔϜΛਂ͘؍͠ݪҼΛ୳͢ ->νʔϜվળΛߦ͏
ࣈͰݟͣʹνʔϜվળΛ͍ͬͯͨࠒ...• ͦͷνʔϜվળͬͯɺސ٬ͷՁఏڙΑΓ༏ઌͯ͠Δ͖͜ͱͳͷʁ• => վળʹऔΓΊͳ͍• ͋ͳͨͦΕ͕Γ͍͢ΜͰ͢Ͷɻࢲͬͪ͜ͷํ͕ྑ͍ͱࢥ͏ΜͰ͢• => ਫֻ• Ͱɺ݁ہྑ͘ͳͬͨͷʁ• => ৼΓฦΕͳ͍
νʔϜͷੜ࢈ੑվળͷ࣌ඞͣࣈͰݟΔΑ͏ʹ• GitHubͷใ͔ΒՄࢹԽ͢ΔπʔϧΛ࡞ͬͨΓ• Findy Teamsͷར༻• ࢀߟ) ݟ͍ͯΔࣈͷྫ• Four Keys• Pull Request࡞ɺPull RequestͷϚʔδ·Ͱͷ࣌ؒ
ࣈͰݟͣʹνʔϜվળΛ͍ͬͯͨࠒ...• ͦͷνʔϜվળͬͯɺސ٬ͷՁఏڙΑΓ༏ઌͯ͠Δ͖͜ͱͳͷʁ• => վળʹऔΓΊͳ͍• ͋ͳͨͦΕ͕Γ͍͢ΜͰ͢Ͷɻࢲͬͪ͜ͷํ͕ྑ͍ͱࢥ͏ΜͰ͢• => ਫֻ• Ͱɺ݁ہྑ͘ͳͬͨͷʁ• => ৼΓฦΕͳ͍͜ͷࣈ͕վળ͢Δͱɺސ٬ͷՁఏڙ͕ͬͱૉૣ͘ͳΓ·͢
ࣈͰݟͣʹνʔϜվળΛ͍ͬͯͨࠒ...• ͦͷνʔϜվળͬͯɺސ٬ͷՁఏڙΑΓ༏ઌͯ͠Δ͖͜ͱͳͷʁ• => վળʹऔΓΊͳ͍• ͋ͳͨͦΕ͕Γ͍͢ΜͰ͢Ͷɻࢲͬͪ͜ͷํ͕ྑ͍ͱࢥ͏ΜͰ͢• => ਫֻ• Ͱɺ݁ہྑ͘ͳͬͨͷʁ• => ৼΓฦΕͳ͍࣮ࡍͷσʔλ͔Βɺͪ͜Βͷํ͕ྑ͍
ࣈͰݟͣʹνʔϜվળΛ͍ͬͯͨࠒ...• ͦͷνʔϜվળͬͯɺސ٬ͷՁఏڙΑΓ༏ઌͯ͠Δ͖͜ͱͳͷʁ• => վળʹऔΓΊͳ͍• ͋ͳͨͦΕ͕Γ͍͢ΜͰ͢Ͷɻࢲͬͪ͜ͷํ͕ྑ͍ͱࢥ͏ΜͰ͢• => ਫֻ• Ͱɺ݁ہྑ͘ͳͬͨͷʁ• => ৼΓฦΕͳ͍ɾ3ϲ݄લͱൺֱ͢Δͱɺ͜ͷΑ͏ʹվળɾٯʹѱ͘ͳͬͯΔͷͰɺҰΊΔ͖Ͱ͢Ͷ
ࣈΛݟΔ͜ͱͰ• νʔϜվળͷ༏ઌΛஅͰ͖• ΈͰͳ͘ɺ࣮ࡍͷޮՌͷ؍͔Βձ͕Ͱ͖• ݁ՌΛݟͳ͕ΒৼΓฦΔ͜ͱ͕Ͱ͖Δ
• ͜ͷνʔϜͷPull RequestϚʔδ·Ͱͷ࣌ؒɺଞͷνʔϜͱൺֱ͢Δͱ3ഒͰ͢• 3ഒѱ͍ͷͰɺվળ͕ඞཁͰ͢• ଞͷνʔϜͱಉ༷ɺ·ͣίʔυϨϏϡʔΛ͍͍ײ͡ʹճ͖͢Ͱ͢ࣈ͚ͩͰஅ͢Δͱ
ͳͥࣈ͚ͩͰஅͯ͠ͳΒͳ͍͔• 1. ࣈ͚ͩͰɺຊʹ͔Θ͔Βͳ͍• ଞͱൺͯқ͕ߴ͍ʹऔΓΜͰ͍Δͷ͔• ٕज़తෛ࠴͕ੵͬͨͱ͜ΖΛ୲͍ͯ͠Δͷ͔• 2. ͱͯ͠ɺࣈ͚ͩͰྑ͍վળҊ͔Βͳ͍• େྔλεΫͰɺશֻ͔ͯΓঢ়ଶͳͷ͔• ཁ͕ܾ݅·Βͳ͍··ਐΊ͍ͯͯɺखΓ͍ͯ͠Δͷ͔• ϨϏϡʔґཔͯ͠ɺ͍ؒݟͯΒ͑ͳ͍ͷ͔
ࣈ͚ͩͷ؍Λޡೝ͢Δ
ࣈΛݟͨޙඞͣνʔϜΛਂ͘؍͢Δࣈ͚ͩͷ؍Λޡೝ͢Δ
ࣈΛݟΔνʔϜΛਂ͘؍͠ݪҼΛಛఆ͢ΔݪҼʹ߹ΘͤͯνʔϜΛվળ͢Δ
։ൃϓϩηεશମΛ၆ᛌͯ͠ϘτϧωοΫΛ୳͢ҙࣝΛ࣋ͭ
Αͬͯ͘͠·͍ࣦͬͯͨഊ• ࣗͷνʔϜͷPull Request࡞ʙPull RequestϚʔδ·ͰΛɺ40͔࣌ؒΒ20࣌ؒͱݮ͠·ͨ͠ʂ͍͢͝ʂPull RequestϚʔδ·Ͱͷظؒ 40࣌ؒ20࣌ؒ
গ͠၆ᛌ͢ΔͱʁPullRequestϚʔδ·Ͱ29اը QA ϦϦʔε 30اը QA ϦϦʔε
ͬͱ၆ᛌ͢ΔͱʁϢʔβʔ͕ٻΊΔͷզʑര։ൃʂ
ͬͱͬͱ၆ᛌ͢ΔͱʁϢʔβʔ͕ٻΊΔͷզʑര։ൃʂϓϩμΫτͷརӹʹର͠ɺਓ݅අΠϯϑϥඅ͕େ͖͗ͯ͢ࣈϓϩμΫτΛҡ࣋Ͱ͖ͳ͍
Pull RequestϚʔδ·Ͱͷظؒ 40࣌ؒ20࣌ؒ։ൃϓϩηεશମ͔Βݟͨ࣌ʹɺຊʹऔΓΉ՝ͩͬͨ͜͜ͷͩΖ͏͔ʁ
ϘτϧωοΫΛҙࣝͤͣࣗݾຬͷվળʹͳ͍ͬͯͨ
վળͷޮՌΛ্͛ΔͨΊ၆ᛌͯ͠ϘτϧωοΫΛ୳͢ϘτϧωοΫΛҙࣝͤͣࣗݾຬͷվળʹͳ͍ͬͯͨ
3ͭͷࢹ࠲Ͱੜ࢈ੑͷϘτϧωοΫΛ୳͢• 1. രͰ։ൃͰ͖͍ͯΔ͔• FourKeysɾاըʙϦϦʔε·ͰͷϦʔυλΠϜɾetc• 2. ։ൃ͍ͯ͠Δͷ͕ސ٬ͷͨΊʹͳ͍ͬͯΔ͔• KPIɺNorth Star MetricsͳͲϓϩμΫτϚωδϝϯτࢦඪ• 3. ࣄۀͱͯ͠ޭͰ͖ɺϓϩμΫτ͕ҡ࣋Ͱ͖Δͷ͔• ैۀһҰਓͨΓച্ɺP/LͳͲܦӦతࢦඪ
PullRequestϚʔδ·Ͱاը QA ϦϦʔεϢʔβʔ͕ٻΊΔͷզʑര։ൃʂ1.2.3.
ͰϘτϧωοΫҎ֎Λվળ͢Δͷແବͳͷ͔ʁ
ҰํͰɺϘτϧωοΫҎ֎Λվળ͢Δͷແବͱߟ͑ͳ͍
၆ᛌͰ͖Δਓ͕ͬͯ͠·͍͕ͪ• ࠓސ٬ͷͨΊͷ։ൃ͕Ͱ͖ͯͳ͍͜ͱ͕Ұ൪ͷ՝ͳΜ͔ͩΒ• ։ൃΛരԽͯ͠ҙຯͳ͍ΑͶʁ• ·ͣϘτϧωοΫΛߟ͑Α͏Α
࠷େͷϘτϧωοΫʹॳΊ͔Βཱ͔ͪ͏ͱʁϥεϘε Lv70༐ऀ Lv1
࠷େͷϘτϧωοΫʹॳΊ͔Βཱ͔ͪ͏ͱʁϥεϘε Lv70༐ऀ Lv1ઈରʹղܾͰ͖ͣʮ͜ͷνʔϜɾ͜ͷձࣾͰແཧʯͱͳΓ͕ͪ
ॳΊ͔Βେ͖͗͢Δ՝ʹཱ͔ͪΘͳ͍
ղܾ͠ͳ͕ΒɺࣗୡͷϨϕϧΛ্͛Δগͣͭ͠େ͖ͳ՝ʹཱ͔ͪ͏ࠓͷνʔϜʹϑΟοτ͢Δ՝Λݟ͚ͭΔ
ࠓͷνʔϜʹϑΟοτ͢Δ՝Λݟ͚ͭΔ• ޮՌ͕ͦͦ͜͜ߴͦ͏• ࠓͷνʔϜͰͳΜͱ͔ղܾͰ͖ͦ͏• ղܾ͢Δߦಈࣗମֶ͕ͼʹͭͳ͕Γͦ͏
ղܾ͠ͳ͕ΒɺࣗୡͷϨϕϧΛ্͛Δ• νʔϜ͕มԽΛڐ༰Ͱ͖ΔΑ͏ʹͳΔ• ࣾࣄʹৄ͘͠ͳΓɺ՝ൃݟྗΛ্͛Δ• ղܾೳྗΛ্͛ɺਫ਼ͷߴ͍վળ͕Մೳʹ• ࣾʹ৴པ͞ΕΔঢ়گΛ࡞ΓɺվળΛΓ͘͢
গͣͭ͠େ͖ͳ՝ʹཱ͔ͪ͏• νʔϜͷϨϕϧͷมԽΛ؍• ϘτϧωοΫΛ͍͔ͭ͘ϐοΫΞοϓ͠• ͨ͠νʔϜϨϕϧʹϑΟοτ͢Δ՝Λબ͢Δ
ྫ) ͕ࣗ৽͍͠νʔϜʹೖͬͨ࣌ʹΑ͘ΔྲྀΕ• খ͍͞՝Λ2~3Ͱղܾ͠ɺपΓ͔Βͷ৴པײΛಘΔ +νʔϜͷมԽͷॊೈੑΛ୳Δ• ݁ՌΛݟͳ͕Βɺಘҙͳ։ൃͷߴԽ෦Ͱখ͍͞՝Λ͍͔ͭ͘Δ• ࠒ߹͍ΛݟͯɺಘҙͳॴͰिؒ͘Β͍͔͔ΔΑ͏ͳେ͖ͳ՝ʹऔΓΉ• ͞Βʹࠒ߹͍ΛΈͯɺଞͷνʔϜํʹ͛ͨΓɺސ٬Ձɾࣄۀͷ՝ʹऔΓΉ
ϓϧϦΫاըؚΊͨվળސ٬Ձ
·ͱΊ
• ੜ࢈ੑΛఆྔԽ্ͨ͠Ͱɺਂ͍νʔϜ؍Λجຊͱ͢Δ• ၆ᛌͯ͠ϘτϧωοΫΛݟ͚ͭͳ͕Β• ࣗୡͷखͷಧ͘՝Λղܾ͠ϨϕϧΞοϓ͠• ঃʑʹޮՌ͕ߴ͘қ͕ߴ͍ͷΛߦ͏
PR
ੵۃ࠾༻தʂhttps://engineer.andpad.co.jp/ https://tech.andpad.co.jp/
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠
Any Question?