Is Feature Branching still (or ever) considered a bad practice?


Staff member
Coming from the TFS world and having just gotten comfortable enough with Git, I am about to propose to my team that we should incorporate the <a href="">Gitflow workflow</a> as pointed out by the <a href="">famous article by Vincent Dressen</a> going forward.

Almost all modern-day literature surrounding branching strategies voice the effectiveness of the Gitflow workflow, which is an extended version of feature branching, but dated articles from influential engineers, such as <a href="">Martin Fowler's Feature Branch article (2009)</a>, discredit feature branching in general in favor of continuous integration.

<a href="">Some of his critics</a> stated that Fowler's opposition to feature branching was in part because he was using SVN as his VCS, which was an ineffective tool for merging and therefore led Fowler to recommend a branching anti-pattern "merge paranoia".

Fowler then responded in 2011 <a href="">by saying DVCS systems may make merging easier, but they still don't solve semantic conflicts</a>. Now in 2014, we have language aware merge tools such as <a href="">Semantic Merge</a>, which might solve this problem altogether.

My questions are

<li><strong>Is feature branching and continuous integration mutually exclusive?</strong></li>
<li><strong>How relevant is Fowler's article in modern day development, especially with our accessibility to tools like SourceTree, Git, Jenkins, and other code review software that make feature branching and the like much easier?</strong></li>