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

The Evolving Concurrent Releases Toolkit

The Evolving Concurrent Releases Toolkit

Strategies for working on multiple releases concurrently. Originally presented at Lean/Kanban Atlanta 2010.

David Laribee

April 21, 2010
Tweet

More Decks by David Laribee

Other Decks in Technology

Transcript

  1. We’re short changing ourselves with long releases. Let’s boost it

    when it’s done.* *This is not for everyone! Thursday, April 4, 13
  2. Bug Fix Bug Fix UX Tweak Gigantic Feature X EULA

    Change Platform Stuff Wee Little Feature Y Thursday, April 4, 13
  3. Bug Fix Bug Fix UX Tweak Gigantic Feature X EULA

    Change Platform Stuff Wee Little Feature Y Thursday, April 4, 13
  4. Wastes? ✓Speculative ✓Finished Work in Inventory ✓Delayed R.O.I. ✓Context Switch-o-rama

    ✓Missed Competitive Advantages ✓Discourage Iteration Thursday, April 4, 13
  5. Build vs. Buy: If can buy a plugin, do. (Free

    as in puppy) If you can't buy a plugin, develop one. If you can't build a plugin, see options #2 & #3. Thursday, April 4, 13
  6. Is it hard to learn? A little bit, sure. 0

    25 50 75 100 SVN Git Thursday, April 4, 13
  7. Yes, and... branching is cheap! 0 25 50 75 100

    SVN Git Thursday, April 4, 13
  8. $ git checkout -b [R] $ git push origin [R]

    $ git branch --track origin/[R] $ git fetch code, code, code $ git commit -am “what i did” $ git push Thursday, April 4, 13
  9. $ git checkout -b my-little-spike or this: $ git stash

    do your thing... $ git stash pop Thursday, April 4, 13
  10. Jane: $ git checkout -b [R] $ git push origin

    [R] $ git branch --track origin/[R] John $ git fetch origin $ git checkout --track -b [R] origin/[R] Thursday, April 4, 13
  11. class DummyCommand def execute(parameter) end end class CommandWeAreActivelyWorkingOn def execute(parameter)

    # use your imagination to insert an awesome chunk # of meaningful code here; i suck at examples :( puts parameter # see what i mean? end end Thursday, April 4, 13
  12. class CommandFactory def self.create return DummyCommand.new if Environment.is_production? return CommandWeAreActivelyWorkingOn.new

    end end # consumer a_command = CommandFactory.create a_command.execute(‘hello today’) Thursday, April 4, 13
  13. Point being: Technology is no obstacle to rapid and regular

    releases. As for a business need, this stuff may or may not apply to you. But that’s another presentation... Thursday, April 4, 13