Seven Steps for Choosing a Software Configuration

Seven Steps for Choosing
a Software Configuration
Management System
Selecting a software configuration management (SCM)
system isn’t easy, especially with the changing face of today’s
product development arena. And what worked well years ago
could today be holding you back. So we’ve put together seven
easy steps to help you assess your needs and choose the
right tool for the job.
1
DETERMINE WHETHER
YOUR CURRENT SCM
FITS YOUR PURPOSE
You may be reviewing your existing development and operations tool
chain to speed up your delivery process, adopt DevOps or move to
Continuous Delivery practices.
Perhaps you’re working with a partner who requires a different SCM
system.
Is your team growing, building more complex products, or extending
globally? Do your developers want to use tools such as Git but you
don’t want to compromise your security and visibility? Does your tool
allow for the flexibility of both distributed and centralized version
management?
Here are other factors to consider: Are you using multiple SCM tools
and you want to standardize on one to reduce risk, complexity and
costs? Are your existing tools old and lacking a clear road map for
future development?
If any of these issues apply, now is the time to re-evaluate where you
stand and choose the best SCM tool for your present and future needs.
You may be worried that such a change is expensive in terms of
potential lost productivity, migration pain or administrative overhead
– to say nothing of licensing, training or hardware expenses. This
guide will help you to understand your needs and help get key decision
makers on board when choosing the right SCM tool for you.
2
Don’t settle for the
status quo, especially
if you:
¢ Are expanding with globally
distributed teams
¢ Need to deliver more quickly
and more often
¢ Have to coordinate the entire
DevOps pipeline
2
ESTABLISH YOUR SCM AND
VERSIONING REQUIREMENTS
It’s time to quantify: How big are your company, team and codebase? How many products are you dealing with
and how often do you release them? Are all your contributors in a single location or are they distributed across
multiple continents? How many globally distributed teams do you have? Are you outsourcing development?
Use the following list as a starting point for requirements in your SCM.
What concerns are specific to your Industry?
What types of assets will you version in your SCM system?
¢ Compliance or auditing
¢ Artwork
¢ Protecting the intellectual property (IP) embedded
within your software or other digital assets
¢ Chipset designs
¢ Component-based development
¢ Confidentiality
What tools will integrate with your SCM system?
¢ IDEs (e.g., Visual Studio, Eclipse)
¢ Design tools (e.g., Adobe Photoshop,
Maya 3D)
¢ Defect-tracking tools
¢ Continuous integration and build management
¢ Release or deployment management
¢ Source code
¢ Configuration and automation scripts
¢ Video, graphics or audio
¢ Binary files or artifacts from a build system
¢ Business documents
¢ Entire production or testing environment
virtual machines
What are your collaboration needs?
¢ Integration of open source components
¢ Teams distributed across geographic locations
¢ Outsourced development
¢ Contributors, such as designers or authors, whose
workflows differ from those of coders
¢ Distributed version control system (DVCS) features
3
3
DEFINE THE USERS... AND CHOOSERS
Traditionally, the choice of version management was left
to software developers, its primary users. Today, however,
companies increasingly must version other types of digital
assets, which means many other roles may need the
versioning service.
Who will use version management, either now or in the
future? Consider whether you currently experience any
difficulties transitioning products among the following roles,
and identify which ones will be using your SCM system:
¢
¢
¢
¢
¢
¢
Software developers
Build and release or DevOps engineers
Quality assurance
What pain points are you currently experiencing?
How do these different user roles interact with the SCM
throughout the product lifecycle? To answer these questions
related to users and choosers, interview a diverse cross-section
of staff or invite a few representatives to meet and form an
SCM tool selection team.
Designers, artists, animators, musicians, writers
Management
External contributors
Each of these roles will have a preferred interface, tools and
workflow for interacting with the SCM, be it via Git, a GUI
or a seamless plug-in. Each role may also require different
levels of training and support.
4
Consider the security requirements for your SCM tool.
The tool will be storing your valuable IP, so security teams
must be included in your selection process. You should also
prefer a system that provides fine-grained permissions and
enterprise-grade access control and offers advanced protection,
such as spotting dangerous activity.
It’s a helpful exercise to determine your
buying criteria. What are your must-have
capabilities? Also, consider ease-of-use
criteria and how the tool will enhance
productivity for your team.
4
EVALUATE VERSIONING
SOLUTIONS AND VENDORS
Choose three to five vendors. You could choose more, but
it’s likely you’ll lose enthusiasm for the process if you do so.
Besides, you probably won’t have time to look at more.
Fewer than three vendors can also be problematic because it
may inspire questions down the line about how the decision
was made. Having three to choose from in the final analysis is
helpful for ranking good, better and best.
In fact, depending on the politics of your organization and
your decision-making style, you may consider putting your
preference as the middle option if there’s a tendency toward
moderation.
Appraise Open Source or Free Software
If you’re considering an open source product or one that is
available free to download, it can be very quick and easy to
start your evaluation. Just download and go.
But don’t let this ease fool you into thinking the rest of the
evaluation can be skipped. You’re looking for a tool to protect
your organization’s valuable IP; that protection and business
needs should be high priorities even if the initial license
appears to be free.
Schedule demos
Provide requirements and processes in advance to ensure
that the demo addresses your needs. While you could skip
this step and go straight to free trials, demonstrations have
the advantage of putting faces to the software and giving you
a sense of what interacting with the vendor will be like, both
from a business standpoints and in terms of support.
Calculate ROI
A return-on-investment calculation helps you compare
vendors and sell your final choice internally (as well as
defend it, if necessary, from future cost-cutting efforts).
ROI assessments need to consider all the costs of the various
options, not just license and maintenance fees. Open source
tools may be available for “free,” but enterprise levels of
security and reliability may require additional tools whose
costs should not be overlooked.
Ensure that you also include all hardware and personnel costs
to administer the systems, such as the effort necessary to apply
updates to the software, build and maintain backup and
HA/DR environments and train staff. On the flip side, assess
all the benefits that may be accrued in terms of productivity
5
and quality improvements. To assess the vendors you are
considering, the Forrester Total Economic Impact (TEI)
methodology is a good one
Try It
You may want to start a pilot team with a new tool at this
point, or ask different stakeholders to evaluate different tools
simultaneously and report back. Check the options for access
control: Does the tool match the security requirements you
identified earlier? Consider how you will migrate your existing
assets into the new tool. Try backup procedures and validate
that recovery and restore procedures are suitable.
Check support
In light of how important a role your SCM system will play, it’s
essential to have top-notch support. What do others say about
the support offered by your candidate vendors? Remember,
too, that tool vendors today provide not only support but also
community, training, best practices and consulting. Check
the vitality of the “ecosystem” around the tool in terms of
third-party integrations, consultancies, customer-built mods,
forums and more. If you’re considering a free or open source
offering, who will be able to provide assistance? How much
will it cost and how readily available is it?
6
Run a Pilot
Choose a pilot project that is a good reflection of how
you intend to use SCM with a mix of content types and
contributors. Pick a project that can show progress in a
reasonable time. Look for the quick wins, but don’t forget
those tricky instances that might be an issue later. Work with
the vendor to agree on and execute the pilot. This could be a
great opportunity to identify some champions for your project
within your organization.
Collect Evidence
Get clarity on hardware and network requirements. Be certain
your security and IP protection needs will be met. Review case
studies and contact users of the tools you are assessing.
Review Purchase Terms
Ask for a clear explanation of the licensing, flat fee,
subscription or other payment model. Consider deployment
options: Are both hosted and on-premise choices available?
Does the price include free upgrades? How much will support
cost? Are charges predictable as usage expands?
5
ASSESS THE ENVIRONMENT
Before signing the contract, take one last step: Look around. What tools are similar companies in your market using
for enterprise version management? Consider if they’re all stuck in a rut such that using a modern SCM tool could
be your competitive advantage. For example, perhaps it would enable you to adopt Continuous Delivery while
everyone else is stuck in the past.
Look for relevant case studies. Talk to other users. What do they say about the tools, the support available and how
they see their usage changing in the future? What has their relationship with the vendor been like? How has the tool
helped them achieve their goals?
Where available, use analyst reports to gauge the strength and staying power of the vendor. Few analysts publish
SCM-specific reports, so look at reports on related topics, including Agile methodology, DevOps and Continuous
Delivery. If you have a subscription with an analyst firm, get its assessment of the options being considered.
Salesforce.com uses Perforce
to enable rampant growth
See how Salesforce.com uses Perforce
to scale their infrastructure to support
hundreds of scrum teams, build farms,
compliance, and more. [Watch video]
7
6
CHOOSE YOUR PLAN, PLAN YOUR LAUNCH
Once you’ve selected a tool, don’t fall prey to “shelf-ware
syndrome.” All too often, new software is underutilized
or never even installed, making it a true waste of money
and effort.
You’re probably going to migrate assets and history from
an existing SCM system to the new tool. Ask the vendor for
guidance and assistance. Read case studies from organizations
similar to yours to learn how best to plan the migration.
Ask yourself: How complete can the migration be?
Schedule the rollout and training for each type of SCM user.
Be sure to revisit users periodically after training to check
compliance. View the new tool’s use as an organizational habit
to be formed and encouraged. Look for what cues or obstacles
could block adoption as the rollout begins. Request frequent
feedback from users and make changes accordingly. As use of
the new tool grows, look also to improve workflow and learn
from industry best practices observed in steps 4 and 5.
The temptation might be to migrate your complete history
but consider what you actually need. Is it really important to
migrate code from a decade ago? Or would it make more sense
to focus on bringing the current project to market?
Don’t underestimate user training either – build a plan for it.
Many have found the move to Git difficult because it uses a
different branching model. Include this transition in training.
The best option might be to move to a tool that allows users
to adopt Git for their local client if they wish while allowing
other users to stick with more familiar workflows and tools.
Your chosen SCM tool should allow this level of flexibility.
8
Case Study
Amdocs’ successful SCM migration resulted
in cost savings and increased productivity.
[Read the case study]

7
CONTINUOUSLY IMPROVE
Once you’ve completed the purchase and the first migration, what’s next? Remember that systems do
need attention to ensure that they remain fit for purpose and continue to support changing business needs.
Obviously, ensure that your chosen tool is regularly updated with maintenance releases. Evaluate new
functionality to see if it can help drive your competitive advantage. Stay in touch with your vendor for
road-map news so you can plan future upgrades (if the vendor can’t provide road maps, then perhaps
you haven’t made the best choice).
Keep improving. Continue updating users on best practices and new features. Check if the
vendor runs regular training or technical sessions to update users, and attend as many as you can
(most are available “on demand” these days).

9
SUMMARY
Version management today is at the heart of modern product development practices, including
DevOps and Continuous Delivery. Check where you are on the Forrester/ThoughtWorks Continuous
Delivery Maturity Assessment Model and aim for the next level.
Ultimately, there should be no limit to your expanding vision of how version management can
streamline organizational processes. Maintain a conversation not only with your vendor but also
with the community by contributing to user conferences or suggesting features or case studies.
Celebrate a successful partnership with your version management provider, and you’ll enjoy
the fruits of a wise selection of your SCM tools for years to come.
North America
Perforce Software Inc.
2320 Blanding Ave
Alameda, CA 94501
USA
Phone: +1 510.864.7400
info@perforce.com
Europe
Perforce Software UK Ltd.
West Forest Gate
Wellington Road
Wokingham
Berkshire RG40 2AT
UK
Phone: +44 (0) 1189 771020
uk@perforce.com
Australia
Perforce Software Pty. Ltd.
Suite 3, Level 10
221 Miller Street
North Sydney
NSW 2060
AUSTRALIA
Phone: +61 (0)2 8912-4600
au@perforce.com
perforce.com
Copyright © 2015 Perforce Software Inc. All rights reserved. All trademarks or registered trademarks used herein are property of their respective owners.