Sbrady, Software blog

home

Pull Request vs Continuous Integration

28 Jan 2015

I am a major supporter of Continuous integration. I’ve seen many companies attempting to replicate the success of open source projects by using a pull request with feature branch model for proprietary code. Unfortunately this tends to break Continuous integration, and team communication.

Pull Request Problems

A CI practitioner would have a developer integrating code with the mainline, very frequently, every hour or so. This has many benefits:

The above issues could be dealt with, via other communication channels, standup and simply talking to one another. Also If developer A knew that developer B was working on a similar area of code, they could do some “Promiscuous Integration”, in DVCS and pull and push to each other branches. I have never really seen “Promiscuous Integration” in practice. What I have seen, is that when a developer learns that another developer is working on the same code, they will drop it, back off, and do something else, probably something with less priority.

Continuous integration Problems

The main reason I’ve heard for pull requests over CI is for code review. The obvious solution is to use pair programming. Also In practice I have rarely worked with a team with whom I did not trust.

Lets be pragmatic

Feature branches and Pull Requests are useful…

Closing

Clearly Pull requests and feature branch are fantastic. Pull requests have changed the face of open source software, thank you github. However for a software team working on proprietary software. Please default to Continuous Integration and use feature branches when necessary.

comments powered by Disqus