AccuRev produces one of the more innovative SCM (Software Configuration Management) tools and IDC claims that it is one of the fastest growing SCM companies in the world (not quite the same as being "market leader", of course); it has had revenue increases every quarter so far and a record year in 2007. It is attracting talent: Steve Leahy recently joined from Empirix as VP of Sales; and Dave Jabs (one of the original ClearCase architects from Atria Software) joined a year ago as Vice President of Engineering. It has a strong customer list, including: Orbitz.com, American Airlines, ING, TI, Packet Video, Chrysler etc.
Its traditional sales were to programmers but it increasingly has a management message too: it claims to be strong on geographically distributed code management, parallel development and Agile development, all of which are currently management concerns. However, it does seem to be aware of the potential issues with selling to 2 distinct groups in the organisation; and of the need not to lose its programmer champions.
AccuRev apparently isn't trying to be an Application Lifecycle Management (ALM) player but is focussed purely on SCM (this sounds a bit like the message from Perforce too, although AccuRev also claims a higher-level focus on "process") and on "addressing ClearCase-sized chaos". However, its definition of SCM is rather wider than that of some vendors—it includes integrated issue-tracking—and standalone SCM from other vendors is sometimes hard to distinguish from sophisticated version control. It is interested in Eclipse-based tools integration as well as integrating with the Microsoft development environment and with ALM products generally, as and when appropriate.
IBM Rational ClearCase is the first of many integration opportunities and this article was prompted by the release of AccuRev for ClearCase, which lets ClearCase "coexist" with AccuRev. In other words, AccuRev can help organisations leverage the IBM Rational ALM infrastructure behind ClearCase, while introducing more "programmer friendly" SCM; this also counteracts the uncontrolled viral adoption of Subversion by programmers in many enterprises, if this is seen as a problem (we're not sure it is always a problem per se, so much as a symptom of poor governance). And, of course, it also reduces the barriers to migration to AccuRev. Both AccuRev and Subversion are probably more programmer-friendly SCM tools than ClearCase is today (Rational also has Multisite, to help support distributed software development, but this doesn't appear to be very good value for money). Where AccuRev would claim to distinguish itself from Subversion is in its support for "process-centric SCM", although (thankfully) it doesn't impose any particular process on its users.
The ClearCase opportunity arises because Rational perhaps hasn't kept ClearCase clean and focussed—its extra facilities seem to be rather bolted on. Mind you, ClearCase was originally developed when a complete project couldn't fit on one workstation and development was centralised; nowadays space is unlimited and distributed development is important. Keeping ClearCase in line with an entirely different environment, with different constraints, couldn't have been that easy; although it will be interesting to see what cross-fertilisation with IBM's Telelogic acquisition results in and what IBM's Jazz initiative delivers in conjunction with Eclipse. And there's an interesting multicore issue facing some legacy SCM tools—can their servers take advantage of multicore computers for scalability (which is a big issue for very large code bases)? AccuRev claims that ClearCase view servers are single threaded, which may become an issue as n-way multicore servers, with reduced clock-speed on each core, become the norm—although that is a little way off and no doubt IBM is working on the problem.
AccuRev appeals to programmers because it can be well-integrated with their IDE (Integrated Development Environment) and its operation is largely transparent to the working programmer—changes are enforced without a need for ad-hoc rules or scripting. If a piece of code moves from Release x to Release y, a programmer just saves it and it goes to the right place—there is simple drag'n'drop between codelines, with little possibility of code going to the wrong place.
However, AccuRev also has a message for middle managers because it offers a visual representation of process alongside the codeline. This visual representation isn't simply passive documentation, it lets you manage the process; change it, as you could using the traditional Agile whiteboards. This means that organisations can effectively manage waterfall projects alongside RUP and SCRUM projects, if that is appropriate. AccuRev also claims to cope with the "Cowboy Agile" issue—effective (as opposed to cosmetic) Agile needs lots of discipline, which AccuRev supports in real, dynamic software environments, without trapping its users in a restrictive framework. That said, however, we must admit that our favourite Agile programmers mostly seem to rave about GIT, the distributed SCM tool used on the Linux project. GIT, of course, rather polarises developers, for and against—Damon Poole (CTO and founder of AccuRev) thinks that much corporate development doesn't really fit the model of Linux development (we'd agree, although some might say that that is what's wrong with much corporate development) and that AccuRev copes far better with large Agile groups of several hundred developers.
AccuRev is process neutral and very flexible. You can branch as and when necessary "don't worry about it"—as opposed to the usual recommendation "only when necessary"—tens of thousands of branches can be managed. In AccuRev, branches are "streams", first-class objects complete with inheritance relationships, so merging is straightforward. Branching used to be a static thing (e.g. just for the yearly release, say) but with AccuRev (and some other tools), it's dynamic, which is a good thing.
AccuRev's core competency is with code and agile development, but once it's in a company it says it gets taken on more widely and for wider configuration management applications, e.g. in the Finance dept. This is a good sign and common with successful SCM products—Perforce, e.g., makes a big thing of its use for more than software assets; especially in the games industry, where it is used to control visual image assets.