Feedback Loops in Development

56485c3d91bda095b7af1f06b57249cb?s=47 Shoma Suzuki
September 13, 2018

Feedback Loops in Development

56485c3d91bda095b7af1f06b57249cb?s=128

Shoma Suzuki

September 13, 2018
Tweet

Transcript

  1. ιϑτ΢ΣΞ։ൃͷ
 ϑΟʔυόοΫϧʔϓ
 Feedback Loops in Development Shoma Suzuki @shoma
 2018/09/13

    at CircleCI&Sider Meetup
  2. About Me

  3. ιϑτ΢ΣΞ։ൃϥΠϑαΠΫϧ *%&" %&7&-01 3&-&"4&

  4. αΠΫϧͱͯ͠ճΓଓ͚Δ *%&" 3&-&"4& %&7&-01 '&&%#"$,

  5. Feedback Loops *%&" 3&-&"4& %&7&-01 '&&%#"$, '&&%#"$, '&&%#"$, '&&%#"$,

  6. Feedback Loops ͷϦʔυλΠϜ ݄ ि
 ೔
 ೔ ࣌ ෼
 ඵ

    IUUQTDPNNPOTXJLJNFEJBPSHXJLJ'JMF&YUSFNF@1SPHSBNNJOHTWH  
 $$#:4"
  7. Feedbackͱίετ *%&" %&7&-01 3&-&"4& ίετ ࣌ؒ 1IBTF

  8. Feedback Loops in Develop • Design Review • Lint/Static Code

    Analysis • Compile • Pair/Mob Programming, Code Review • Test
  9. Design Review • ʮԿΛʯʮԿͷͨΊʹʯʮͲͷΑ͏ʹʯ࡞Δ͔ʁ • ։ൃͷഎܠ΍໨తͷ໌֬Խ • Quality/Cost/Delivery ͷ߹ҙ •

    ϦεΫͷࢥߟ࣮ݧ • Design Docͱͯ͠·ͱΊΔ͜ͱ΋
  10. Lint, Static Code Analysis • ߴ଎ (ଞͷखஈʹൺ΂ͯ) • ΤσΟλ/IDE ্Ͱ΋࣮ߦՄೳ

    • Coding Style ͷ౷ҰͳͲ΋ • ؇ΊͷϧʔϧͰಋೖͯ͠ίʔυվળͭͭ͠ݫ ͘͠
  11. Compile • ࠷ۙͷίϯύΠϥ͸ݡ͘༏͍͠ • eg. Haskel, Rust • ʮίϯύΠϧͰ͖Δʯ͸ ඞਢ

    • ͕ͩɺoption Ͱ level ௐ੔͕(͍͍ͨͯ)Մೳ • eg. gcc -Wall
  12. Pair/Mob Programming, 
 Code Review • ҉໧஌ͱͳΓ͕ͪͳϊ΢ϋ΢Λڞ༗Ͱ͖Δ৔ • ʮ໰୊ vs

    ࢲͨͪʯओޠ͸ίʔυ • HRTݪଇ (2) • Humility(ݠڏ), Respect(ଚܟ), Trust(৴པ) • ΑΓྑ͍ίʔυ (ղܾࡦ) ΛੜΉػձ
  13. Test • Test Level ͷఆٛͱ࣮ߦ (Test Pyramid) • Unit/Functional/Integration(UI)/Exploratory •

    Testing vs Checking (3) • Smoke Test Ͱ΋ޮՌ͕͋Δ • Mythical Unit Test Coverage (4) • มߋ༰қੑ
  14. Feedback Loops in Release • Dog Fooding • Canary Release

    • Staged Rollouts (ஈ֊ϦϦʔε) • Testing in Production • Monitoring (Mackerel, Datadog, NewRelic) • Error Tracking (Sentry, Rollbar, Crashlytics, kibana)
  15. Post-mortem (ৼΓฦΓ) • ࣦഊ͔ΒֶͿ • ੹೚௥ٴͰ͸ͳ͍ • ݪҼͱରࡦͷ௥ٻ • ϝϧΧϦͷ3ͭͷValueͰऔΓ૊ΉΠϯγσϯτର

    Ԡ • ࣦഊͷՊֶ ϚγϡʔɾαΠυ
  16. Feedback Loops ͕ճΓଓ͚Δͱ…

  17. Marginal Gains (վળͷੵΈॏͶ) • The whole principle came from the

    idea that if you broke down everything you could think of that goes into riding a bike, and then improved it by 1%, you will get a significant increase when you put them all together • 1%ͷվળͷੵΈॏͶଓ͚Δ͜ͱ͕ɺେ͖ͳࠩͱͳΔ (ҙ ༁) • Sir. Dave Brailsford (2012), (ex-British Cycling, Team-Sky) (5)
  18. Fail Early, Fail Often, Fail Well

  19. Appendix 1. https://en.wikipedia.org/wiki/Extreme_programming 2. Team Geek Brian, W. Fitzpatrick 3.

    TDD is dead. Long live testing. David Heinemeier Hansson 4. Mythical Unit Test Coverage, IEEE Software ( Volume: 35, Issue: 3, May/June 2018 ) 5. Olympics cycling: Marginal gains underpin Team GB dominance