Dispatches from Maine

Just another person of little note writing about ordinary things. That I reside in Maine is icing on the cake.

03 October 2007

Cognitive Advantages of AccuRev

I was having a discussion about AccuRev and branching today at the office. We are still transitioning some projects over to it, so there is some development using SourceSafe and some using AccuRev. The effort required to maintain even a minimal isolation with two branches is hugely largely than the same task in AccuRev. In the midst of this discussion a thread about complex branch management and traditional SCM systems was brought to my attention. Just look at the images on the Microsoft Branching and Merging Primer. The graphs themselves become steadily more difficult to understand as you move from simple branches down to code-promotion and component branching.

Meanwhile, a project I am managing right now, in AccuRev, is actively using both code-promotion and component (sub-project branching). We have the classic Product_Rel->Product_QA->Product_Int streams which allow us to ensure development is stable before moving issues to QA. The QA department can verify the changes function before moving them to Rel. The release build is then an aggregation of all of the features which really work together.

Additionally, we have three streams below Product_Int for sub-projects. First, is a stream for merges from a product developmed in VSS. We promote changes from it in cohesive groups, but only as time permits. If this stream gets out of sync with its parent, we take note of overlaps and resolve them in the merge source stream without destabilizing the Product_Int stream. This permitted us to merge little bits at a time over a period of four weeks. We also have a stream devoted to refactoring a specific subsystem. It too is able to take advantage of overlap notification to stay in sync with its parent. Finally, we have a time-locked stream which we use to service an internally released tool. This structure, though technically more complex than those depicted above, is far simpler for us to maintain and use; even for people who do not eat, sleep and breathe SCM. Why?

After some thought this is what I wrote to the person who pointed out the primer:
The thing I have been noticing is that people with AccuRev perceive "branches" differently, more as a natural feature of a source tree. I sincerely believe that is a result of the visualization provided by the stream and versions browsers. They arm people with a clear cognitive model, whereas the old folder and file approach can only effectively visualize branches as folders, just like everything else. The result is that AccuRev users can both depict and describe a complex branching structure much more easily, and users of traditional systems generate crazy graphs which do more to obscure the branches than illuminate them.

Labels: , , , ,

06 March 2007

AccuRev Shines Again

When I started as a developer, there was really no such thing as "connected" development. The environments I wrote code in were often astounded by tools as primitive as RCS, so "disconnected" development was beyond imagination. At DeLorme we used Visual SourceSafe for many years. It was a great tool for small team development and worked well for us until our level of concurrent development skated right past its capabilities. We had a heck of a time managing disconnected development owing to the manner in which VSS was tightly coupled to file sharing. We tried a number of packages, such as Source Off-Site, but they never quite caught on here (no idea why).

I often work like mad on flights to and from professional conferences. For some reason being away from every distraction is a perfect environment for me to design and prototype or just work through thorny code. At the last Microsoft Professional Developer's Conference (PDC'05), I was coding up a storm for our new GIS importer architecture for what would become XMap 5.0. Even with all of the disconnected editing support in Visual Studio 2003, the experience was still unpleasant. VSS kept raising up and getting in the way. When I found a low-level problem, delegating it to a gifted developer back in the office meant a difficult update in the hotel room.

On Sunday, I was sitting on an airplane working on the new architecture for our GIS exporter module when I ran into a problem in a low-level string library we maintain. Just like the PDC trip, I wanted to delegate this back to the office so the unit tests would be updated to check this case at every build. I patched the problem and sent the email off to someone back at the office. Now AccuRev had a chance to really shine. I kept my changes to my private workspace, allowing that developer to test out my particular case without promoting my unstable code to the integration build (win #1). When he had made the changes to the string library and it passed unit testing and the integration build, I threw my temporary changes away (win #2) and brought his changes down with a single click (win #3). Everything built as perfectly here in San Antonio, Texas as it did in Yarmouth, Maine (win #4). Now I am able to work on some ideas I picked up at the conference with a nice, clean build (win #5). The very heart and soul of disconnected development.

AccuRev is a great product. It managed to both facilitate our processes and improve them without a big religious conversion associated with other development tools.

Labels: , , ,

01 January 2007

Visual Studio and AccuRev

It has been a while, but work grabbed me with little more than a week between two large projects. We shipped out XMap 5.0 and I jumped right into the selection, purchase and install of new development tools. The upgrade from Visual Studio 2003 to Visual Studio 2005 was actually quite a bit more painful than the upgrade from Visual Studio 97 to Visual Studio 2003. The improved ISO C++ compliance is conceptually great, but when you have a fifteen year investment in C++.... Well, suffice it to say that we realized we had a fair amount of non-compliant code kicking around in the repository.

The more engaging part of this task was replacing our weather-work Visual SourceSafe 6.0d source control control system with AccuRev. We last evaluated AccuRev when 3.5 was the current edition of the software. (cue wavy lines)Back then its integration with Visual Studio (a.k.a. SCCI support) was pretty rough around the edges and the AccuRev Client GUI needed a bit of maturing. The worst part of that eval process was being able to see just how great a heart they had to the product. Rather than select a lesser SCM system, we cancelled the upgrade project a decided to wait... (back to reality) This time through, under AccuRev 4.5, they really spent some time and effort on their SCCI support and client GUI. Everyone on the analysis team was really wowed by the product, so much so, that some of us could not wait to get our hands on it. Though it has not occurred every day, at least a few times a week I run across another great feature which makes me shout, "I love AccuRev!"

The new software packages are finally being deployed throughout the department this week. Hopefully, I will have time to return to my other pursuits. The in-laws bought me a book on Esoteric Freemasonry, which will be a great way for me to start learning about this branch of the Craft.

Labels: , , , ,