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

More Decks by Emotional API

Other Decks in Programming


  1. @johnksawers Setbacks • The most common event triggering a “worst

    day” was a setback. • Significantly affect mood • Dampen motivation 4
  2. @johnksawers Errors Are Everywhere • Libraries • Frameworks • Operating

    Systems • Servers • 3rd Party Services • The internet itself • My code 6
  3. @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
  4. “ …negative experiences tend to exert greater psychological impact on

    us than positive experiences of the same magnitude.[1] 21
  5. @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
  6. @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
  7. @johnksawers Bug Hunt Reframed • Google • Stack Overflow •

    Gem/Library READMEs • Blogs • Library Source Code • App Modules 29
  8. @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
  9. @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
  10. @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
  11. @johnksawers Spread The News • Tell people about your wins

    • Blogging • Conference Talks • Team Learning/Presentation 45
  12. @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
  13. “ …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
  14. @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