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

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.

Matthew McCullough

June 18, 2015
Tweet

More Decks by Matthew McCullough

Other Decks in Programming

Transcript

  1. Collaborative Software DevelopmenT
    in a social world
    @matthewmccull

    View full-size slide

  2. @matthewmccull

    View full-size slide

  3. 1MB data != 1MB knowledge

    View full-size slide

  4. if (data) then (knowledge)

    View full-size slide

  5. Enhance your software development

    with this one easy trick

    View full-size slide

  6. if (data) then (knowledge)
    collaboration

    View full-size slide

  7. 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

    View full-size slide

  8. data++ != knowledge++

    View full-size slide

  9. create Business Value

    View full-size slide

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

    View full-size slide

  11. easy…right?

    View full-size slide

  12. What’s the problem?

    View full-size slide

  13. I wanted to help make it easier
    sustainable software development is Hard

    View full-size slide

  14. What are the hardest things about
    software development, today?

    View full-size slide

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

    View full-size slide

  16. Stakeholders want regular
    progress reports
    9. $

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  19. We can’t easily find out who’s 

    a domain expert
    6. $

    View full-size slide

  20. We don’t know how to optimize 

    for continual learning
    5. $

    View full-size slide

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

    View full-size slide

  22. We have a difficult time 

    attracting top talent
    3. $

    View full-size slide

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

    View full-size slide

  24. The stream of project info is
    overwhelming us all
    1. $

    View full-size slide

  25. “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

    View full-size slide

  26. let’s walk through the
    4 Steps

    View full-size slide

  27. “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

    View full-size slide

  28. “Inspiration Is for Amateurs
    The Rest of Us Just Show Up and Get to Work”
    –painter Chuck Close

    View full-size slide

  29. topic branches
    master branch

    View full-size slide

  30. “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

    View full-size slide

  31. “Fail often to succeed sooner”
    –Tom Kelley, Ideo

    View full-size slide

  32. automate liberally
    %

    View full-size slide

  33. I’ve acted. Now what?

    View full-size slide

  34. 2.
    Broadcast
    1.
    3.
    4.

    View full-size slide

  35. “…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

    View full-size slide

  36. open everything
    %

    View full-size slide

  37. “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

    View full-size slide

  38. target broadcasts
    %

    View full-size slide

  39. “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

    View full-size slide

  40. broadcast secrets
    %

    View full-size slide

  41. “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

    View full-size slide

  42. work asynchronously
    %

    View full-size slide

  43. How do I make sense of it all?

    View full-size slide

  44. 2.
    1.
    3.
    Condense
    4.

    View full-size slide

  45. 3.5 bi!ion docs '

    View full-size slide

  46. Performance Monitors
    Bug Reports
    Work Tickets
    Build Logs
    Change Logs
    Server Logs
    Audit Logs
    github
    CI Build Results
    Deploy Results
    Release Notes

    View full-size slide

  47. “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

    View full-size slide

  48. 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

    View full-size slide

  49. leverage computation
    %

    View full-size slide

  50. context matters
    %

    View full-size slide

  51. where’s the Value?

    View full-size slide

  52. 2.
    1.
    3.
    4.
    Decide

    View full-size slide

  53. decide iteratively
    %

    View full-size slide

  54. do we Have to Change?

    View full-size slide

  55. “Innovation is now recognized as

    the single most important ingredient

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

    View full-size slide

  56. “It is not necessary to change.
    Survival is not mandatory.”
    –W. Edwards Deming

    View full-size slide

  57. Collaborative Software DevelopmenT
    in a social world
    @matthewmccull

    View full-size slide