$30 off During Our Annual Pro Sale. View Details »

Feedback Loops in Development

Shoma Suzuki
September 13, 2018

Feedback Loops in Development

Shoma Suzuki

September 13, 2018
Tweet

More Decks by Shoma Suzuki

Other Decks in Programming

Transcript

  1. ιϑτ΢ΣΞ։ൃͷ

    ϑΟʔυόοΫϧʔϓ

    Feedback Loops in Development
    Shoma Suzuki @shoma

    2018/09/13 at CircleCI&Sider Meetup

    View Slide

  2. About Me

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  6. Feedback Loops ͷϦʔυλΠϜ
    ݄
    ि

    ೔



    ෼


    IUUQTDPNNPOTXJLJNFEJBPSHXJLJ'JMF&YUSFNF@1SPHSBNNJOHTWH


    $$#:4"

    View Slide

  7. Feedbackͱίετ
    *%&" %&7&-01 3&-&"4&
    ίετ
    ࣌ؒ 1IBTF

    View Slide

  8. Feedback Loops in Develop
    • Design Review
    • Lint/Static Code Analysis
    • Compile
    • Pair/Mob Programming, Code Review
    • Test

    View Slide

  9. Design Review
    • ʮԿΛʯʮԿͷͨΊʹʯʮͲͷΑ͏ʹʯ࡞Δ͔ʁ
    • ։ൃͷഎܠ΍໨తͷ໌֬Խ
    • Quality/Cost/Delivery ͷ߹ҙ
    • ϦεΫͷࢥߟ࣮ݧ
    • Design Docͱͯ͠·ͱΊΔ͜ͱ΋

    View Slide

  10. Lint, Static Code Analysis
    • ߴ଎ (ଞͷखஈʹൺ΂ͯ)
    • ΤσΟλ/IDE ্Ͱ΋࣮ߦՄೳ
    • Coding Style ͷ౷ҰͳͲ΋
    • ؇ΊͷϧʔϧͰಋೖͯ͠ίʔυվળͭͭ͠ݫ
    ͘͠

    View Slide

  11. Compile
    • ࠷ۙͷίϯύΠϥ͸ݡ͘༏͍͠
    • eg. Haskel, Rust
    • ʮίϯύΠϧͰ͖Δʯ͸ ඞਢ
    • ͕ͩɺoption Ͱ level ௐ੔͕(͍͍ͨͯ)Մೳ
    • eg. gcc -Wall

    View Slide

  12. Pair/Mob Programming, 

    Code Review
    • ҉໧஌ͱͳΓ͕ͪͳϊ΢ϋ΢Λڞ༗Ͱ͖Δ৔
    • ʮ໰୊ vs ࢲͨͪʯओޠ͸ίʔυ
    • HRTݪଇ (2)
    • Humility(ݠڏ), Respect(ଚܟ), Trust(৴པ)
    • ΑΓྑ͍ίʔυ (ղܾࡦ) ΛੜΉػձ

    View Slide

  13. Test
    • Test Level ͷఆٛͱ࣮ߦ (Test Pyramid)
    • Unit/Functional/Integration(UI)/Exploratory
    • Testing vs Checking (3)
    • Smoke Test Ͱ΋ޮՌ͕͋Δ
    • Mythical Unit Test Coverage (4)
    • มߋ༰қੑ

    View Slide

  14. Feedback Loops in Release
    • Dog Fooding
    • Canary Release
    • Staged Rollouts (ஈ֊ϦϦʔε)
    • Testing in Production
    • Monitoring (Mackerel, Datadog, NewRelic)
    • Error Tracking (Sentry, Rollbar, Crashlytics, kibana)

    View Slide

  15. Post-mortem (ৼΓฦΓ)
    • ࣦഊ͔ΒֶͿ
    • ੹೚௥ٴͰ͸ͳ͍
    • ݪҼͱରࡦͷ௥ٻ
    • ϝϧΧϦͷ3ͭͷValueͰऔΓ૊ΉΠϯγσϯτର
    Ԡ
    • ࣦഊͷՊֶ ϚγϡʔɾαΠυ

    View Slide

  16. Feedback Loops ͕ճΓଓ͚Δͱ…

    View Slide

  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)

    View Slide

  18. Fail Early, Fail Often, Fail Well

    View Slide

  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

    View Slide