I started using Perforce in 2003, for my first post-collegiate job.
Coming from a CVS-centric world1 it was weird and confusing to me.
But as I used it, I began to really like its workflow and the tool’s conceptual consistency.
Fast forward eight years, and I’m using Perforce again3. I convinced the Powers That Be of the utility in sending our team to this year’s the Perforce Conference. I was very interested to see what had changed with Perforce in a market that’s seen surprising interest over that time.
The 2011 conference, “Roadmap to Innovation,” certainly fulfilled that desire. For me, I found the following stops on the highway most interesting:
- A new mantra of “Version Everything.” Putting everything in version control is old hat to configuration management engineers4. What’s interesting is that Perforce is making this a new cornerstone of both their product and their marketing message, thus reinventing themselves as a platform to do versioning.
You can see this with their new Chronicle offering. It’s a great move. So many tools5 have weak versioning functionality that seems tacked on as an afterthought6, so to take a tool that has proven itself time and again to bring rich, mature versioning functionality to other markets is a great direction to see Perforce moving in.
- As soon as I heard about it, I tweeted “Perforce Streams + Sandbox is distributed version control that doesn’t bite developers.”
I can’t count the number of times I’ve heard developers complaining their fancy DVCS of choice acted in a way they didn’t intend, destroying hours’7 worth of their work8. These two features feel like a culmination of Perforce stripping away the DVCS hype and looking at the features developers really use in those systems… and then building that, with Perforce’s famous attention to detail.
Sandbox brings offline operations to the Perforce world; there were some good questions asked at the presentation, and there are some corner cases to still be worked out, but it brings the common workflows developers care about to Perforce, with a usage model they’re used to9.
Streams, on the other hand, brings CM patterns many of us have been performing by hand—sparse branching and merge-down/copy-up branch patterns—to the P4V UI, and available directly to developers, so you don’t need to involve your overworked-build team.
Frankly, I’d been worried about Perforce with respect to the movement around DVCS tools for awhile, but the combination of these features makes me confident not only that Perforce has an answer, but that it’s the right one.
- The diversity in attendees at the conference demonstrated Perforce continued flexibility in the configuration management space: the myriad use cases, environments, artifacts versioned, and installation sizes illustrate the ways in which Perforce performs well against all sorts of workloads, in all sorts of environments: everything from Google versioning its world to Pixar versioning its production assets to the NYSE versioning entire machine configurations10.
And for every huge customer that we see presentations for11, there are hundreds of Perforce customers that have installations humming along every day with minimal administration and effort, and they perform wonderfully.
In short, the conference’s more than delivered on a “Roadmap to Innovation.” As someone who’s watched the Perforce ecosystem grow since 2003, I’m very pleased to see it’s thriving today.
1 Unlike many college students, I’d been using source control for all of my school projects2
2 This, after an incident where I came home smashed from a party and thought that was a perfect time to “finish up” a mostly-working project
3 This detail was, in fact, one of the reasons I looked forward to starting at SYMC
4 Today’s developers mostly seem to be on board that train too
5 Wikis especially
6 The lack of annotate ability in modern wikis is both amazing and rage-inducing…
7 Sometimes days’
8 The fact that they often continue to blindly espouse these tools has prompted me to call them “The Ike Turner of version control systems
9 No more git resets eating code
10 SEC audits are, apparently, how do you say… “a bitch”
11 Google, famously, has its repository still on one server