Editor’s Note: This post was originally published on Seattle 2.0, and imported to GeekWire as part of our acquisition of Seattle 2.0 and its archival content. For more background, see this post.

By Anthony Stevens

This is the first in a series of posts on Seattle 2.0 that aims to give the newly-minted tech entrepreneur an overview of the key elements of the “tech” in “tech startup”.  In so doing, I hope to start a conversation about the things that are “must –haves”, things that are “nice to have”, and things that are fluff and are not necessary.

Oh, and I’ll also answer the age-old question, Microsoft or open-source for your tech startup?  OK, not really.  That’s not going to happen.

Let’s start today with the simplest of simple, the notion of source control.  Sometimes called “version-control systems”, or VCS, the high-level purpose of source control is to allow you manage the software code that you’ll be writing.

What do I mean by “manage the software code”?  Well, let’s see:

  1. prevent it from being lost due to a developer’s laptop being stolen
  2. allow you to test out new ideas quickly and with the assurance that you can always get back to a known-good version
  3. allow you to keep multiple copies of the project going at once, each in different states
  4. allow you to recover from hardware failures
  5. allow multiple people in different locations to collaborate on a project at the same time
  6. allow you to respond quickly to customer bug reports and analyze where the defect was introduced into your code base

The gist of source control is that you have a repository into which developers commit changes over time.  The repository doesn’t live on somebody’s laptop; so, being shared, multiple developers can contribute the codebase.  It’s a safe, centralized, shared, always-available resource.

And let’s be clear: at a tech startup, your code is perhaps your most important asset.  Not because it’s secret or has tons of IP embedded in it*, but because it provides a constantly-improving foundation upon which you can quickly iterate in response to market feedback.

You’ve heard the horror stories of people losing the source code, and trust me: you don’t want to be those people.

So how do you get started?   First, hire or partner with people who know how to use source control.  In addition to that, mandate that everyone at your tech startup use source control.  There should be no soft assets – including source code, diagrams, presentations, documents, etc. – that are not committed to the source control system.  Third, pick a source control system.  It doesn’t matter so much which one – 90% of the benefit is just picking one – but pick one, and start using it.  Every day.  Become so fluent with it that you don’t even think about it.  It takes two seconds to learn; it’s a tool, just like an IDE or a blog dashboard or Google Analytics.

Now, the flamebait: I’ll tell you which source control system is the best.

No I won’t.  Ha!  Had you scrambling to reply, didn’t I?  The truth is that there are several categories of source control systems to choose from, and each has its place.  Your circumstances – geography, technical expertise, financial situation – affect your decision.  Having said that, here’s a few pointers:

Subversion.  Subversion probably the most widely used VCS out there, and for good reason.  It’s robust and feature-rich and proven.  It’s a much-improved descendant of CVS, and let me tell you – if anyone suggests using CVS instead of Subversion, give them a squint and wonder about why they recommend that.  Subversion is by far the superior choice, in terms of tooling, hosting, and general lack of kludginess.  One thing about Subversion: don’t run your own Subversion host.  There are a million free hosts out there in the cloud who will host it for you.  Unfuddle is a great example.  And don’t worry about your codebase living on someone else’s server.*

DVCSes.  There is a new variety of VCS that’s appeared on the landscape, called “Distributed Version Control Systems”, or DVCSes for short, and they have a fanatical, if still small, following.  The theoretical advantage of DVCSes are that they allow each developer even more independence in time and geography and network connectivity while still providing neat facilities to merge everyone’s changes together.  Git and Mercurial are a couple examples of hot new (free) DVCS platforms.

Paid.  Paid has its place.  If you’ve convinced companies over the years to pay for your source control software, odds are it’s pretty stable and feature-rich.  Perforce, in particular, is a paid product that has been around for a long time and which gets really high marks from its users.  Perforce has a free 2-user version that your very early startup may be interested in checking out.  If you’re a Microsoft shop, Team Foundation Server may be to your liking; but without a BizSpark program membership, cost may be a prohibiting factor.

Have any thoughts about source control systems or tools?  Horror stories about losing code that wasn’t under source control?  Share them in the comments!

* the approximate value of your source code to someone else is approximately zero (multiple sources)

Like what you're reading? Subscribe to GeekWire's free newsletters to catch every headline

Job Listings on GeekWork

Find more jobs on GeekWork. Employers, post a job here.