Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Everything Is Broken, and It's OK

Everything Is Broken, and It's OK

It's great when things break! It doesn't feel like it when it's happening to you, but those bugs that take you days to figure out are a goldmine of unintended learning.

Does programming ever get easier? No, and that would be boring. I'm going to talk about how we are all working on the hardest problem we've ever worked on. No matter where we are in our careers it always feels like an uphill battle.

I'll talk about ways to find value in that "wasted" time, to appreciate the hard bugs and daunting challenges, whether you're brand new to programming, or have been doing it for 20 years.

Emotional API

March 18, 2018
Tweet

More Decks by Emotional API

Other Decks in Programming

Transcript

  1. @johnksawers
    Everything Is Broken, and It’s OK
    Why it’s good when things break

    View Slide

  2. @johnksawers
    I’m John Sawers
    @johnksawers
    http:/
    /johnksawers.com
    http:/
    /emotionalapi.com

    View Slide

  3. @johnksawers
    Part 1: Everything
    Is Broken
    The Life of a Developer
    3

    View Slide

  4. @johnksawers
    Setbacks
    ● The most common event triggering a “worst day” was a
    setback.
    ● Significantly affect mood
    ● Dampen motivation
    4

    View Slide

  5. @johnksawers
    The Daily Error
    5

    View Slide

  6. @johnksawers
    Errors Are Everywhere
    ● Libraries
    ● Frameworks
    ● Operating Systems
    ● Servers
    ● 3rd Party Services
    ● The internet itself
    ● My code
    6

    View Slide

  7. @johnksawers 7

    View Slide

  8. @johnksawers 8

    View Slide

  9. @johnksawers 9

    View Slide

  10. @johnksawers10

    View Slide

  11. @johnksawers11

    View Slide

  12. @johnksawers12

    View Slide

  13. @johnksawers13

    View Slide

  14. @johnksawers14

    View Slide

  15. @johnksawers
    The Bug Hunt
    15

    View Slide

  16. @johnksawers16

    View Slide

  17. @johnksawers
    Test Environment
    ● Add a new test environment for CI to the Rails config
    ● It should have taken half an hour
    ● It took 2 full days
    17

    View Slide

  18. @johnksawers
    The Hard Problem
    18

    View Slide

  19. @johnksawers19

    View Slide

  20. @johnksawers
    Negativity Bias
    The Way Brains Work
    20

    View Slide


  21. …negative experiences tend to exert
    greater psychological impact on us
    than positive experiences of the
    same magnitude.[1]
    21

    View Slide

  22. @johnksawers
    Climbing A Pyramid
    22
    Photo: https:/
    /thevelvetrocket.com/2010/03/11/jebel-barkal/

    View Slide

  23. @johnksawers
    What You See At Every Step
    23

    View Slide

  24. @johnksawers
    I’m Speaking To You
    ● This applies anywhere in your career
    ● Setbacks are normal
    ● It doesn’t get any easier
    ● You don’t want it to
    24

    View Slide

  25. @johnksawers
    Part 2: It’s OK
    No, really

    View Slide

  26. @johnksawers
    Change Our
    Thoughts
    The Easiest Things To Change
    26

    View Slide

  27. @johnksawers
    Reframing
    27

    View Slide

  28. @johnksawers
    Errors Are Everywhere Reframed
    ● We don’t notice the things that work
    ● We move immediately to the next broken thing
    ● Try to notice when this is happening
    28

    View Slide

  29. @johnksawers
    Bug Hunt Reframed
    ● Google
    ● Stack Overflow
    ● Gem/Library READMEs
    ● Blogs
    ● Library Source Code
    ● App Modules
    29

    View Slide

  30. @johnksawers
    Bug Hunt Reframed
    Keep An Eye Out For Direct Learning
    30

    View Slide

  31. @johnksawers
    Bug Hunt Reframed
    Keep An Even Bigger Eye Out For
    Accidental Learning
    31

    View Slide

  32. @johnksawers
    Bug Hunt Reframed
    Constant Rate Throughout Career
    32

    View Slide

  33. @johnksawers
    My Bug Hunt Results
    33
    I Learned:
    ● Environment name is loaded in rails_helper.rb, not
    rspec_helper.rb
    ● Not a problem when they’re both ‘test’
    ● You can pass --env to rspec
    ● You can set system environment variable, but that’s loaded
    ● Lots of code will make assumptions that test env is called test

    View Slide

  34. @johnksawers
    Hard Problems Reframed
    ● Notice what’s easy
    ● Especially if it used to be hard
    ● Realize this means progress
    ● It doesn’t get easier unless you pick trivial problems
    34

    View Slide

  35. @johnksawers35

    View Slide

  36. @johnksawers
    Change Our
    Actions
    This is Where It Gets Good
    36

    View Slide

  37. @johnksawers
    Celebrate The Little Wins
    ● Not just the big ones
    ● They get celebrated anyway (most likely)
    ● Too infrequent
    ● Even progress counts as a win
    37

    View Slide

  38. @johnksawers
    Acknowledge It
    38

    View Slide

  39. @johnksawers
    Acknowledge It
    39

    View Slide

  40. @johnksawers
    Power Poses[3]
    40

    View Slide

  41. @johnksawers
    Do A Little
    Dance
    41

    View Slide

  42. @johnksawers
    Victory Song
    42

    View Slide

  43. @johnksawers43
    Photo: https:/
    /tyleredlinart.deviantart.com/art/comission-fur-on-fur-172151625

    View Slide

  44. @johnksawers44

    View Slide

  45. @johnksawers
    Spread The News
    ● Tell people about your wins
    ● Blogging
    ● Conference Talks
    ● Team Learning/Presentation
    45

    View Slide

  46. @johnksawers
    Make Space
    ● Coffee break
    ● Quick walk
    ● Stretching
    ● A Few Deep Breaths
    46

    View Slide

  47. @johnksawers
    Regular Reflection
    ● What went well?
    ● What did I complete or make progress on?
    ● What did I achieve?
    ● What went well?
    ● What brought me joy, fulfillment ?
    ● What steps did I take that got me closer to my goals?
    47

    View Slide

  48. @johnksawers
    Tools
    48

    View Slide

  49. @johnksawers
    Positivity
    Bias
    Let’s Create One
    49

    View Slide


  50. …people are more creative and
    productive when their inner work lives
    are positive…and have positive
    perceptions of their colleagues and the
    organization.[2]
    50

    View Slide

  51. @johnksawers
    Feedback Loop
    51

    View Slide

  52. @johnksawers
    You’re
    Responsible
    You May Not Want To Hear This
    52

    View Slide

  53. @johnksawers
    Pyramid
    53

    View Slide

  54. @johnksawers
    Stop. Turn Around. Take It In.
    54

    View Slide

  55. @johnksawers
    So It Really Is OK
    55

    View Slide

  56. @johnksawers
    It was OK all along.
    We just didn’t notice.
    56

    View Slide

  57. Celebrate!

    View Slide

  58. @johnksawers58
    Thanks!
    @johnksawers
    http:/
    /johnksawers.com
    http:/
    /emotionalapi.com

    View Slide

  59. @johnksawers59
    References
    [1] - https:/
    /www.ncbi.nlm.nih.gov/pmc/articles/PMC3652533/
    [2] - https:/
    /hbr.org/2011/05/the-power-of-small-wins & http:/
    /progressprinciple.com/
    [3] - https:/
    /ideas.ted.com/inside-the-debate-about-power-posing-a-q-a-with-amy-
    cuddy/
    Related Links
    • How It Goes: http:/
    /thedoghousediaries.com/5468
    • Finding Beauty in the Mundane: https:/
    /www.youtube.com/watch?v=ZRgiVRqPVL4
    • Burnout: https:/
    /www.kennethreitz.org/essays/the-reality-of-developer-burnout

    View Slide