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

2,758

Published on

Palestra realiz

Palestra realiz

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,758
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
31
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/UniRitter TargetTrust/Surya Software Innovation
  • 2. agendathe problemimpactssolutions!when to branch?
  • 3. the problem
  • 4. different streams, same codebase
  • 5. branches!
  • 6. Ronald Widha
  • 7. merge hell
  • 8. syntactic conflictclass 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. semantic conflictclass BlaBlaBla { public void something(Bla bla) {<<<<<<< HEAD bla = bla.plus(14);======= bla = bla.minus(7);>>>>>>> change //other stuff }}
  • 10. integration conflicts main.jsp: <%@include file="bla.jspf" %>master: agivenbranch:new-file.jsp: bla.jspf -> ble.jspf<%@includefile="bla.jspf" %> main.jsp: <%@include file="ble.jspf" %>
  • 11. the merge man/monkey
  • 12. promiscuous integration Martin Fowler
  • 13. $$$$
  • 14. Jon Wolter
  • 15. regressions
  • 16. Jon Wolter
  • 17. Jon Wolter
  • 18. “the bigger the apparentreason to branch, the more you shouldn’t branch.” Jez Humble / David Farley
  • 19. “dont separate differingconcerns by using a VCS, use an abstraction instead.” Stacy Curl
  • 20. “feature branching is a poor mans modular architecture, instead of building systems with the ability to easy swap in and outfeatures at runtime/deploytime 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 bysource control?
  • 23. there’s hope!
  • 24. approaches
  • 25. hide new functionality
  • 26. abstraction
  • 27. big bang Paul Hammant
  • 28. iterative Paul Hammant
  • 29. small releasable changes
  • 30. componentization
  • 31. enable flowacross teams
  • 32. KEEP IT ALWAYS RELEASABLE
  • 33. KEEP IT ALWAYS RELEASABLE
  • 34. CONTINUOUS INTEGRATION
  • 35. CONTINUOUS INTEGRATION
  • 36. program level product owner/championknows each project champion and how to reach people
  • 37. Uncle Bob
  • 38. when to branch?large changespikesnew release
  • 39. when to branch?large changespikesnew release
  • 40. when to branch?large changespikesnew release
  • 41. Paul Hammant
  • 42. branching vs. freezing
  • 43. more infowww.codingbyexample.org
  • 44. thanks!

×