Slide 1

Slide 1 text

ϞόΠϧΞϓϦͰͷ'FBUVSF'MBHಋೖ 4FQ 
 .PCJMF"DU04","

Slide 2

Slide 2 text

© Chatwork ࣗݾ঺հ !2 $IBUXPSLגࣜձࣾ
 ΫϥΠΞϯτΞϓϦέʔγϣϯ։ൃ෦ ෱Ҫɹষฏ J04ΞϓϦॻ͍ͨΓͯ͠·͢ UX!UJOQBZ

Slide 3

Slide 3 text

େࡕΦϑΟε ੢കాʹҾͬӽ͠·ͨ͠

Slide 4

Slide 4 text

෱ౡͷ͋ͨΓ ص

Slide 5

Slide 5 text

ϞόΠϧΞϓϦͰ 'FBUVSF'MBHΛಋೖ͢Δ·Ͱ

Slide 6

Slide 6 text

© Chatwork 'FBUVSF'MBHʢ'FBUVSF5PHHMFʣͱ͸ !6 ܧଓతϦϦʔεͱܧଓతσϓϩΠ͸ɺίʔσΟϯάʹ͍ͭͯͷϑΟʔυόοΫΛ։ൃऀͨͪʹ සൟʹఏڙͯ͘͠ΕΔɻ͜ΕΛ࣮ݱ͢Δʹ͸ɺෳ਺ͷ։ൃऀͨͪͷίʔυΛՄೳͳݶΓૣظʹ ౷߹͢Δ͜ͱ͕ඞཁʹͳΔɻ ػೳϒϥϯν͸͜ͷաఔʹൈ͚ಓΛ࡞ͬͯ͠·͏ɻػೳτάϧΛར༻͢Ε͹ɺ։ൃऀͨͪ͸ϝ ΠϯͷτϥοΫʹසൟʹιʔεΛ౷߹ͭͭ͠΋ɺ։ൃதͷػೳ΁ೖ͍͚ͬͯΔ࣮ߦܦ࿏ͷτά ϧΛʮ0''ʯʹ͓͚ͯ͠͹ɺͦͷػೳ͸ʮࢮΜͩʯঢ়ଶʹͳΔɻ৽͍࣮͠ߦܦ࿏Λ༗ޮʹ͢Δ ͨΊͷ࿑ྗ͸ɺ୯ʹτάϧΛʮ0/ʯʹઃఆ͢Δ͚ͩͳͷͰɺे෼ʹখ͍͞ɻ Ҿ༻ݩ8JLJQFEJB IUUQTKBXJLJQFEJBPSHXJLJϑΟʔνϟʔτάϧ

Slide 7

Slide 7 text

© Chatwork 'FBUVSF'MBHʢ'FBUVSF5PHHMFʣͱ͸ !7 ݸผͷػೳͷ༗ޮແޮΛϑϥάΛར༻ͯ͠؅ཧ ͢Δ࢓૊Έ wػೳΛ0''ʹͨ͠ঢ়ଶͰ͋Ε͹͍ͭͰ΋ϦϦʔεͰ͖ ΔͷͰɺػೳϒϥϯνͷੜଘظ͕ؒ୹͘ͳΔ

Slide 8

Slide 8 text

© Chatwork ࣮૷Πϝʔδ͸͜Μͳײ͡ !8 struct Feature { var isEnabled: Bool var name: String } public final class FeatureFlag { static let shared = FeatureFlag() let featureA = Feature(isEnabled: true, name: "ػೳA") let featureB = Feature(isEnabled: true, name: "ػೳB") let featureC = Feature(isEnabled: true, name: "ػೳC") } class DemoViewModel { var message: Message? func delete(){ if FeatureFlag.shared.featureA.isEnabled { // ػೳA͕༗ޮͳ৔߹ displayAlert { self.message?.delete() } } else { self.message?.delete() } } }

Slide 9

Slide 9 text

Α͋͘Δέʔε

Slide 10

Slide 10 text

ෳ਺ਓͰ։ൃΛ͓͜ͳ͍ͬͯΔͱ ৽ػೳͷ։ൃ͕ ฒߦͰಈ͘έʔε

Slide 11

Slide 11 text

େ͖Ίͷػೳ"௥Ճ ͦͦ͜͜ͷػೳ#௥Ճ ͦͦ͜͜ͷػೳ$௥Ճ ਓͰ৽ػೳΛ։ൃ͍ͯ͠Δέʔε

Slide 12

Slide 12 text

'FBUVSF'MBHΛಋೖ͢Δલ

Slide 13

Slide 13 text

ػೳ͝ͱʹϒϥϯνΛ࡞Γ
 ͦͷϒϥϯνʹϚʔδ͍ͯ͘͠։ൃϑϩʔ ػೳ" ػೳ# ػೳ$

Slide 14

Slide 14 text

© Chatwork ՝୊ !14 ڊେͳ13ʹͳͬͯ͠·͏ ίϯϑϦΫτ͕େྔʹൃੜͯ͠ɺϚʔδ࡞ۀ͕େมʂ ֤ػೳͷ։ൃऀಉ࢜ͷίϛϡχέʔγϣϯίετ͕૿Ճʂ

Slide 15

Slide 15 text

ίϯϑϦΫτ͕େྔʹൃੜͯ͠ɺ
 Ϛʔδ࡞ۀ͕େมʂ ػೳ" ػೳ# ػೳ$ ͜͜ͷϚʔδ͕ ͘͢͝େมʂ

Slide 16

Slide 16 text

֤ػೳͷ։ൃऀಉ࢜ͷίϛϡχέʔγϣ ϯίετ͕૿Ճʂ ػೳ"ɿλΠϜϥΠϯػೳɺमਖ਼͍ͯͬͯ͠ΔΑɻ ػೳ#ɿͦͷमਖ਼ೖ͔ͬͯΒͷํ͕ػೳ#͸ରԠ͠΍͚͢Ͳɺ ػೳ"ͷϦϦʔε͸͍ͩͿઌͩΑͳ͊ɻͲ͏͠Α͏͔ɻ ػೳ$ɿλΠϜϥΠϯɺ΋͔ͨ͠͠Βमਖ਼ඞཁ͔΋ʜ ڞ༗͓͍ͯͨ͠΄͏͕͍͍͔ͳɻ

Slide 17

Slide 17 text

'FBUVSF'MBHΛಋೖͨ͠ޙ

Slide 18

Slide 18 text

13͕͙͢ʹϚʔδ͞ΕΔͷͰ ίϯϑϦΫτ͕ൃੜ͠ʹ͘͘ͳΔ ػೳ" ػೳ# ػೳ$ Ϛʔδָ͕ʂ

Slide 19

Slide 19 text

© Chatwork ࣮ࡍʹ΍ͬͯΈͨײ૝ !19 w ৽ػೳͷ࣮૷͕ͲΜͲΜϚʔδ͞ΕΔΑ͏ʹͳͬͨ w ଞͷػೳ࣮૷ͷϦϦʔεΛ଴ͭඞཁ͕ͳ͘ͳͬͨ w 13͕খ͘͞ͳͬͨ w ίϯϑϦΫτ͕ൃੜ͠ʹ͘͘ͳͬͨ w ػೳϦϦʔεΛίϯτϩʔϧͰ͖ΔΑ͏ʹͳͬͨ w ࣾ಺ϝϯόʔʹ͚ͩػೳΛ༗ޮʹ͢Δͱ͍͏Α͏ͳϑϩʔ͕؆୯ʹ࣮ݱͰ͖Δ w ΍Γ͗͢ΔͱϦδΣΫτର৅ʹͳΔͷͰؾΛ͚ͭΔඞཁ͸͋Γ

Slide 20

Slide 20 text

© Chatwork ࣮ࡍʹ΍ͬͯΈͨײ૝ !20 w 4UPSZCPBSE্Ͱͷ෼ذ͸ෆՄೳ w 4UPSZCPBSEͰQSPQFSUZΛ৭ʑઃఆ͍ͯ͠Δ৔߹͸qBHʹΑΔ෼ذ͕೉͍͠ ͕ɺ7JFX$POUSPMMFSͰͷ෼ذ͸ՄೳͳͷͰɺ͋Δఔ౓͸6*ͷ෼ذ΋Ͱ͖Δ w "#ςετͷج൫ͮ͘ΓʹͳΔ w ϑϥάʹΑͬͯػೳΛ੾Γସ͑ΔͷͰɺ"#ςετ։ൃͷ࣮૷ʹࣅ͍ͯΔ

Slide 21

Slide 21 text

·ͱΊ

Slide 22

Slide 22 text

© Chatwork ·ͱΊ !22 'FBUVSF'MBHͷϝϦοτ w ͍ͭͰ΋EFWFMPQʹ13ΛϚʔδͰ͖ΔΑ͏ʹͳͬͨ w ϦϦʔε൛ΞϓϦΛར༻ͯ͠ɺ৽ػೳΛૣ͘ఏڙͰ͖Δ 'FBUVSF'MBHΛ࢖ͬͯࢥͬͨ͜ͱ w 4UPSZCPBSEͰͷར༻͸೉͍͠ɺେ͖͗͢Δमਖ਼ʹ޲͍ͯͳ͍ w ϑϥάʹΑΔ෼ذͷ࣮૷͸Ҋ֎γϯϓϧͳͷͰɺ·ͣ͸΍ͬͯ ΈͯΑ͔ͬͨ

Slide 23

Slide 23 text

https://corp.chatwork.com/ja/recruit/engineer/ ϞόΠϧΞϓϦ ΤϯδχΞ ืूͯ͠·͢ʂ

Slide 24

Slide 24 text

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