Trunk Based Development

3,345 views
3,147 views

Published on

Trunk Based Development

  1. 1. trunk  based  development     a.k.a.   branch  by  abstrac-on   feature  toggles   feature  flags   feature  bits   latent  code   …       Carlos  Lopes   ThoughtWorks  
  2. 2. the  problem  
  3. 3. different  streams,   same  codebase  
  4. 4. the  solu4on?  
  5. 5. branches!  
  6. 6. ?!  
  7. 7. merge  hell  
  8. 8. Jon  Wolter  
  9. 9. seman-c  conflicts  
  10. 10. regressions  
  11. 11. undeployable  code  
  12. 12. and  so  on  …  
  13. 13. so  …  
  14. 14. branch  by  source  control  
  15. 15. branch  by  abstrac4on  
  16. 16. why?  
  17. 17. bye  merge  hell  
  18. 18. deployable  at  [almost]  any-me  
  19. 19. understanding  
  20. 20. boCom  line  …  
  21. 21. but  …  
  22. 22. it  has  its  own  limita-ons,   like  anything  
  23. 23. so  …  when  to  branch?  
  24. 24. releases  
  25. 25. Paul  Hammant  
  26. 26. ok  ok  ok  
  27. 27. …  but  how?  
  28. 28. maybe  next  -me  
  29. 29. now  what?   Stacy  Curl  –  Branching  by  Abstrac-on   Paul  Hammant  –  Branch  by  Abstrac-on  Jonathan  Wolter  –  Trunk  Based  Development   Lucas  Ward  –  SCM  Maturity  Model   Erik  Sowa  and  Rob  Loh  –  Feature  Bits     …    perhaps  a  more  detailed  presenta-on  on  the   subject?!?!?!  
  30. 30. thanks!  
  31. 31. more  info  
  32. 32. some  references   hCp://digital-­‐compulsion.blogspot.com/2007/04/ branching-­‐by-­‐abstrac-on.html  hCp://jawspeak.com/tag/trunk-­‐based-­‐development/   hCp://paulhammant.com/blog/ branch_by_abstrac-on.html   hCp://mar-nfowler.com/bliki/FeatureBranch.html   hCp://mar-nfowler.com/bliki/FeatureToggle.html  hCp://www.lucasward.net/2010/02/maturity-­‐model-­‐ for-­‐source-­‐control-­‐scmm.html      
  33. 33. dont  separate  differing  concerns  by  using  a  VCS,   use  an  abstrac-on  instead   Stacy  Curl  
  34. 34. “feature  branching  is  a  poor  mans  modular  architecture,  instead  of  building  systems  with  the  ability  to  easy  swap  in   and  out  features  at  run-me/deploy-me  they  couple  themselves  to  the  source  control  providing  this  mechanism   through  manual  merging”     Dan  Bodart  
  35. 35. Jon  Wolter  
  36. 36. Jon  Wolter  

×