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

Keeping important code alive (SeattleJS, March 2015)

Keeping important code alive (SeattleJS, March 2015)

An exercise in Open source, psychology, and software engineering

Charlie Robbins

March 12, 2015
Tweet

More Decks by Charlie Robbins

Other Decks in Technology

Transcript

  1. View Slide

  2. IMPORTANT CODE
    ALIVE
    Keeping

    View Slide

  3. IMPORTANT CODE
    ALIVE
    Keeping
    An EXercise in Open source, psychology, And
    software engineering

    View Slide

  4. View Slide

  5. Now. LET ME TELL YOU
    A STORY...

    View Slide


  6. A Long Time AGo In A GalaXy Far
    Far Away...

    View Slide


  7. A Long Time AGo In A GalaXy Far
    Far Away...

    View Slide


  8. A Long Time AGo In A GalaXy Far
    Far Away...
    OPEN SOURCE
    It s a Story
    ’ Actually
    ABOUT

    View Slide

  9. MID 2010
    NODEJITSU
    STARTED In
    NODE.JS WAS LIKE
    AND BACK THEN

    View Slide

  10. View Slide

  11. THE
    WILD WEST

    View Slide

  12. THE
    WILD WEST

    Or Maybe...

    View Slide

  13. View Slide

  14. AN UNTOUCHED
    PARADISE?

    View Slide

  15. AN UNTOUCHED
    PARADISE?

    Some might say...

    View Slide

  16. View Slide

  17. THE MANCHURIAN
    CANDIDATE?

    View Slide

  18. THE MANCHURIAN
    CANDIDATE?

    NO MATTER WHAT...

    View Slide

  19. THE
    MODULES
    WE NEEDED Were like...

    View Slide


  20. 404 not found

    View Slide


  21. 404 not found

    SO, like many others

    View Slide


  22. 404 not found

    SO, like many others

    WE WROTE THEM

    View Slide


  23. 404 not found

    SO, like many others

    WE WROTE THEM
    OURselves

    View Slide

  24. View Slide

  25. THE BEST FEELINGS
    Ever. For Serious.
    CERTAINLY ONE OF

    View Slide

  26. View Slide

  27. WRITE NODE.jS
    MODULES
    WE WANT YOU
    TO

    View Slide

  28. View Slide

  29. And
    WE DID!

    View Slide

  30. And
    WE DID!

    LAST MONTH, Just my own npm
    modules totaled over...

    View Slide

  31. 10,000,000+ downloads
    Source: npm-stats.com

    View Slide

  32. IT WAS Truly Humbling
    10,000,000+ downloads
    Source: npm-stats.com

    View Slide

  33. IT WAS Truly Humbling
    10,000,000+ downloads
    Source: npm-stats.com
    But
    IT WAS ALSO...

    View Slide

  34. View Slide

  35. ABSOLUTELY
    TERRIfying

    View Slide

  36. View Slide

  37. BECAUSE
    BACK TO OUR STORY...

    View Slide

  38. BECAUSE
    BACK TO OUR STORY...
    IT TURNS OUT

    View Slide


  39. RUNNING A STARTUP

    View Slide


  40. RUNNING A STARTUP
    Is A LOT OF WORK

    View Slide

  41. View Slide

  42. REMEMBER THAT
    SUPER HAPPY FEELING?

    View Slide

  43. View Slide

  44. FROM YOUR USERS
    TOTALLY SUCKS
    TAKING ABUSE
    “ ”
    It turns out
    JUST

    View Slide

  45. 40#&'6$,*/(/*$&

    View Slide

  46. 40#&'6$,*/(/*$&
    Please: BE
    #$%@ing
    Nice

    View Slide

  47. ASIDE

    View Slide

  48. ASIDE
    USING TWITTER IS LIKE....

    View Slide

  49. ....EXCEPT 140 CHARACTERS IS EVEN WORSE.
    ASIDE
    USING TWITTER IS LIKE....

    View Slide

  50. View Slide

  51. CULTIVATE PERSONAL INTERACTION

    View Slide

  52. CULTIVATE PERSONAL INTERACTION
    WHEN IN DOUBT, FOLLow-up Privately

    View Slide

  53. CULTIVATE PERSONAL INTERACTION
    WHEN IN DOUBT, FOLLow-up Privately
    THINK OF IT AS DISCRETION.

    View Slide

  54. CULTIVATE PERSONAL INTERACTION
    WHEN IN DOUBT, FOLLow-up Privately
    THINK OF IT AS DISCRETION.
    ... Or Having some Class.

    View Slide

  55. View Slide

  56. ONCE AGAIN
    BACK TO OUR STORY...

    View Slide

  57. ONCE AGAIN
    BACK TO OUR STORY...

    WITHOUT THE ADEQUATE TIME TO
    MAINTAIN THE MODULES I WROTE...

    View Slide

  58. View Slide


  59. 2,000+ UNREAD GITHUB EMAILs

    View Slide


  60. 2,000+ UNREAD GITHUB EMAILs

    TONS OF NEGATIVITY

    View Slide


  61. 2,000+ UNREAD GITHUB EMAILs

    TONS OF NEGATIVITY
    IS THIS PROJECT
    Abandoned?”

    View Slide

  62. YOUR MODULE'S BAD
    AND YOU SHOULD FEEL BAD

    View Slide

  63. YOUR MODULE'S BAD
    AND YOU SHOULD FEEL BAD

    TRUST ME ....

    View Slide

  64. YOUR MODULE'S BAD
    AND YOU SHOULD FEEL BAD

    TRUST ME ....
    .... i did.

    View Slide

  65. View Slide

  66. AGAIN: BE
    #$%@ing
    Nice

    View Slide

  67. View Slide

  68. FROM NEW YORK
    I AM

    View Slide

  69. FROM NEW YORK
    I AM
    AND SO IS

    View Slide

  70. View Slide

  71. View Slide


  72. WITH GREAT POWER COMES GREAT RESPONSIBILITY

    View Slide

  73. View Slide


  74. OPEN SOURCE
    IT CAN BE DONE!

    View Slide

  75. #PICARDTIPS

    View Slide

  76. View Slide

  77. You Are Probably Thinking
    BUT HOW?

    View Slide

  78. SCIENCE CAT SAYS

    View Slide

  79. SCIENCE CAT SAYS
    “ ”
    GOOD QUESTION

    View Slide

  80. View Slide

  81. WRITING CODE

    View Slide

  82. WRITING CODE
    IS

    View Slide

  83. WRITING CODE
    IS
    ABSOLUTELY NOT

    View Slide

  84. WRITING CODE
    IS
    THE ANSWER
    ABSOLUTELY NOT

    View Slide

  85. First:

    View Slide

  86. First:
    WILLING TO HELP
    FIND ANYONE
    WHO IS
    WEEKLY MEETINGS
    AND START

    View Slide

  87. View Slide


  88. TRIAGE ALL THE THINGS!

    View Slide

  89. ISSUES, FIRST.

    TRIAGE ALL THE THINGS!

    View Slide

  90. ISSUES, FIRST.

    THEN PULL REQUESTS.

    TRIAGE ALL THE THINGS!

    View Slide

  91. View Slide

  92. HIGH LEVEL PROBLEMS
    FIND
    THE
    TRIAGE INTO BUCKETS
    AND

    View Slide

  93. HIGH LEVEL PROBLEMS
    FIND
    THE
    TRIAGE INTO BUCKETS
    AND
    NEXT-PATCH

    View Slide

  94. HIGH LEVEL PROBLEMS
    FIND
    THE
    TRIAGE INTO BUCKETS
    AND
    NEXT-MINOR
    NEXT-PATCH

    View Slide

  95. HIGH LEVEL PROBLEMS
    FIND
    THE
    TRIAGE INTO BUCKETS
    AND
    NEXT-MINOR
    NEXT-MAJOR
    NEXT-PATCH

    View Slide

  96. View Slide

  97. THEN YOU
    CAN LAND YOUR PRS

    View Slide

  98. THEN YOU
    CAN LAND YOUR PRS

    DO NOT REFACTOR THE THINGS YOU
    HATE YET. For SeRIOUS.

    View Slide

  99. View Slide

  100. BUT I HATE THE THINGS
    I HATE ABOUT
    my Code!

    View Slide

  101. PATIENCE

    View Slide

  102. LANDING OLD PRS IS HARD
    IT GETS EVEN HARDER AS
    MORE OF THE CODE CHANGES

    View Slide

  103. View Slide

  104. JUST ASK THEM TO RESUBMIT

    View Slide

  105. THERE IS USUALLY
    ONLY ONE CHANCE PER PR.
    DEVELOPERS VERY RARELY COMMIT

    View Slide

  106. #&'6$,*/($0/4*45&/5

    View Slide

  107. #&'6$,*/($0/4*45&/5
    THIS PERSON
    DO NOT BE
    PLEASE

    View Slide

  108. View Slide

  109. IT IS EASIER TO MERGE
    RATHER THAN REFACTOR
    THEN REFACTOR
    THEN MERGE

    View Slide

  110. View Slide


  111. ON SOFTWARE QUALITY

    View Slide


  112. ON SOFTWARE QUALITY
    AND HUMILITY

    View Slide

  113. View Slide

  114. DO NOT BE
    AFRAID

    View Slide

  115. DO NOT BE
    AFRAID

    NOT EVERYONE PAINTS THE MONA LISA. AND CERTAINLY
    NOT EVERY TIME.

    View Slide

  116. View Slide

  117. This MODULE,
    BLACKSMITH

    View Slide

  118. This MODULE,
    BLACKSMITH

    But MEANWHILE....

    View Slide

  119. View Slide

  120. HERE COMES
    METALSMITH

    View Slide

  121. nooo .... It's not true!

    View Slide

  122. View Slide

  123. you're going to find
    THE TRUTHS WE CLING TO
    THAT MANY OF
    OUR OWN POINT OF VIEW
    DEPEND GREATLY ON

    View Slide

  124. %06#-&%08/
    %&13&$"5&
    (*7&"8":
    45*--0/(0*/(


    IT IS A PRACTICE.

    View Slide

  125. %06#-&%08/
    %&13&$"5&
    (*7&"8":
    45*--0/(0*/(


    IT IS A PRACTICE.

    SO DOUBLE DOWN,

    View Slide

  126. %06#-&%08/
    %&13&$"5&
    (*7&"8":
    45*--0/(0*/(


    IT IS A PRACTICE.

    SO DOUBLE DOWN,
    DEPRECATE,

    View Slide

  127. %06#-&%08/
    %&13&$"5&
    (*7&"8":
    45*--0/(0*/(


    IT IS A PRACTICE.

    SO DOUBLE DOWN,
    DEPRECATE,

    OR GIVE IT AWAY.

    View Slide

  128. THANKS
    {github, twitter}.com/indexzero
    [email protected]

    View Slide

  129. THANKS
    {github, twitter}.com/indexzero
    [email protected]
    MAY THE SOURCE BE WITH YOU

    View Slide