DROBE Engineer Night #5でお話ししたスライドです。
#DROBEEngNight
ૉૣ͍όϦϡʔఏڙͷͨΊͷ DROBEͷ৽ઓུDROBE Engineer Night #5
View Slide
• ֯ాɹҰฏ• גࣜձࣾDROBE• Kansai Symfony Meetup• CoderDojo ຕํࣗݾհLaravelͩΑ
৬ۀɿεΫϥϜϚελʔ
DROBEͰεΫϥϜϚελʔ͡Ί·ͨ͠
ࣗޙΖ͔Β͢ΔλΠϓͷϦʔμʔγοϓΛࢦͯ͠ΈΑ͏͔ͳͱߟ͍͑ͯ·͢ɻʰαʔόϯτϦʔμʔγοϓʱͱ͍͏ͷ͕͋ΔΑ͏Ͱɺ͜Εʹઓͯ͠ΈΑ͏͔ͱࢥ͍ͬͯ·͢ɻ
৽ͨͳόϦϡʔఏڙઓུ
ࠓ·ͰͷόϦϡʔఏڙػೳػೳػೳػೳػೳػೳ ػೳػೳػೳػೳ7.1.0 7.1.1 7.1.2 7.2.0 7.3.0
ࠓ·ͰͷόϦϡʔఏڙػೳػೳػೳػೳػೳػೳ ػೳػೳػೳػೳ7.1.0 7.1.1 7.1.2 7.2.0 7.3.0ΠϚΠν…ίετ ͔͔Δ
ࠓ·ͰͷόϦϡʔఏڙػೳػೳػೳػೳػೳػೳ ػೳػೳػೳػೳ7.1.0 7.1.1 7.1.2 7.2.0 7.3.0ޮՌ͋ͬͨʂͲΕ͕ ޮ͍ͨʁ
ࠓ·ͰͷόϦϡʔఏڙػೳػೳػೳػೳػೳػೳ ػೳػೳػೳػೳ7.1.0 7.1.1 7.1.2 7.2.0 7.3.0ޮՌ͋ͬͨʂͲΕ͕ ޮ͍ͨʁ⭕⭕⭕❌❌
ʲඪʳখ͞ͳ୯ҐͰԾఆˠݕূΛߦ͍ɺ܁Γฦ͢ݕূ࣮Ծఆ
͜Ε͔ΒͷόϦϡʔఏڙػೳ ػೳ ػೳ ػೳ ػೳ
৽ͨͳऔΓΈͱֶͼ
։ൃʙϦϦʔεͷݟ͠
ࠓ·ͰͷϦϦʔεϑϩʔόʔδϣϯηϚϯςΟοΫόʔδϣχϯάػೳػೳػೳػೳػೳػೳ ػೳػೳػೳػೳ7.1.0 7.1.1 7.1.2 7.2.0 7.3.0
ࠓ·ͰͷϦϦʔεϑϩʔϒϥϯνGitFlowmaindevelopfeaturerelease2"
ࠓ·ͰͷϦϦʔεϑϩʔϦϦʔεखॱઌʹόʔδϣϯ൪߸͕ܾఆ͞Εͯͨόʔδϣϯܾఆ releaseϒϥϯν masterʹϚʔδ
ϦϦʔεϑϩʔͷվળϩʔυϚοϓ• developΛܦ༝͠ͳ͍ϑϩʔʢGitHub Flowʣʹมߋ• ηϚϯςΟοΫόʔδϣχϯάΛΊΔ• ϦϦʔεલͰͳ͘ɺϦϦʔεલʹόʔδϣϯΛࣗಈͰܾΊΔ• ͋ΘͤͯɿࣗಈϚΠάϨʔγϣϯ• ͋ΘͤͯɿखಈঝೝΛΊΔ
Github Flow
DROBEͷ։ൃϑϩʔͰGit Flow͕߹͍͕ͬͯͨ…• Git FlowͰӡ༻͍ͯͨͨ͠Ίɺඞͣdevelop -> release -> masterͱͳ͍ͬͯͨ• ֬ೝεςʔδϯάڥͰߦ͍͕ͬͯͨɺεςʔδϯάdevelopͰߏங͍ͯͨ͠• ↑ͷͨΊɺϦϦʔε͕Ͱ͖ͳ͍ϩοΫঢ়ଶ͕ੜ·Εͯ͠·͍ͬͯͨ• 7.1.0 Λग़͍͚ͨ͠Ͳɺ7.0.3(hotfix)͕ݕূͰ͖ͯͳ͍ͷͰϦϦʔεͰ͖ͳ͍• ݁ՌɺϦϦʔε͕େ͖͘ͳͬͨɻʢ͍ͭͰʹ͜Εʂ͕૿͑Δʣ
GitHub Flowmainfeature
ݕূͦΕͧΕͷϒϥϯνΛCodespacesͰجຊεςʔδϯάڥ͕ෆཁʹmainfeature 2"2"
େ͖͘ͳΔ߹featureϒϥϯνΛ࡞Δmainfeature
Ͳ͏ͯ͠εςʔδϯάڥ͕ඞཁͳ߹developmainfeaturedevelop
ΧϨϯμʔόʔδϣχϯάѥछ
ࠓ·ͰSemantic VersioningΛ࠾༻ػೳػೳػೳػೳػೳػೳ ػೳػೳػೳػೳ7.1.0 7.1.1 7.1.2 7.2.0 7.3.0
ʮͲͬͪΛ͋͛Ε͍͍ΜͩΖʁʯ͕ൃੜͯͨ͠7.0.1ύονʁϚΠφʔʁ˞%30#&ͰϏδωεཁ݅ʹΑΔٸ͗ͷରԠɾόάରԠ྆ํΛlIPUfiYzͱݺΜͰ͍ͨͷͰɺΑ͘͜ͷ͕ى͜Γ·ͨ͠ɻ
ηϚϯςΟοΫ͔ΒΧϨϯμʔόʔδϣχϯάʹ7.0.1 2023.12
৽͍͠ϦϦʔεϑϩʔPR࡞ mainϚʔδϦϦʔευϥϑτύϒϦογϡʂ ˢ ࣗಈ࠾൪
Feature Flag
େ͖ͳػೳΛ·ͱΊͯग़͍ͨ࣌͋͠Δػೳػೳػೳػೳػೳػೳ ػೳػೳػೳػೳ·ͱΊͯ ग़͍ͨ͠
ઌߦͯ͠৽ػೳΛϦϦʔεՄೳʹػೳ ػೳ ػೳ ػೳ ػೳϑϥά OFF ϑϥά ON৽ػೳ༗ޮԽ৽ػೳແޮ
Four keys
DROBEʹ։ൃঢ়گͷࢦඪ͕ͳ͔ͬͨ• ͳΜͱͳ͘ʮࠓճ͕͔͔࣌ؒͬͨʯʮো͕ଟ͔ͬͨʯͱ͍͏ೝࣝͯͨ͠• ͜ͷঢ়گͩͱɺϓϩμΫτͷ࣏ྍ͕͓Ζ͔ͦʹͳͬͯ͠·͏• ʮো͕ଟ͍ͷͰ࣏͍ͨ͠ʯͱ͍ͬͯࠜڌ͕ͳ͍• ͔ͤͬ͘ૣ͘ϦϦʔε͍ͯ͠ΔࢪࡦΛͯ͠Δ͔ΒଌΓ͍ͨ
Offers MGRಋೖ
Offers MGRʹΑΓଌΕΔΑ͏ʹͳͬͨͷ• Four Keysੳ• ϦϦʔε·ͰͷϦʔυλΠϜ• σϓϩΠͷස• োͷൃੜ• োͷ෮چ࣌ؒ• ίϛϡχέʔγϣϯੳ• and more…
ۙͷFour Keysੳ
ϦϦʔεϑϩʔΛมߋͨ͠·ͳͼ• ϦϦʔεͷεϐʔυ͕֨ஈʹ্͕ͬͨɻʢݱࡏ 3ϦϦʔε / ʣ• খ͘͞ग़͘͢͠ͳͬͨ• ϦϦʔεෛՙ͕ͱͯԼ͕ͬͨ• Ұํ• ݕূ͕ͭ·Γ͘͢ͳͬͨ• PBIΛখ͘͢͞Δͷ͕·ͩۤख• εςʔδϯάڥͰ͔֬͠ೝͰ͖ͳ͍͜ͱ͕͋Δ͜ͱ͕Θ͔ͬͨ• LINE, Slack௨, ຊ൪ʹ͍ۙσʔλߏͳͲ• ίʔυɾςετ͕ͪΐͬͱෳࡶʹͳΓ͍͢
ҙࢥܾఆͷվળ
ಉ͡ػೳͷ։ൃΛෳਓ͕Δ͜ͱ͕૿͖͑ͯͨA-aA-bA-cػೳA
͍ظؒͰ༷ʹ͍ͭͯٞ͢Δ͕ඞཁͱͳͬͨA-aA-bA-cػೳAͲ͏͠·͠ΐ͏ʁ
ADR (Architecture Decision Records)
ADRΛಋೖ• ॏްͳ༷ॻखʹ༨Δ• ϝϯςφϯε͞Εͳ͍ɺ͢Δࣗ৴͕ͳ͍• ͳʹ͔͠Βͷه͍ͨ͠• ݕࡧɾࢀর͍ͨ͠• ʮ݁ہɺͲ͏ͳͬͨΜ͚ͩͬʁʯ͕Γ͍ͨ
ADRͷத• λΠτϧɿܾΊ͍ͨ͜ͱͷλΠτϧ• εςʔλεɿঢ়گʢఏҊɺ٫Լɺঝೝʣ• ΧςΰϦʔɿಠ߲ࣗɺ֘ͷΧςΰϦʔʢWeb, Πϯϑϥ, MLͳͲʣ• ίϯςΩετɿͷઆ໌ɺ༰• ܾఆࣄ߲ɿܾఆͨ͠ʢܾఆ͍ͨ͠ʣ༰ͱཧ༝• ݁Ռɿ͜ͷมߋͰ؆୯ʹͳΔ͜ͱɺ͘͠ͳΔ͜ͱ
ADRαϯϓϧλΠτϧ Ϣʔβใʹ9ͷΞΧϯτใΛอଘ͍ͨ͠εςʔλε ঝೝίϯςΩετϢʔβใͱͯ͠ɺ9ͷΞΧϯτใΛऔಘ͢Δ͜ͱʹͳͬͨɻ ͦΕΛอଘ͢ΔͨΊʹVTFSTςʔϒϧʹɺzY@VTFSOBNFz ϑΟʔϧυΛՃ͍ܾͨ͠ఆࣄ߲ϢʔβใͰ͋Δ͕جຊใͰͳ͘ɺࠓޙ5ISFBETͳͲՃ͞ΕΔՄೳੑ͕ ͋ΔͷͰɺVTFSTςʔϒϧͰͳ͘ɺVTFS@TOTFTςʔϒϧΛՃ͠ɺͦ͜ʹอଘ͢Δ lTOT@UZQFz lTOT@VTFSOBNFzΛอଘ͢Δ݁ՌςʔϒϧΛՃ͢ΔͷͰɺϦϨʔγϣϯΛΔඞཁ͕͋Δ ςʔϒϧՃͳͷͰɺϚΠάϨʔγϣϯͷ࣌ؒۃখ
εΫϥϜӡӦͷվળ
LeSS (Large Scaled Scrum)
εΫϥϜ։࢝ޙνʔϜ༁✖ 1POSM✖ 2PdM✖ 3Dev✖ 5QA✖ 2ML✖ 2Design✖ 1
νʔϜ͕େ͖͍ͱඇޮʹͳΔ• MTG͕͘ͳΓ͕ͪ• ඞཁҎ্ͷٞʹͳΓ͕ͪ• ͞ͳ͍ਓ͕ग़ͯ͘Δ• ଞਓࣄʹͳΔ• શһͷҙݟΛٵ্͍͛ʹ͍͘• ݁Ռɺඞཁͳҙݟ͕ͳ͍͕͠Ζʹ͞Ε͕ͪ• ଟܾΛͱͬͯ͠·͏
͍͍ͱࢥ͍·͢੬ऑੑ͕…େࣄͳҙݟཱ͕ͪফ͑ͯ͠·͏͓ͦΕ͕
SM ΓͮΕ͐…
LeSS (Large Scaled Scrum)ͷಋೖ5FBN" 5FBN#SMPdMDev QADevSMPdMDev QADevDevPdM DesignPO
τϥϕϥʔͲͪΒͷνʔϜʹೖΕΔ5FBN" 5FBN#SMPdMDev QADevSMPdMDev QADevDevPdM DesignτϥϕϥʔPO
ଞνʔϜͷϔϧϓՄೳ5FBN" 5FBN#SMPdMDev QADevSMPdMDev QADevDevPdM DesignPO
εΫϥϜӡӦΛมߋͨ͠·ͳͼ• νʔϜ͝ͱͷػೳʹϑΥʔΧεͰ͖Δ• MTGɺ։ൃεϜʔζʹ• υϝΠϯ͕ࣝٵऩ͘͢͠ͳͬͨ• ͢ਓ͕૿͑ɺҙݟग़͘͢ͳͬͨ• Ұํ• νʔϜؒͷίϛϡχέʔγϣϯ͕رബʹͳ͖ͬͯͨ• ཱͪҐஔͷ͍͠λεΫΛर͍ʹ͍͘• τϥϕϥʔ͕͘͠ͳΓ͕ͪ• ϔϧϓͷํΛߟ͑ͳ͍ͱɺ͏ยํͷνʔϜʹ໎͕͔͔Δ
վળ·ͩ·ͩ͜Ε͔Βʂ
We are hiring!!ΧδϡΞϧ໘ஊਵ࣌डதͰ͢ʂDROBE͍͍ͧࠓͳΒ৭ʑͳτϥΠΛମݧͰ͖·͢