backups, but some tools will allow you to do the next best thing. If they support fully redundant multiple site operation, in real time (or as close as you can get to it from a CM perspective), running multiple sites (even if there's nobody at one of the sites), gives you a live backup capability and at the same time provides disaster recovery for all of your project data. Again, the more of your data that's in your multiple site CM solution, the more savings and protection you'll have.
5. Good out-of-the-box processes
This is a real differentiating factor for small business. Even if it is relatively easy to customize process, the small business doesn't have a process expert. It's much more important that there are good end-to-end processes out of the box. Even if they're not perfect, or requires some adaptation of terminology, something solid out of the box will both cut down on time to introduction, and will get you most of the way to where you need to be.
6. Ease of Use, Return on Use
Over time, CM tools have (very slowly) improved in ease of use. There are still a lot of developers who will swear by the command line interface for some tools. Next Generation tools must not only be easy to use, but must also give a return to the user, so that they actually like using the tool rather than putting up with a necessary evil. CM "overhead" is hard to justify in a small business - in fact in any business. But there are some tools that developers wouldn't want to part with. And although there may be some training required for CM managers/administrators, training requirements for end users should be minimal, focusing on process and concepts.
7. Agile CM Support
Most small software businesses don't work to traditional product plans. Instead they tend to work in a more agile fashion, to priorities, both for features and problem reports. New feature requests appear weekly, from customers and from within the engineering organization. The tools and processes for small business need to be able to adapt to Agile CM, whether or not Agile design practices are being used.
8. Easy, interactive reporting
In a small software company, you're less likely to spend time in large project review and change control board meetings then in a larger shop. Instead, it's typically one or two Project or Product managers that keep on top of things. In this respect, it's still important to make intelligent decisions, but the formal reports may be less important. Instead, queries, dashboards and other facilitating mechanisms must be present so that the right decisions can be made based on all the available data. Older CM tools tended to leave out a lot of the key Product reporting, focusing instead on CM manager issues.
9. Build Automation
When there's smaller teams with less control structure in place, there is a tendency to create builds manually, or to deliver them from a developer's workspace. It is crucial that this not happen. Not only does the quality of the deliverable depend on it, but typically the integrity of the entire company. The CM tools and processes must facilitate an easy path to automation of builds so that all system builds may be built from the repository without human intervention. At the same time, build definitions need to be captured. Of course this isn't just a small business requirement - it's just that it's so much more of a critical capability for small business.
10. Easy Customization
Customization will always be a nice thing