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

GitHub Flow — AWS Summit Tokyo 2015

GitHub Flow — AWS Summit Tokyo 2015

Here are the slides for the presentation on GitHub Flow I gave at AWS Summit Tokyo in June, 2015.

Coby Chapple

June 03, 2015
Tweet

More Decks by Coby Chapple

Other Decks in Technology

Transcript

  1. View Slide

  2. cobyism

    View Slide

  3. View Slide

  4. 5,000,000
    10,000,000
    15,000,000
    20,000,000
    25,000,000
    2008 2009 2010 2011 2012 2013 2014 2015 (YTD)
    DEVELOPERS ARE
    COLLABORATING ON
    PROJECTS ON
    GITHUB RIGHT NOW
    9.7
    MILLION
    23.3
    MILLION

    View Slide

  5. 293
    Employees
    65%
    Remote
    !

    View Slide

  6. View Slide

  7. COMPANY
    PRODUCT
    WORKFLOW
    VALUES

    View Slide

  8. View Slide

  9. View Slide



  10. View Slide

  11. Use the simplest possible
    system that will work
    for your team.
    Scott Chacon
    @schacon // GitHub Co-founder
    http://scottchacon.com/2011/08/31/github-flow.html

    View Slide

  12. SIMPLE
    KEEP IT

    View Slide

  13. FLOW
    GITHUB

    View Slide

  14. View Slide

  15. "

    View Slide

  16. "
    #

    View Slide

  17. "
    $
    $
    $
    # $

    View Slide

  18. " %
    $
    $
    $
    # $

    View Slide

  19. MASTER
    FEATURE
    BRANCH
    PULL
    REQUEST

    View Slide

  20. DEPLOY
    BUILD
    REVIEW

    View Slide

  21. Build, review, deploy. All good
    development goes through
    these phases, but GitHub
    turns it into flow.
    Chris Wanstrath
    @defunkt // GitHub Co-founder, CEO

    View Slide

  22. #★ Approachable
    ★ Lightweight
    ★ Scalable

    View Slide

  23. NOT JUST FOR
    SOFTWARE
    ✨&

    View Slide

  24. github /
    ! github

    View Slide

  25. github
    support
    blog-posts
    product
    docs
    github
    sales
    projects
    training
    community
    /
    ! github

    View Slide

  26. COMPANY-WIDE
    CONTINUOUS
    IMPROVEMENT

    View Slide

  27. KAIZEN
    վળ

    View Slide

  28. FEATURE
    DEVELOPMENT
    AT GITHUB
    &
    SHIP IT!

    View Slide

  29. &
    &
    &

    View Slide

  30. &
    &
    &

    View Slide

  31. &
    &
    &

    New Issue

    View Slide

  32. &
    &
    &

    View Slide

  33. &
    &
    &

    View Slide

  34. &
    &
    &

    View Slide

  35. &
    &
    &
    QUICK PULL
    REQUEST

    View Slide

  36. &
    &
    &

    View Slide

  37. &
    &
    &

    View Slide

  38. &
    &
    &

    View Slide

  39. &
    &
    &
    HUBOT
    github / hubot
    '

    View Slide

  40. &
    &
    &

    View Slide

  41. &
    &
    &

    View Slide

  42. &
    &
    &

    View Slide

  43. &
    &
    &

    View Slide

  44. &
    &
    &
    % Merge Pull Request

    View Slide

  45. &
    &
    &

    View Slide

  46. &
    &
    &
    ✨)

    View Slide

  47. &
    &
    &

    View Slide

  48. &
    &
    &
    MASTER
    FEATURE
    BRANCH
    PULL
    REQUEST
    LOCAL

    DEVELOPMENT

    View Slide

  49. &
    &
    &

    View Slide

  50. &
    &
    &

    View Slide

  51. &
    &
    &

    View Slide

  52. &
    &
    &

    View Slide

  53. &
    &
    &

    View Slide

  54. &
    &
    &

    View Slide

  55. WHY SO MANY
    OPTIONS?

    View Slide

  56. &
    &
    &

    View Slide

  57. &
    &
    &
    PULL
    REQUEST
    DISCUSS
    BRANCH
    DEPLOY

    View Slide

  58. &
    &
    &
    $
    $
    "
    #
    %

    View Slide

  59. " %
    &
    &
    &
    $
    $
    $
    #
    $
    $
    $
    -

    View Slide

  60. &
    &
    &
    #⚡
    % Merge Pull Request
    ✨)

    View Slide

  61. &
    &
    &

    View Slide

  62. &
    &
    &
    FEATURE FLAGS

    View Slide

  63. &
    &
    &
    def new_feature_enabled?

    end

    View Slide

  64. &
    &
    &
    if new_feature_enabled?
    // New functionality
    else
    // Current functionality
    end

    View Slide

  65. &
    &
    &
    def new_feature_enabled?
    preview_features?
    end

    View Slide

  66. &
    &
    &
    def new_feature_enabled?
    preview_features? &&
    team_access?(:some_team)
    end

    View Slide

  67. &
    &
    &
    def new_feature_enabled?
    true
    end

    View Slide

  68. &
    &
    &
    jnunemaker / flipper
    '

    View Slide

  69. &
    &
    &

    View Slide

  70. &
    &
    &
    DARK SHIPPING

    View Slide

  71. &
    &
    &

    View Slide

  72. &
    &
    &
    #★ Realistic load
    ★ Minimal impact
    ★ Allows iteration

    View Slide

  73. &
    &
    &
    PRR
    PRODUCTION
    READINESS
    REVIEW

    View Slide

  74. &
    &
    &
    QUESTIONS
    ★ General
    ★ Dependencies
    ★ Fallbacks
    ★ Performance
    ★ Documentation
    ★ Security

    View Slide

  75. &
    &
    &
    PSHC
    POST-SHIP

    HEALTH

    CHECK

    View Slide

  76. &
    &
    &
    PRR PSHC

    View Slide

  77. &
    &
    &
    PRR PSHC
    ★ 1 month
    ★ 3 months
    ★ 6 months

    View Slide

  78. &
    &
    &
    PRR PSHC
    ★ 1 month
    ★ 3 months
    ★ 6 months
    FEEDBACK

    View Slide

  79. &
    &
    &
    PRR PSHC
    ★ 1 month
    ★ 3 months
    ★ 6 months
    FEEDBACK

    View Slide

  80. &
    &
    &
    LEARN FROM

    THE PAST.

    View Slide

  81. COMMON
    QUESTIONS
    ?

    View Slide

  82. LARGE TEAMS?

    View Slide

  83. TOO SIMPLE
    TO BE TRUE?

    View Slide

  84. IF THINGS
    GO WRONG?

    View Slide

  85. WHAT ABOUT
    CLEAN HISTORY?

    View Slide

  86. TRUST IS HARD!

    View Slide

  87. WHEN TO USE
    GITHUB FLOW?

    View Slide

  88. TRY IT.
    PICK WHAT WORKS

    View Slide

  89. IT WORK
    !MAKING

    View Slide

  90. WRITE

    GOOD DOCS.

    View Slide

  91. INVEST IN

    AUTOMATION.

    View Slide

  92. BUILD

    TRUST.

    View Slide

  93. DISCUSS

    EARLY.

    View Slide

  94. QUESTION
    COMPLEXITY.

    View Slide

  95. EMBRACE
    FLOW.

    View Slide

  96. Thank you!
    cobyism
    0
    cobyism.com
    (

    View Slide

  97. View Slide