How to know when to switch your SCM/version control system
Many software companies choose software configuration management (SCM) systems the way kids “choose” t-shirts – they’re usually inherited from older siblings. When it comes to technology, low cost or open source SCM systems can severely handicap software development and deployment, with adverse consequences down the road due to lack of flexibility.
If your company hasn’t reviewed its SCM system for years, it might to time to do so. While it may seem like a daunting process at the beginning, the long-term payoff is worth it.
Let’s look at six questions to ask before switching your SCM or version management system.
Should you switch your SCM system?
After inheriting multiple SCM tools, does your company need to standardize a single system to reduce complexity and costs? Does your current system support emerging trends like continuous delivery and agile processes? Can you collaborate on the same SCM platform as customers or partners? Are you expanding internationally, and does your system support global collaboration? These are some of the key things to consider before determining if you need a new SCM.
Who is using it?
Once the exclusive domain of software engineers, SCM systems today involve many groups within the organization. In the electronic design world, users can include product and marketing management staff, technical staff, and external third parties (e.g., freelancers and sub-contractors). Consider all the people who will interact with your SCM:
- QA teams
- Outside contributors
- Partners and customers
- Operations and production teams
- System administrators and other IT staff
- Software developers and software architects
- Non-technical support and administration staff
- Non-technical content producers (e.g., designers and marketing teams)
It is likely that each of these departments will have a preferred process and interface for interacting with the SCM, whether it is via a seamless plug-in, a GUI, or even an offline versioning tool integrated with the enterprise versioning system. A good starting point is to talk to various staff members to discover their friction points and where in the product lifecycle they interact with SCM.
What are your SCM needs?
It can be tempting to choose a SCM tool just because it’s used by competitors or because it’s well established in the industry. But take a closer look at their strengths and weaknesses by perusing analyst reports and attending conferences where you can speak with other users. Are they a forward-looking, cutting-edge vendor with an innovative product portfolio and roadmap?
Do they understand the electronic design and embedded systems markets? (For this you can examine their portfolio online as well). Electronic designers tend to require SCM systems with rapid time-to-market capabilities and integrations with defect-tracking and IDEs, as well as support for components-based design, continuous integration, and rapid prototyping. Designers also will want to be able to include electronics diagrams, chipset designs and associated documentation in the SCM system.
How good is the SCM support?
Because SCM tends to be the center of the product development process, support is a critical aspect in the evaluation process. Be sure to see what users think of the support offered by the SCM vendors in consideration. Examine the strength of their best practice resources, consulting, community, training, and user events. Ideally, there will be an entire ecosystem built around the system with everything from customer-built mods and forums to third-party integrations and consultancies.
How do I conduct the process itself?
Pick three to five vendors to evaluate – not 20. Provide them your requirements and processes and schedule a customized demo. This will give you a chance to get your feet wet with the software and interact with the vendor, which also provides an early glimpse into what support calls down the road will be like. Once you’ve found the one, request a free trial and test it with a pilot team, who will evaluate the system, and give their feedback.
While the above elements ensure you end up with a system that delivers performance, reliability and scalability, most companies also have to consider the Return on Investment (ROI). Here are a handful of things to ensure maximum ROI from your SCM vendor:
- Get the lowdown on the payment model – is it a license, flat fee, or subscription?
- Will you be charged for updates, and how often are new updates/features rolled out?
- How much do support services cost?
- Does the SCM scale to support 100, 1,000 or 10,000 users? Some SCM systems excel at supporting small teams but buckle under the weight of large data repositories and large numbers of users. Make sure that your SCM will grow with you when you need it.
A note on open source software: While always a tempting option due to lack of upfront costs, it may tack on expenses for hardware, administration, training, project hosting, consulting, and support costs.
Many organizations these days have several legacy SCM systems due to mergers and acquisitions, which is great for the growth of the company but also challenging to manage. It is certainly not impossible to produce a unified SCM environment from all of that legacy data, but it is a situation where I recommend seeking out consultants from the vendor or one of its preferred partners, due to the complexity of the project.
By enabling users to bring products to market quicker and storing priceless intellectual property, SCM systems have the potential to provide a key competitive advantage. Switching SCM or version management systems can seem overwhelming at first, but it is a transition worth making.
Mark Warren is the EMEA Marketing Director at Perforce, based in the UK. Mark has over 25 years of experience working with development and product management teams in software development tools and configuration management.