Monday, October 23, 2006

Subversive Heresy

I've tried various source control systems: clearcase, subversion and svk. Received software development wisdom says you *must* use a source control system. Why? Well here are some of the purported advantages:
  • you can rewind the tape
  • you can hack simultaneously
  • you can branch
  • you can browse (e.g., SVN::Web)
  • you can blame
But in practice I rarely find myself rewinding the tape - my editor does that, and in the worst case scenario I can get the original file from production or staging. The retrieval cost of 'rewinding the tape' from the repository to a specific version is often higher than coding afresh (which version was that again?).

Simultaneous hacking on the same file in a huge code base happens infrequently but when it does resolving clashing files is a pain. The "blame game" is also pretty pointless. Mentally managing commits adds an unnecessary cognitive tax and takes time too. I don't know about you but I get a feeling of "repository drag"?

Ideally the software scaffold should not slow you down - but speed you up! I wonder if there is a better way? Fast browsing, no more commit overhead, clash prevention, automatic change logging and easy history traversal ...

0 comments: