Analysis Kurt Chase, director of engineering services at Splunk, is effusive about Atlassian's Git-based Bitbucket but doesn't have a lot of nice things to say about jilted source control system Perforce.
As it turns out, Perforce has a rather jaundiced view of Git as a way to manage software. But more on that later.
Two years ago, after nineteen years at Autodesk, Chase joined Splunk to manage release engineering and became involved in the analytics firm's effort to migrate development from Perforce to a Git-based source control system.
Perforce and Git are both tools for managing source code, particularly projects with multiple developers. The most salient differences between the two are that Perforce is centralized and proprietary and Git is distributed and open source.
For Chase, disillusionment with Perforce came mainly from a desire for greater development agility. "Perforce had really become an impediment to speed at scale," said Chase in a phone interview with The Register. "It was not allowing us to move quickly."
Also, Chase said, Perforce didn't integrate with a lot of modern tools, and has a steep learning curve. "We needed a real continuous integration process, which we did not have at Splunk."
Another strike against Perforce was lack of familiarity among new hires. According to Chase, Splunk has hired a lot of engineers in the past two years. Each one knew something about Git, he said, while few were familiar with Perforce.
After evaluating various Git-oriented options – Github, Gitlab, Gitorious – and rejecting Mercurial as too much change, Splunk settled on Atlassian's Bitbucket Data Center.
In part, Chase acknowledges, that's because Splunk relies on Atlassian's Jira – for issue tracking and project management, and Confluence – for sharing and collaboration.
At the same time, the transition wasn't purely a matter of extending existing vendor relationships. Splunk was abandoning two other Atlassian products, Crucible and Fisheye, that it had been using in conjunction with Perforce.
Git, Chase said, allows developers a lot more direct control in terms of merging source code branches and integrating different workflows.
For Chase, Git transformed code reviews at Splunk. With Perforce, Crucible, and Fisheye, Splunk had to deal with three different tools for code reviews. With Bitbucket (previously known as Stash), the pull request system led to more and higher-quality code reviews.
A pull request in Git is a way of flagging a code change for review and comment from other project contributors.
Chase praised Bitbucket's API, which Splunk uses to link pull requests to other development systems.
"When a developer opens a pull request, that's basically saying the code is ready for review, so other devs can comment," Chase explained. "As soon as a pull request is opened, we run it through our continuous integration system to do acceptance level testing. That was the fundamental benefit."
The migration from Perforce to Bitbucket began in October 2014 and concluded March 2015. When it was done, Chase said, Splunk saw a threefold increase in the number of code reviews completed. That in turn has led to fewer bugs and support tickets.
The Register, wondering whether failed licensing negotiations might have mattered more than alleged technical shortcomings, asked Perforce to comment.
Opting not to address Perforce's relationship with Splunk, a company spokesperson in an email to The Register said, "In the past year alone, Perforce has added more than 200 new customers, and a new leadership team has helped drive a 14 percent growth in revenue in that same time period. Perforce currently has more than 10,000 customers, including Pixar, NVIDIA, Scania, Electronic Arts, Ubisoft, and VMware."
Last month, Perforce felt the need to point out that free software – which Git is but neither Bitbucket Data Center nor Perforce are – comes at a cost. "Git is free, both as in beer and as in speech, but adopting it and using it long term clearly aren't inexpensive," said Perforce product marketing manager John Williston in a blog post. "Quite the contrary, Git's costs tend only to grow over time in multiple directions."
Chase didn't go into detail on pricing, though he did suggest that Atlassian offered the better deal in terms of licensing. ®