Collaborative Software Development in a Social World at the Utah JUG

Collaborative Software Development in a Social World at the Utah JUG

Modern software development is an endeavor that requires creativity, science, math, artistry, communication, strategy, and collaboration with colleagues across the globe. The sheer combinatorics of those requirements can seem overwhelming at times. The solution, just as we've done with design patterns for the code and architecture, is the establishment and use of patterns for human and machine communication. In this talk, we'll briefly explore the methods, modes and challenges of collaboration over the last several millennia before turning our focus towards solutions successfully employed in the last several years, including open source, social coding on GitHub, automated testing, CI, and CD.

Bededa744012c87721d68f69342f81b0?s=128

Matthew McCullough

June 18, 2015
Tweet

Transcript

  1. Collaborative Software DevelopmenT in a social world @matthewmccull

  2. @matthewmccull

  3. T

  4. None
  5. 1MB data != 1MB knowledge

  6. if (data) then (knowledge)

  7. Enhance your software development
 with this one easy trick

  8. if (data) then (knowledge) collaboration

  9. Human Email Auto Responders Mailing Lists Spreadsheets Calendar Events Meeting

    Notes Proposal Documents Pitch Decks Customer Transactions Analytics Results Survey Results Tweets Performance Monitors Bug Reports Work Tickets Build Logs Change Logs Server Logs Audit Logs
  10. 1900 B.C. "

  11. 750 A.D. #

  12. 1568 A.D. $

  13. 1837 A.D. %

  14. 1876 AD &

  15. 1956 AD '

  16. 1959 AD (

  17. 1971 AD )

  18. 2012 AD *

  19. +,-.

  20. data++ != knowledge++

  21. data

  22. data

  23. data

  24. data

  25. None
  26. create Business Value

  27. Problem !

  28. Solution?

  29. 2. Broadcast 1. Act 3. Condense 4. Decide

  30. Tools "

  31. easy

  32. easy…

  33. easy…right?

  34. Humans #

  35. What’s the problem?

  36. I wanted to help make it easier sustainable software development

    is Hard
  37. None
  38. None
  39. What are the hardest things about software development, today?

  40. Projects frequently get stuck in the planning phase 10. $

  41. Stakeholders want regular progress reports 9. $

  42. Our devs want self-organizing, startup culture teams 8. $

  43. I don’t know who to assign to architectural projects 7.

    $
  44. We can’t easily find out who’s 
 a domain expert

    6. $
  45. We don’t know how to optimize 
 for continual learning

    5. $
  46. No one wants to do the repetitive data-processing tasks 4.

    $
  47. We have a difficult time 
 attracting top talent 3.

    $
  48. We struggle to to accurately estimate projects 2. $

  49. The stream of project info is overwhelming us all 1.

    $
  50. “Our job is to find a
 few intelligent things to

    do,
 not to keep up with every damn thing in the world.” –Charlie Munger, Partner at Bershire Hathaway
  51. let’s walk through the 4 Steps

  52. 2. 1. Act 3. 4.

  53. “It is not enough to just have a good idea.


    Only when you act, when you implement,
 do you truly innovate. –Tom Kelley, Jonathan Littman: The Ten Faces of Innovation
  54. act Early %

  55. Post &

  56. None
  57. None
  58. “Inspiration Is for Amateurs The Rest of Us Just Show

    Up and Get to Work” –painter Chuck Close
  59. Commit &

  60. topic branches master branch

  61. None
  62. None
  63. “Many accounts… note a "missing hyphen" when a weak radio-guidance

    signal triggered the rare use of error-recovery software which
 lacked a hyphen in an equation, causing miscalculation or truncation of the remainder of the equation,
 which then pointed the rocket downward.” –Postmortem of Mariner I mission
  64. “Fail often to succeed sooner” –Tom Kelley, Ideo

  65. None
  66. automate liberally %

  67. Automate!

  68. None
  69. None
  70. None
  71. I’ve acted. Now what?

  72. 2. Broadcast 1. 3. 4.

  73. “…when the amount of information available to people increases much

    faster than our techniques for processing it, then we can get ourselves in a lot of trouble.” –Nate Silver, author of The Signal and the Noise
  74. open everything %

  75. Help!

  76. “most of your computer science career will be single data

    source, single CPU, single threaded processing. Don’t worry about chapter 7.” –my most incorrect university professor, ever
  77. target broadcasts %

  78. None
  79. “Running a fundamentally different approach to decision-making, being much more

    transparent in the way a company communicates, and… having a CEO that is absolutely focused on innovation is something that any company can do.” –JONATHAN ROSENBERG, Former SVP of Products at Google
  80. broadcast secrets %

  81. None
  82. None
  83. “We… take the presentations that were given to the board

    of directors, and we show them to every employee in the company in order to promote communication. And we have a huge disclaimer about, it’s private information… We’ve never had a leak.” –Eric Schmidt, Executive Chairman, Google
  84. work asynchronously %

  85. None
  86. None
  87. How do I make sense of it all?

  88. 2. 1. 3. Condense 4.

  89. 3.5 bi!ion docs '

  90. Performance Monitors Bug Reports Work Tickets Build Logs Change Logs

    Server Logs Audit Logs github CI Build Results Deploy Results Release Notes
  91. “Humans are by nature, single-threaded processors. much of what I

    do every day is to evaluate which threads are noise and which are signal. unmanaged, my world moves towards 100% noise. ” –Jesse Newland, Ops at Github
  92. Human Email Auto Responders Mailing Lists Spreadsheets Calendar Events Meeting

    Notes Proposal Documents Pitch Decks Customer Transactions Analytics Results Survey Results Tweets Performance Monitors Bug Reports Work Tickets Build Logs Change Logs Server Logs Audit Logs
  93. None
  94. leverage computation %

  95. Dashboard (

  96. None
  97. None
  98. context matters %

  99. None
  100. None
  101. where’s the Value?

  102. 2. 1. 3. 4. Decide

  103. None
  104. None
  105. None
  106. None
  107. decide iteratively %

  108. None
  109. do we Have to Change?

  110. “Innovation is now recognized as
 the single most important ingredient


    in any modern economy.” –The Economist, Thanksgiving for innovation
  111. no

  112. “It is not necessary to change. Survival is not mandatory.”

    –W. Edwards Deming
  113. None
  114. Collaborative Software DevelopmenT in a social world @matthewmccull