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.