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

D43e8ea63b61e7669ded5b9d3c2e980f?s=128

Charlie Robbins

March 12, 2015
Tweet

Transcript

  1. None
  2. IMPORTANT CODE ALIVE Keeping

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

    And software engineering
  4. None
  5. Now. LET ME TELL YOU A STORY...

  6.  A Long Time AGo In A GalaXy Far Far

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

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

    Away... OPEN SOURCE It s a Story ’ Actually ABOUT
  9. MID 2010 NODEJITSU STARTED In NODE.JS WAS LIKE AND BACK

    THEN
  10. None
  11. THE WILD WEST

  12. THE WILD WEST  Or Maybe...

  13. None
  14. AN UNTOUCHED PARADISE?

  15. AN UNTOUCHED PARADISE?  Some might say...

  16. None
  17. THE MANCHURIAN CANDIDATE?

  18. THE MANCHURIAN CANDIDATE?  NO MATTER WHAT...

  19. THE MODULES WE NEEDED Were like...

  20.  404 not found

  21.  404 not found  SO, like many others

  22.  404 not found  SO, like many others 

    WE WROTE THEM
  23.  404 not found  SO, like many others 

    WE WROTE THEM  OURselves
  24. None
  25. THE BEST FEELINGS Ever. For Serious. CERTAINLY ONE OF

  26. None
  27. WRITE NODE.jS MODULES WE WANT YOU TO

  28. None
  29. And WE DID!

  30. And WE DID!  LAST MONTH, Just my own npm

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

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

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

    WAS ALSO...
  34. None
  35. ABSOLUTELY TERRIfying

  36. None
  37. BECAUSE BACK TO OUR STORY...

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

  39.  RUNNING A STARTUP

  40.  RUNNING A STARTUP Is A LOT OF WORK

  41. None
  42. REMEMBER THAT SUPER HAPPY FEELING?

  43. None
  44. FROM YOUR USERS TOTALLY SUCKS TAKING ABUSE “ ” It

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

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

  47.  ASIDE

  48.  ASIDE  USING TWITTER IS LIKE....

  49.  ....EXCEPT 140 CHARACTERS IS EVEN WORSE.  ASIDE 

    USING TWITTER IS LIKE....
  50. None
  51. CULTIVATE PERSONAL INTERACTION

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

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

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

    IT AS DISCRETION. ... Or Having some Class.
  55. None
  56. ONCE AGAIN BACK TO OUR STORY...

  57. ONCE AGAIN BACK TO OUR STORY...  WITHOUT THE ADEQUATE

    TIME TO MAINTAIN THE MODULES I WROTE...
  58. None
  59.  2,000+ UNREAD GITHUB EMAILs

  60.  2,000+ UNREAD GITHUB EMAILs  TONS OF NEGATIVITY

  61.  2,000+ UNREAD GITHUB EMAILs  TONS OF NEGATIVITY IS

    THIS PROJECT Abandoned?” “
  62. YOUR MODULE'S BAD AND YOU SHOULD FEEL BAD

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

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

    ME ....  .... i did.
  65. None
  66. AGAIN: BE #$%@ing Nice

  67. None
  68. FROM NEW YORK I AM

  69. FROM NEW YORK I AM AND SO IS

  70. None
  71. None
  72.  WITH GREAT POWER COMES GREAT RESPONSIBILITY

  73. None
  74.  OPEN SOURCE IT CAN BE DONE!

  75. #PICARDTIPS

  76. None
  77. You Are Probably Thinking BUT HOW?

  78. SCIENCE CAT SAYS

  79. SCIENCE CAT SAYS “ ” GOOD QUESTION

  80. None
  81. WRITING CODE

  82. WRITING CODE IS

  83. WRITING CODE IS ABSOLUTELY NOT

  84. WRITING CODE IS THE ANSWER ABSOLUTELY NOT

  85. First:

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

    AND START
  87. None
  88.  TRIAGE ALL THE THINGS!

  89. ISSUES, FIRST.  TRIAGE ALL THE THINGS!

  90. ISSUES, FIRST.  THEN PULL REQUESTS.  TRIAGE ALL THE

    THINGS!
  91. None
  92. HIGH LEVEL PROBLEMS FIND THE TRIAGE INTO BUCKETS AND

  93. HIGH LEVEL PROBLEMS FIND THE TRIAGE INTO BUCKETS AND 

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

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

    NEXT-MINOR  NEXT-MAJOR  NEXT-PATCH
  96. None
  97. THEN YOU CAN LAND YOUR PRS

  98. THEN YOU CAN LAND YOUR PRS  DO NOT REFACTOR

    THE THINGS YOU HATE YET. For SeRIOUS.
  99. None
  100. BUT I HATE THE THINGS I HATE ABOUT my Code!

  101. PATIENCE

  102. LANDING OLD PRS IS HARD IT GETS EVEN HARDER AS

    MORE OF THE CODE CHANGES
  103. None
  104. JUST ASK THEM TO RESUBMIT

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

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

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

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

    THEN MERGE
  110. None
  111.  ON SOFTWARE QUALITY

  112.  ON SOFTWARE QUALITY  AND HUMILITY

  113. None
  114. DO NOT BE AFRAID

  115. DO NOT BE AFRAID  NOT EVERYONE PAINTS THE MONA

    LISA. AND CERTAINLY NOT EVERY TIME.
  116. None
  117. This MODULE, BLACKSMITH

  118. This MODULE, BLACKSMITH  But MEANWHILE....

  119. None
  120. HERE COMES METALSMITH

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

  122. None
  123. you're going to find THE TRUTHS WE CLING TO THAT

    MANY OF OUR OWN POINT OF VIEW DEPEND GREATLY ON
  124. %06#-&%08/ %&13&$"5& (*7&"8": 45*--0/(0*/(  IT IS A PRACTICE.

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

    SO DOUBLE DOWN,
  126. %06#-&%08/ %&13&$"5& (*7&"8": 45*--0/(0*/(  IT IS A PRACTICE. 

    SO DOUBLE DOWN,  DEPRECATE,
  127. %06#-&%08/ %&13&$"5& (*7&"8": 45*--0/(0*/(  IT IS A PRACTICE. 

    SO DOUBLE DOWN,  DEPRECATE,  OR GIVE IT AWAY.
  128. THANKS {github, twitter}.com/indexzero CHARLIE@nodejitsu.com

  129. THANKS {github, twitter}.com/indexzero CHARLIE@nodejitsu.com MAY THE SOURCE BE WITH YOU