Symantec Achieves Significant Gains by Moving to AccuRev
Environment
- AccuRev, AccuReplica
- Windows, Solaris, Linux, HP-UX, AIX, Eclipse, Visual Studio, Visual SlickEdit
AccuRev Success Highlights
- Maintenance release turnaround reduced from weeks to days. In some instances, reduced from 1 month to 2 days.
- Remote access performance for users in India and daily mirroring code updates reduced from 12 hours to just minutes.
- Parallel development was increasingly difficult, with time-consuming merge points costing the organization hundreds of thousands of dollars each year. The organization used to plan for four man-days, per developer, per year to merge code; Now it takes developers just minutes to accomplish the equivalent tasks.
- Code-compile-test cycle significantly reduced by introducing shared workspaces across multiple platforms.
- No dedicated administrator required. One release engineer spends less than 2 hours a week doing "administrative tasks."
- New "branch" or stream creation in seconds versus the typical 3 days with previous file-based tool requiring an administrator.
Evaluated
- IBM Rational ClearCase, Perforce, Visual SourceSafe, CVS and AccuRev
Customer Profile
Symantec (Nasdaq: SYMC) is a global leader in infrastructure software, enabling businesses and consumers to have confidence in a connected world. More information is available at www.symantec.com.Background
AccuRev is used by the Data Center Management business unit within Symantec. AccuRev has vastly improved the Server Foundation team's ability to move to a more Agile, geographically distributed and parallel development environment, increasing efficiency in the following measurable ways across all three of these facets.AccuRev Success Highlights
- Maintenance release turnaround reduced from weeks to days. In some instances it has reduced from 1 month to 2 days.
- Remote access performance for users in India and daily mirroring code updates reduced from 12 hours to just minutes.
- Parallel development was increasingly difficult, with time-consuming merge points costing the organization hundreds of thousands of dollars each year. The organization used to plan for four man-days, per developer, per year to merge code; Now it takes developers just minutes to accomplish the equivalent tasks.
- Code-compile-test cycle significantly reduced by introducing shared workspaces across multiple platforms.
- No dedicated administrator required. One release engineer spends less than 2 hours a week doing "administrative tasks.
- New "branch" or stream creation in seconds versus the typical 3 days with previous file-based tool requiring an administrator.
"We hear from the developers at sites where not every group uses AccuRev that they are often accosted by developers from those other groups saying, 'Hey, when do I get to use AccuRev?'" Chris Boran, Development Manager, DCMG – Server Foundation, Symantec Corporation
Benefits of AccuRev
Geographically Distributed and Offshore Development
The Server Foundation team currently has development teams in Massachusetts, California, China and India. Prior to AccuRev, teams had to painfully mirror their source code in all three regions, losing 12 hours of development at a time. AccuRev with AccuReplica now allows these teams to act as if they are co-located, obtaining changes in just minutes, and remote teams are able to collaborate much more effectively.Continuous Integration
Symantec integrates AccuRev with CruiseControl for continuous integration and uses the JUnit testing framework for unit testing. When code is checked in to AccuRev, CruiseControl automatically attempts to do a build. If the build breaks, the release engineer can set the time lock on the mainline stream to become before the transaction that broke the build. This allows other developers to keep working while the build problem is eradicated.Maintenance Releases in Parallel
AccuRev enables developers to quickly go back and create a patch spin for a prior release. If a customer needs a fix, Symantec is able to go back into AccuRev and re-spin the whole product to release a complete suite service pack and make it the new baseline for every customer.When the daylight savings time issue came along this past spring, the Server Foundation team was able to quickly re-spin a build, replacing its Java virtual machines so that only the things that touched dates in the Java virtual machine had to be retested. According to Chris, "It took 2 weeks for us to turn around the daylight savings time fix, where most companies were looking at probably 3 months.
With AccuRev, you can always go back, so I have no fear of letting people go and do the right thing: rearrange things, rename things. I'm not going to lose the history of my elements; I'm not going to lose my ability to recover the elements. You get used to being afraid of change when you're using tools like CVS and VSS, whereas with AccuRev, you have no reason to fear it, because everything is safe."
Prior to AccuRev, the Server Foundation team did not have a good way to go back and make changes to previously released software without disrupting current development efforts. Now, developers can quickly go back and make any necessary changes in a seamless manner without disruption to any new development running concurrently, thus dramatically increasing efficiency.
"We used to plan for merge points and spend 30 man-days just merging code. If you figure one man-day would be lost to merging for every 3-month project, with nearly 200 developers, an entire year of production would be lost to merging. Now we don't even need to plan for that because it doesn't even show up as a blip on the radar. Most of the time, developers merge within minutes using AccuRev."
Developer Productivity
- Sharing workspaces across operating systems – Every time a change is made, it has to be tested on four or five different operating systems. AccuRev makes it possible to keep the change in a developer's team workspace so another developer's machine can pull that change down, compile it and test it. No more shuttling code around between machines, making the testing process much faster, more secure and more reliable.
- Refactoring with AccuBridge for Eclipse – Symantec uses Eclipse extensively and has found that the latest AccuBridge for Eclipse made available in Q3 of '07 is a much more seamless experience than previous versions. If a file name changes as the result of a refactor, it automatically tells AccuRev that the file name changed, no more manually moving a file due to a class name changing.
"We've got things set up so developers can build on their own systems. They don't have to wait for builds, shortening the code-compile test cycle. They can easily share, and parallel development is so much easier, especially merges. CVS developers often put off merges to the last possible moment because they are so messy and time-intensive. But AccuRev has a really good merge paradigm."
Document Management
To combat the 'we don’t want non-programmers accessing the source code’ issue, the Server Foundation team simply created a pass-through stream which explicitly included the documentation directories and excluded everything else. According to Chris, "it worked great." They store everything from QA test plans, Design Docs, Functional Specs, to burn down charts, bug statistics, and requirements. Since they run long-cycle releases (9-15 month cycles) it is a real benefit to them to be able to look back and compare how estimates changed and tracked and look for trends when planning the next release. They learned a lot about how individual team members estimated (and over time, developed methods to try to compensate for individuals estimating flaws), and were better able to predict/plan the next cycle.Administration Overhead
Symantec does not have a dedicated AccuRev administrator and believes the tool to be nearly self-administrating. A release engineer spends less than 2 hours a week performing any "administrative tasks," according to Chris."AccuRev puts so much empowerment in the hands of the users that every developer can do what they need to do. If I need to cut a stream for my development, I right click on the GUI and say, 'New Stream.' With our previous tool, I would have to put in a trouble ticket and wait for the central tool administrators to pick it up and cut my branch for me, oftentimes getting the config spec wrong in the process. It could take a couple minutes, or in reality a 3-day turnaround at times versus 10 seconds in AccuRev."
This was causing developers who didn't want to deal with the previous SCM tool administrators to put many things together in the same branch that didn't really belong, just because they happened to be working on all of them. It made segregating work harder and made it less likely that someone would be able to promote something that was half-finished because there were too many interdependent things in that person's workspace. This was serializing development and slowing down productivity.