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

Fixing Bugs in the Real World

Fixing Bugs in the Real World

Given at iOSDevCampDC on July 22, 2016

Samuel E. Giddins

July 22, 2016
Tweet

More Decks by Samuel E. Giddins

Other Decks in Technology

Transcript

  1. REAL ! > Our job is ! > We face

    constraints > Time > Money > Developer " > Every other resource
  2. WHAT IS A !? Popular answers: > "This is broken!"

    > "I can't use this!" > "I want this thing to be easier!" > "I want to do this but I can't!"
  3. WHAT IS A !? SOMETHING THAT GETS IN THE WAY

    OF YOUR THING DOING ITS JOB
  4. I'm writing this under pressure for a conference talk !:

    It doesn't need to work, but I need to know it well enough to drone on about it for 20 minutes.
  5. iOS 8 is coming out !: The share extension just

    needs to be able to post things, I don't care about the color of the status bar.
  6. I'm an indy developer and my users are clamoring for

    this feature !: I need to implement the feature to keep my customer sat high.
  7. I run an open source project that doesn't do X

    !: People want my project to do X and they might not use it until it does.
  8. I run an open source project that doesn't do X

    !: People want my project to do X and they won't stop filing issues until it does.
  9. WHAT IS A !? SOMETHING THAT GETS IN THE WAY

    OF YOUR THING DOING ITS JOB
  10. HOW DO I ! "? > 99 ! in Jira,

    99 ! > Take 1 down, " it around > 117 ! in Jira
  11. HOW DO I ! "? > Find what the problem

    really is > Determine 3-5 ways to fix it > Estimate the benfit from each approach > Pick the one with the highest ROI
  12. Sometimes, bug reports make me feel like my users are

    sending me this. In the heat of the moment, it feels like a personal attack.
  13. DETERMINE THE PROBLEM > Usually not what the text of

    the issue is > Ask lots of questions > Put yourself in your user's shoes
  14. COME UP WITH FIXES > Hacks ..< rewriting the entire

    thing > "Here's a workaround..." > "Behaves as intended" > "Behaves as implemented" / ¯\_(ϑ)_/¯
  15. ESTIMATE BENEFITS > What else can you knock out with

    this fix? > How much tech debt does this introduce? > Does it get in the way of other work you're doing? > How many new bugs will this introduce? > Are we getting dangerously close to feature territory? > Slash do we want to?
  16. KEEP AN OPEN MIND > Brain-dump as you go along

    > Am I making progress? > Is it time to just call it a day and move on? > Now that I understand what's going on, is there someone to hand off to? > Have I fixed it already without realizing?
  17. BUILD KNOWING YOU WILL ⌨ " > Always keep failure

    modes in mind > Make sure you get high quality !" > Don't take ! personally > Write software that users can work around*
  18. WHAT IS A !? SOMETHING THAT GETS IN THE WAY

    OF YOUR THING DOING ITS JOB
  19. That means your thing already does something. It's probably doing

    a lot of things right. Never forget that.
  20. Since so many things can be seen as ! by

    someone. One person's ! is another's feature.