The limitations of your tools are your limitations. Choose your tools wisely.
I consider source control part of the fundamental big three tools of software development.
- Source control
- Work item or defect item tracking
- IDE or development environment or compiler
What I find unusual:
- The number of people using no source control seems high.
- Given the known problems, issues, and alternatives to SourceSafe, the number of people still using SourceSafe seems extremely high.
- Given the high cost of the infrastructure and licensing of Microsoft Visual Studio Team Foundation, I am surprised at how many users report using it.
Useful Source Control Tools
The best source control system today is the one you already have. There is a cost to switch to a better one. There is a cost to administer the existing one. There is a cost to administer (and purchase) a new one. Keep in mind the cost of the hardware and the administration to factor in the total cost of a solution. Free licenses does not equal free hardware or free administration.
If you don't have a source control tool or want to switch to a new one, here are three useful source control systems. You may find that switching to one of these tools is actually more cost effective and a better solution than what you have in place today.
- Sourcegear Vault - free licensing for one user
- Subversion and TortoiseSvn - free licenses for all users
- Microsoft Team Foundation Server
How I Came to Choose Vault
I used PVCS for years in multiple organizations dating back to the 1980's. It was a good an useful product, simple yet powerful but not too complicated. Somewhere along the way in the shift from company to company (Sage Software, Intersolve, Merant, Serena Software and now Silver Lake Partners), I believe PVCS lost it's vision and became too cumbersome and complicated and I think it's market share reflects this. It was a good product. I've even recently used PVCS Dimensions for customer projects. It works and does it's job of version control, but it's no longer a compelling product.
In 1996, I was trying to do remote source sharing between the United States and the United Kingdom. None of the tools worked well over the Internet (not even over a T1 line). Both PVCS and VSS failed miserably. The best we could come up with was remote desktop control and file transfers. I think somewhere around that time SourceOffsite came out. I didn't try it.
In 2001, I switched from PVCS to VSS for projects. VSS is deceptive. It appears like a cost effective tool because when you buy the MSDN subscriptions it's included. It appears simple at first, but it's not very powerful. What you get for free eventually costs you in lost time, lost files and lost changes (search for "VSS issues"). With the VSS version I used up to 2003, If you tried to work remotely using multiple developer sites, it killed time and bandwidth just trying to get in sync.
Vault was everything all the other source systems were not.
- It seamlessly imports files and history from existing VSS databases.
- Most importantly, it was easy to identify missing files that were not checked in to the source control system.
- The smart client worked the way a lot of file operations are supposed to work on the desktop (i.e. there was no cumbersome web only interface for remote access).
- The smart client integrated seamlessly with Visual Studio.
- There was a standalone Web Interface if you wanted it, so you could work even if the full client software wasn't installed.
- The client would automatically tell you which files were in sync and out of sync which saved time in updates.
- The client would pull only the most recent files for updates so it minimized bandwidth.
- Vault had a command line tool to support automated builds / gets.
- Vault is has a free license for one user (the 10% of the folks that use no source control now have no excuse).
I tried VSS, PVCS, CVS, Subversion and I still think in 2008, Vault is the best overall solution for source control.
In 2005, I tried to test Microsoft Visual Studio Team Foundation Server. I couldn't put it on any existing workstations I had and I only had two servers in the office that met the hardware performance criteria and they were both Domain Controllers. VSTFS will not install on a Domain Controller (I tried).
Source Control Poll Results
Shakespeare may have thought All the world's a stage, but Julian Beever thinks all the world (or at least the sidewalk) is his canvas. Mr. Beever has some interesting artwork he calls pavement drawings. I don't think he actually digs up the sidewalk (pavement if you live in the UK), but it sure looks like it.
Visit Julian Beever's site to take a look at his portfolio of interesting chalk drawings.
Did you ever want a reason to upgrade? Before you start a new project on a mature stable Microsoft technology, you might want to check to see if it is still supported. Microsoft typically provides support five years after the product general availability.
For example, did you know that Microsoft .Net 1.1 mainstream support ends in October 2008?
For more information on currently supported products, refer to the Microsoft Support Lifecycle Index.
And it's sad to say those products I worked on back in the 1980's are now obsolete. MS-DOS went obsolete in 2001, and QuickBasic in 1999. Who knew? Back in the 80's I used to port the MS-DOS and QuickBasic drivers (okay it was actually GW-Basic) for Data General.
Here is a list of more obsolete Microsoft products.
At the Raleigh office, we recently upgraded our Time Warner Road Runner business class plan to 5 Mbps down, 1.5 Mbps up. If you have to verify a speed test, the best site I've seen is at Speedtest.net.
Speedtest.net provides a very interesting looking graphic interface along with some very interesting comparison statistics.
Her main points considered are does it increase accuracy, or speed. The raw statistics don't show anything statistically significant. The readers did report a 46% preference for zebra striping, but 36% said they didn't care.
I believe that anything that improves the readability, or visual appeal of information is going to be helpful to users. I also believe that with wider screens and more space between columns, the striping is more helpful.
An example of zebra striping:
<table class="tableGrid" cellspacing="0"> <tr> <th>Feature</th> <th>Importance</th> <th>D40x</th> <th>D80</th> <th>D200</th> </tr> <tr class="gridItem"> <td><strong>Viewfinder</strong></td> <td style="text-align: center">1</td> <td>.8x</td> <td>.95x</td> <td>.94x</td> </tr> <tr class="gridItemAlt"> <td><strong>Aperture Dial</strong></td> <td style="text-align: center">1</td> <td>No*</td> <td>Yes</td> <td>Yes</td> </tr> </table>
It often takes so much effort to gather data in the first place that we rarely take the time to put the data into a visual form. If we take the time to present information visually though, it can have a much greater impact on recognition, retention and comprehension.
I've written about Communication Illusions and where optical illusions can mislead.
Michael Ogawa was inspired by this information visualization to create some stunning video's called code swarm that incorporate music, time, and statistics for the interactions that developers have on open source projects.
If your inclined to create your own charts and don't have Excel or a chart rendering control or tool, there's Google charts.