Slide 1

Slide 1 text

ࠓͷੜ࢈ੑվળ׆ಈͰେ੾ʹ͍ͯ͠Δߟ͑ํ ʙ։ൃνʔϜʹଐͨ͠վળ׆ಈ͔Βಘͨؾ͖ͮʙ 2022/06/14 גࣜձࣾΞϯυύου @shibayu36

Slide 2

Slide 2 text

ࣗݾ঺հ • @shibayu36 (ࣲ㟒༏ق) • https://blog.shibayu36.org/ • 2021/10ʙגࣜձࣾΞϯυύου • ΞΧ΢ϯτج൫νʔϜςοΫϦʔυ • લ৬͸͸ͯͳ

Slide 3

Slide 3 text

10೥΄Ͳલ͔Β։ൃνʔϜͷதͰ ੜ࢈ੑվળ׆ಈΛ࣮ࢪ͖ͯͨ͠ • GitHubΛ࢖ͬͨ։ൃϑϩʔվળ • νʔϜ͝ͱͷ։ൃੜ࢈ੑͷఆྔԽɾՄࢹԽ • όϦϡʔετϦʔϜϚοϓΛ࢖ͬͨɺ։ൃϑϩʔͷ ϘτϧωοΫൃݟ • CIͷߴ଎Խ΍ϨϏϡʔϑϩʔվળɺϖΞϓϩಋೖͳ ͲʹΑΔੜ࢈ੑվળ • Findy TeamsΛ࢖ͬͨੜ࢈ੑՄࢹԽͱվળ

Slide 4

Slide 4 text

https://developer.hatenastaff.com/entry/2014/06/04/151502 https://blog.shibayu36.org/entry/2021/08/10/173000 https://tech.andpad.co.jp/entry/2022/01/06/110000 https://tech.andpad.co.jp/entry/2022/03/08/110000

Slide 5

Slide 5 text

ࠓճͷςʔϚ: ࠓͷੜ࢈ੑվળ׆ಈͰେ੾ʹ͍ͯ͠Δߟ͑ํ • ࣮ࡍʹͲΜͳվળΛߦ͔ͬͨ͸ϒϩάʹॻ͍ͯ͋Δ • ͔͠͠ɺͦͷཪͰࣗ෼͕େ੾ʹ͍ͯ͠Δߟ͑ํ͸ॻ ͍͍ͯͳ͔ͬͨ • ։ൃνʔϜʹଐͨ͠վળ׆ಈ͔Βؾ͖ͮɺࠓେ੾ʹ ͍ͯ͠Δߟ͑ํΛ࿩͢

Slide 6

Slide 6 text

େ੾ʹ͍ͯ͠Δߟ͑ํ 1. ਺ࣈͰݟΔɻ͔͠͠਺ࣈ͚ͩͰ൑அ͠ͳ͍ 2. ։ൃϓϩηεશମΛ၆ᛌͯ͠ϘτϧωοΫΛ୳͢ҙ ࣝΛ࣋ͭ 3. ҰํͰɺϘτϧωοΫҎ֎Λվળ͢Δͷ͸ແବͱߟ ͑ͳ͍

Slide 7

Slide 7 text

਺ࣈͰݟΔɻ ͔͠͠਺ࣈ͚ͩͰ൑அ͠ͳ͍

Slide 8

Slide 8 text

• νʔϜվળΛ͢Δͱ͖ɺੜ࢈ੑͳͲΛඞͣఆྔԽ • ͔͠͠ɺ਺ࣈͷΈΛݟͯɺݪҼ΍վળࡦΛܾΊͭ ͚ͳ͍ • ਺ࣈΛݟΔ -> νʔϜΛਂ͘؍࡯͠ݪҼΛ୳͢ -> νʔϜվળΛߦ͏

Slide 9

Slide 9 text

਺ࣈͰݟΔɻ ͔͠͠਺ࣈ͚ͩͰ൑அ͠ͳ͍

Slide 10

Slide 10 text

਺ࣈͰݟͣʹ νʔϜվળΛ΍͍ͬͯͨࠒ... • ͦͷνʔϜվળͬͯɺސ٬΁ͷՁ஋ఏڙΑΓ༏ઌͯ͠΍Δ΂͖͜ͱͳͷʁ • => վળʹऔΓ૊Ίͳ͍ • ͋ͳͨ͸ͦΕ͕΍Γ΍͍͢ΜͰ͢Ͷɻࢲ͸ͬͪ͜ͷํ͕ྑ͍ͱࢥ͏ΜͰ͢ • => ਫֻ࿦ • Ͱɺ݁ہྑ͘ͳͬͨͷʁ • => ৼΓฦΕͳ͍

Slide 11

Slide 11 text

νʔϜͷੜ࢈ੑվળͷ࣌͸ ඞͣ਺ࣈͰݟΔΑ͏ʹ • GitHubͷ৘ใ͔ΒՄࢹԽ͢ΔπʔϧΛ࡞ͬͨΓ • Findy Teamsͷར༻ • ࢀߟ) ݟ͍ͯΔ਺ࣈͷྫ • Four Keys • Pull Request࡞੒਺ɺPull RequestͷϚʔδ·Ͱͷ ࣌ؒ

Slide 12

Slide 12 text

਺ࣈͰݟͣʹ νʔϜվળΛ΍͍ͬͯͨࠒ... • ͦͷνʔϜվળͬͯɺސ٬΁ͷՁ஋ఏڙΑΓ༏ઌͯ͠΍Δ΂͖͜ͱͳͷʁ • => վળʹऔΓ૊Ίͳ͍ • ͋ͳͨ͸ͦΕ͕΍Γ΍͍͢ΜͰ͢Ͷɻࢲ͸ͬͪ͜ͷํ͕ྑ͍ͱࢥ͏ΜͰ͢ • => ਫֻ࿦ • Ͱɺ݁ہྑ͘ͳͬͨͷʁ • => ৼΓฦΕͳ͍

Slide 13

Slide 13 text

਺ࣈͰݟͣʹ νʔϜվળΛ΍͍ͬͯͨࠒ... • ͦͷνʔϜվળͬͯɺސ٬΁ͷՁ஋ఏڙΑΓ༏ઌͯ͠΍Δ΂͖͜ͱͳͷʁ • => վળʹऔΓ૊Ίͳ͍ • ͋ͳͨ͸ͦΕ͕΍Γ΍͍͢ΜͰ͢Ͷɻࢲ͸ͬͪ͜ͷํ͕ྑ͍ͱࢥ͏ΜͰ͢ • => ਫֻ࿦ • Ͱɺ݁ہྑ͘ͳͬͨͷʁ • => ৼΓฦΕͳ͍ ͜ͷ਺ࣈ͕վળ͢Δͱɺސ٬΁ͷ Ձ஋ఏڙ͕΋ͬͱૉૣ͘ͳΓ·͢

Slide 14

Slide 14 text

਺ࣈͰݟͣʹ νʔϜվળΛ΍͍ͬͯͨࠒ... • ͦͷνʔϜվળͬͯɺސ٬΁ͷՁ஋ఏڙΑΓ༏ઌͯ͠΍Δ΂͖͜ͱͳͷʁ • => վળʹऔΓ૊Ίͳ͍ • ͋ͳͨ͸ͦΕ͕΍Γ΍͍͢ΜͰ͢Ͷɻࢲ͸ͬͪ͜ͷํ͕ྑ͍ͱࢥ͏ΜͰ͢ • => ਫֻ࿦ • Ͱɺ݁ہྑ͘ͳͬͨͷʁ • => ৼΓฦΕͳ͍ ࣮ࡍͷσʔλ͔Β͸ɺ ͪ͜Βͷํ͕ྑ͍

Slide 15

Slide 15 text

਺ࣈͰݟͣʹ νʔϜվળΛ΍͍ͬͯͨࠒ... • ͦͷνʔϜվળͬͯɺސ٬΁ͷՁ஋ఏڙΑΓ༏ઌͯ͠΍Δ΂͖͜ͱͳͷʁ • => վળʹऔΓ૊Ίͳ͍ • ͋ͳͨ͸ͦΕ͕΍Γ΍͍͢ΜͰ͢Ͷɻࢲ͸ͬͪ͜ͷํ͕ྑ͍ͱࢥ͏ΜͰ͢ • => ਫֻ࿦ • Ͱɺ݁ہྑ͘ͳͬͨͷʁ • => ৼΓฦΕͳ͍ ɾ3ϲ݄લͱൺֱ͢Δͱɺ͜ͷΑ͏ʹվળ ɾٯʹѱ͘ͳͬͯΔͷͰɺҰ౓΍ΊΔ΂͖Ͱ͢Ͷ

Slide 16

Slide 16 text

਺ࣈΛݟΔ͜ͱͰ • νʔϜվળͷ༏ઌ౓Λ൑அͰ͖ • ޷ΈͰͳ͘ɺ࣮ࡍͷޮՌͷ؍఺͔Βձ࿩͕Ͱ͖ • ݁ՌΛݟͳ͕ΒৼΓฦΔ͜ͱ͕Ͱ͖Δ

Slide 17

Slide 17 text

਺ࣈͰݟΔɻ ͔͠͠਺ࣈ͚ͩͰ൑அ͠ͳ͍

Slide 18

Slide 18 text

• ͜ͷνʔϜͷPull RequestϚʔδ·Ͱͷ࣌ؒ͸ɺଞ ͷνʔϜͱൺֱ͢Δͱ3ഒͰ͢ • 3ഒ͸ѱ͍ͷͰɺվળ͕ඞཁͰ͢ • ଞͷνʔϜͱಉ༷ɺ·ͣ͸ίʔυϨϏϡʔΛ͍͍ײ ͡ʹճ͢΂͖Ͱ͢ ਺ࣈ͚ͩͰ൑அ͢Δͱ͸

Slide 19

Slide 19 text

• ͜ͷνʔϜͷPull RequestϚʔδ·Ͱͷ࣌ؒ͸ɺଞ ͷνʔϜͱൺֱ͢Δͱ3ഒͰ͢ • 3ഒ͸ѱ͍ͷͰɺվળ͕ඞཁͰ͢ • ଞͷνʔϜͱಉ༷ɺ·ͣ͸ίʔυϨϏϡʔΛ͍͍ײ ͡ʹճ͢΂͖Ͱ͢ ਺ࣈ͚ͩͰ൑அ͢Δͱ͸

Slide 20

Slide 20 text

ͳͥ਺ࣈ͚ͩͰ ൑அͯ͠͸ͳΒͳ͍͔ • 1. ਺ࣈ͚ͩͰ͸ɺຊ౰ʹ໰୊͔Θ͔Βͳ͍ • ଞͱൺ΂ͯ೉қ౓͕ߴ͍໰୊ʹऔΓ૊ΜͰ͍Δͷ͔΋ • ٕज़తෛ࠴͕ੵ΋ͬͨͱ͜ΖΛ୲౰͍ͯ͠Δͷ͔΋ • 2. ໰୊ͱͯ͠΋ɺ਺ࣈ͚ͩͰ͸ྑ͍վળҊ͸෼͔Βͳ͍ • େྔλεΫͰɺશͯ࢓ֻ͔Γঢ়ଶͳͷ͔΋ • ཁ͕ܾ݅·Βͳ͍··ਐΊ͍ͯͯɺख໭Γ͍ͯ͠Δͷ͔΋ • ϨϏϡʔґཔͯ͠΋ɺ௕͍ؒݟͯ΋Β͑ͳ͍ͷ͔΋

Slide 21

Slide 21 text

਺ࣈ͚ͩͷ؍࡯͸ ໰୊Λޡೝ͢Δ

Slide 22

Slide 22 text

਺ࣈΛݟͨޙ͸ ඞͣνʔϜΛਂ͘؍࡯͢Δ ਺ࣈ͚ͩͷ؍࡯͸ ໰୊Λޡೝ͢Δ

Slide 23

Slide 23 text

਺ࣈΛݟΔ νʔϜΛਂ͘؍࡯͠ ݪҼΛಛఆ͢Δ ݪҼʹ߹Θͤͯ νʔϜΛվળ͢Δ

Slide 24

Slide 24 text

਺ࣈͰݟΔɻ ͔͠͠਺ࣈ͚ͩͰ൑அ͠ͳ͍

Slide 25

Slide 25 text

େ੾ʹ͍ͯ͠Δߟ͑ํ 1. ਺ࣈͰݟΔɻ͔͠͠਺ࣈ͚ͩͰ൑அ͠ͳ͍ 2. ։ൃϓϩηεશମΛ၆ᛌͯ͠ϘτϧωοΫΛ୳͢ҙ ࣝΛ࣋ͭ 3. ҰํͰɺϘτϧωοΫҎ֎Λվળ͢Δͷ͸ແବͱߟ ͑ͳ͍

Slide 26

Slide 26 text

։ൃϓϩηεશମΛ၆ᛌͯ͠ ϘτϧωοΫΛ୳͢ҙࣝΛ࣋ͭ

Slide 27

Slide 27 text

Α͘΍ͬͯ͠·͍ࣦͬͯͨഊ • ࣗ෼ͷνʔϜͷPull Request࡞੒ʙPull RequestϚʔδ· ͰΛɺ40͔࣌ؒΒ20࣌ؒͱ൒ݮ͠·ͨ͠ʂ͍͢͝ʂ Pull RequestϚʔδ·Ͱͷظؒ 40࣌ؒ 20࣌ؒ

Slide 28

Slide 28 text

গ͠၆ᛌ͢Δͱʁ Pull Request Ϛʔδ·Ͱ 29೔ اը QA ϦϦʔε 30೔ اը QA ϦϦʔε

Slide 29

Slide 29 text

΋ͬͱ၆ᛌ͢Δͱʁ Ϣʔβʔ͕ٻΊΔ΋ͷ զʑ ര଎։ൃʂ

Slide 30

Slide 30 text

΋ͬͱ΋ͬͱ၆ᛌ͢Δͱʁ Ϣʔβʔ͕ٻΊΔ΋ͷ զʑ ര଎։ൃʂ ϓϩμΫτͷརӹʹର͠ɺਓ݅අ΍Πϯϑϥඅ͕େ͖͗ͯ͢੺ࣈ ϓϩμΫτΛҡ࣋Ͱ͖ͳ͍

Slide 31

Slide 31 text

Pull RequestϚʔδ·Ͱͷظؒ 40࣌ؒ 20࣌ؒ ։ൃϓϩηεશମ͔Βݟͨ࣌ʹɺ ຊ౰ʹऔΓ૊Ή՝୊͸ͩͬͨ͜͜ͷͩΖ͏͔ʁ

Slide 32

Slide 32 text

ϘτϧωοΫΛҙࣝͤͣ ࣗݾຬ଍ͷվળʹͳ͍ͬͯͨ

Slide 33

Slide 33 text

վળͷޮՌΛ্͛ΔͨΊ ၆ᛌͯ͠ϘτϧωοΫΛ୳͢ ϘτϧωοΫΛҙࣝͤͣ ࣗݾຬ଍ͷվળʹͳ͍ͬͯͨ

Slide 34

Slide 34 text

3ͭͷࢹ࠲Ͱ ੜ࢈ੑͷϘτϧωοΫΛ୳͢ • 1. ര଎Ͱ։ൃͰ͖͍ͯΔ͔ • FourKeysɾاըʙϦϦʔε·ͰͷϦʔυλΠϜɾetc • 2. ։ൃ͍ͯ͠Δ΋ͷ͕ސ٬ͷͨΊʹͳ͍ͬͯΔ͔ • KPIɺNorth Star MetricsͳͲϓϩμΫτϚωδϝϯτࢦඪ • 3. ࣄۀͱͯ͠੒ޭͰ͖ɺϓϩμΫτ͕ҡ࣋Ͱ͖Δͷ͔ • ैۀһҰਓ౰ͨΓച্ɺP/LͳͲܦӦతࢦඪ

Slide 35

Slide 35 text

Pull Request Ϛʔδ·Ͱ اը QA ϦϦʔε Ϣʔβʔ͕ٻΊΔ΋ͷ զʑ ര଎։ൃʂ 1. 2. 3.

Slide 36

Slide 36 text

։ൃϓϩηεશମΛ၆ᛌͯ͠ ϘτϧωοΫΛ୳͢ҙࣝΛ࣋ͭ

Slide 37

Slide 37 text

Ͱ͸ϘτϧωοΫҎ֎Λ վળ͢Δͷ͸ແବͳͷ͔ʁ

Slide 38

Slide 38 text

Ͱ͸ϘτϧωοΫҎ֎Λ վળ͢Δͷ͸ແବͳͷ͔ʁ

Slide 39

Slide 39 text

େ੾ʹ͍ͯ͠Δߟ͑ํ 1. ਺ࣈͰݟΔɻ͔͠͠਺ࣈ͚ͩͰ൑அ͠ͳ͍ 2. ։ൃϓϩηεશମΛ၆ᛌͯ͠ϘτϧωοΫΛ୳͢ҙ ࣝΛ࣋ͭ 3. ҰํͰɺϘτϧωοΫҎ֎Λվળ͢Δͷ͸ແବͱߟ ͑ͳ͍

Slide 40

Slide 40 text

ҰํͰɺϘτϧωοΫҎ֎Λ վળ͢Δͷ͸ແବͱߟ͑ͳ͍

Slide 41

Slide 41 text

၆ᛌͰ͖Δਓ͕ ΍ͬͯ͠·͍͕ͪ • ࠓ͸ސ٬ͷͨΊͷ։ൃ͕Ͱ͖ͯͳ͍͜ͱ͕Ұ൪ͷ՝ ୊ͳΜ͔ͩΒ • ։ൃΛര଎Խͯ͠΋ҙຯͳ͍ΑͶʁ • ·ͣϘτϧωοΫΛߟ͑Α͏Α

Slide 42

Slide 42 text

၆ᛌͰ͖Δਓ͕ ΍ͬͯ͠·͍͕ͪ • ࠓ͸ސ٬ͷͨΊͷ։ൃ͕Ͱ͖ͯͳ͍͜ͱ͕Ұ൪ͷ՝ ୊ͳΜ͔ͩΒ • ։ൃΛര଎Խͯ͠΋ҙຯͳ͍ΑͶʁ • ·ͣϘτϧωοΫΛߟ͑Α͏Α

Slide 43

Slide 43 text

࠷େͷϘτϧωοΫʹ ॳΊ͔Βཱͪ޲͔͏ͱ͸ʁ ϥεϘε Lv70 ༐ऀ Lv1

Slide 44

Slide 44 text

࠷େͷϘτϧωοΫʹ ॳΊ͔Βཱͪ޲͔͏ͱ͸ʁ ϥεϘε Lv70 ༐ऀ Lv1 ઈରʹղܾͰ͖ͣ ʮ͜ͷνʔϜɾ͜ͷձࣾͰ͸ແཧʯͱͳΓ͕ͪ

Slide 45

Slide 45 text

ॳΊ͔Βେ͖͗͢Δ՝୊ʹ ཱͪ޲͔Θͳ͍

Slide 46

Slide 46 text

ղܾ͠ͳ͕Βɺࣗ෼ୡͷϨϕϧΛ্͛Δ গͣͭ͠େ͖ͳ՝୊ʹཱͪ޲͔͏ ࠓͷνʔϜʹϑΟοτ͢Δ՝୊Λݟ͚ͭΔ

Slide 47

Slide 47 text

ࠓͷνʔϜʹϑΟοτ͢Δ՝୊Λݟ͚ͭΔ • ޮՌ͕ͦͦ͜͜ߴͦ͏ • ࠓͷνʔϜͰͳΜͱ͔ղܾͰ͖ͦ͏ • ղܾ͢Δߦಈࣗମֶ͕ͼʹͭͳ͕Γͦ͏

Slide 48

Slide 48 text

ղܾ͠ͳ͕Βɺࣗ෼ୡͷϨϕϧΛ্͛Δ • νʔϜ͕มԽΛڐ༰Ͱ͖ΔΑ͏ʹͳΔ • ࣾ಺ࣄ৘ʹৄ͘͠ͳΓɺ՝୊ൃݟྗΛ্͛Δ • ໰୊ղܾೳྗΛ্͛ɺਫ਼౓ͷߴ͍վળ͕Մೳʹ • ࣾ಺ʹ৴པ͞ΕΔঢ়گΛ࡞ΓɺվળΛ΍Γ΍͘͢

Slide 49

Slide 49 text

গͣͭ͠େ͖ͳ՝୊ʹཱͪ޲͔͏ • νʔϜͷϨϕϧͷมԽΛ؍࡯ • ϘτϧωοΫΛ͍͔ͭ͘ϐοΫΞοϓ͠ • ੒௕ͨ͠νʔϜϨϕϧʹϑΟοτ͢Δ՝୊Λબ୒͢Δ

Slide 50

Slide 50 text

ྫ) ࣗ෼͕৽͍͠νʔϜʹೖͬͨ࣌ʹ Α͘΍ΔྲྀΕ • খ͍͞՝୊Λ2~3೔Ͱղܾ͠ɺपΓ͔Βͷ৴པײΛಘΔ + νʔϜͷมԽ΁ͷॊೈੑΛ୳Δ • ݁ՌΛݟͳ͕Βɺಘҙͳ։ൃͷߴ଎Խ෦෼Ͱখ͍͞՝୊Λ ͍͔ͭ͘΍Δ • ࠒ߹͍Λݟͯɺಘҙͳ৔ॴͰ਺िؒ͘Β͍͔͔ΔΑ͏ͳେ ͖ͳ՝୊ʹ΋औΓ૊Ή • ͞Βʹࠒ߹͍ΛΈͯɺଞͷνʔϜํ޲ʹ޿͛ͨΓɺސ٬Ձ ஋ɾࣄۀͷ՝୊ʹ΋औΓ૊Ή

Slide 51

Slide 51 text

ϓϧϦΫ଎౓ اը΋ؚΊͨվ ળ ސ٬Ձ஋

Slide 52

Slide 52 text

ҰํͰɺϘτϧωοΫҎ֎Λ վળ͢Δͷ͸ແବͱߟ͑ͳ͍

Slide 53

Slide 53 text

·ͱΊ

Slide 54

Slide 54 text

େ੾ʹ͍ͯ͠Δߟ͑ํ 1. ਺ࣈͰݟΔɻ͔͠͠਺ࣈ͚ͩͰ൑அ͠ͳ͍ 2. ։ൃϓϩηεશମΛ၆ᛌͯ͠ϘτϧωοΫΛ୳͢ҙ ࣝΛ࣋ͭ 3. ҰํͰɺϘτϧωοΫҎ֎Λվળ͢Δͷ͸ແବͱߟ ͑ͳ͍

Slide 55

Slide 55 text

• ੜ࢈ੑΛఆྔԽ্ͨ͠Ͱɺਂ͍νʔϜ؍࡯Λجຊͱ ͢Δ • ၆ᛌͯ͠ϘτϧωοΫΛݟ͚ͭͳ͕Β • ࣗ෼ୡͷखͷಧ͘՝୊Λղܾ͠ϨϕϧΞοϓ͠ • ঃʑʹޮՌ͕ߴ͘೉қ౓͕ߴ͍΋ͷΛߦ͏

Slide 56

Slide 56 text

PR

Slide 57

Slide 57 text

ੵۃ࠾༻தʂ https://engineer.andpad.co.jp/ https://tech.andpad.co.jp/

Slide 58

Slide 58 text

͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠

Slide 59

Slide 59 text

Any Question?