Your SlideShare is downloading. ×
Trunk Based Development Explored
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Trunk Based Development Explored

1,867
views

Published on

Trunk Based Development Explored, Agile Brazil 2011 - Fortaleza, CE

Trunk Based Development Explored, Agile Brazil 2011 - Fortaleza, CE

Published in: Technology, Business

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,867
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
30
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Trunk  Based  Development   Explored           Carlos  Lopes   Guilherme  Lacerda   ThoughtWorks   FACENSA/UniRi@er   TargetTrust/Surya  SoBware  InnovaEon  
  • 2. agenda  the  problem  impacts  solu2ons!  when  to  branch?  
  • 3. the  problem  
  • 4. different  streams,   same  codebase  
  • 5. branches!  
  • 6. Ronald  Widha  
  • 7. merge  hell  
  • 8. syntac2c  conflict  class  BlaBlaBla  {    <<<<<<<  HEAD    public  void  bla(Bla  oldBla,  New  newBla)  {      oldBla.bla();      newBla.newBla();  =======    public  void  bla(Bla  oldBla,  Other  otherBla)  {      oldBla.bla();      otherBla.otherBla();  >>>>>>>  other  commit    }    }  
  • 9. seman2c  conflict  class  BlaBlaBla  {      public  void  something(Bla  bla)  {  <<<<<<<  HEAD      bla  =  bla.plus(14);  =======      bla  =  bla.minus(7);  >>>>>>>  change      //other  stuff    }    }  
  • 10. integra2on  conflicts   main.jsp:  <%@include  file="bla.jspf"  %>        master:   agivenbranch:      new-­‐file.jsp:   bla.jspf  -­‐>  ble.jspf  <%@include    file="bla.jspf"  %>   main.jsp:     <%@include     file="ble.jspf"  %>          
  • 11. the  merge  man/monkey  
  • 12. promiscuous  integra2on   Mar6n  Fowler  
  • 13. $$$$  
  • 14. Jon  Wolter  
  • 15. regressions  
  • 16. Jon  Wolter  
  • 17. Jon  Wolter  
  • 18. the  bigger  the  apparent  reason  to  branch,  the  more   you  shouldn’t  branch.   Jez  Humble  /  David  Farley  
  • 19. dont  separate  differing  concerns  by  using  a  VCS,  use   an  abstrac6on  instead.   Stacy  Curl  
  • 20. feature  branching  is  a  poor  mans  modular   architecture,  instead  of  building  systems   with  the  ability  to  easy  swap  in  and  out  features  at  run6me/deploy6me  they  couple   themselves  to  the  source  control  providing   this  mechanism  through  manual  merging     Dan  Bodart  
  • 21. all  right,  but  how  to solve  this?  
  • 22. branch  by    source  control?  
  • 23. there’s  hope!  
  • 24. approaches  
  • 25. hide  new  func2onality  
  • 26. abstrac2on  
  • 27. big  bang   Paul  Hammant  
  • 28. itera2ve   Paul  Hammant  
  • 29. small  releasable  changes  
  • 30. componen2za2on  
  • 31. enable  flow  across  teams  
  • 32. KEEP  IT  ALWAYS  RELEASABLE  
  • 33. KEEP  IT  ALWAYS  RELEASABLE  
  • 34. CONTINUOUS  INTEGRATION  
  • 35. CONTINUOUS  INTEGRATION  
  • 36. program  level     product  owner/champion      knows  each  project  champion  and   how  to  reach  people  
  • 37. Uncle  Bob  
  • 38. when  to  branch?        large  change      spikes    new  release        
  • 39. when  to  branch?        large  change      spikes    new  release        
  • 40. when  to  branch?        large  change      spikes    new  release        
  • 41. Paul  Hammant  
  • 42. branching  vs.  freezing  
  • 43. more  info  www.codingbyexample.org  
  • 44. thanks!  

×