If you've been wondering what all the fuss is about "social coding", or why GitHub is so hot hot hot nowadays, here's an interesting article from one of GitHub's competitors, Atlassian, about their new social coding product, Stash: Stash 1.3: Enterprise Git Gets Social with Pull Requests.
In Stash, pull requests provide an easy way for developers to review changes on a branch, discuss those changes with one another, make modifications and merge the branch back into master or the main development branch. For those familiar with centralized version control systems (like Subversion), think “pre-commit reviews.” But pull requests have a key evolutionary advantage: instead of working alone on your local repository, your changes will be shared on an isolated branch in Stash where others can review the code and contribute changes.
I'm a huge fan of code review and of the Continuous Integration methodology described by Martin Fowler here: Continuous Integration
Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly.
I've seen Continuous Integration work, and I believe in it. And I continue to believe that one of the biggest benefits of Continuous Integration is in the area of communication. As Fowler puts it:
Continuous Integration is all about communication, so you want to ensure that everyone can easily see the state of the system and the changes that have been made to it.
The big challenge for DVCS systems, in my opinion, is how they address this need, and I'm interested to see systems like Atlassian's Stash providing different approaches.