
Guide to Selecting the Right SCM for Globally Distributed Software Development James Creasy Senior Director, Product Management, WANdisco. June 2013. COMPANION GUIDE Best SCM Tools for Global Software Development Table of Contents Introduction ..............................................................................................................................1 Audience .....................................................................................................................................1 Industry Problem .................................................................................................................... 2 Challenges ................................................................................................................................. 3 Suitability of Existing Solutions ......................................................................................... 6 Summary Chart ....................................................................................................................... 8 Deep Dive - Perforce ............................................................................................................. 9 Deep Dive - GitHub Enterprise ........................................................................................ 10 True Active-Active .................................................................................................................11 How to Select an SCM system for Modern Global Software Development ....... 12 Feature checklist ........................................................................................................................................ 12 Where to learn more about products with these features ............................................................... 12 About WANdisco ....................................................................................................................13 WANdisco, Inc. follows a policy of continuous development and reserves the right to alter, without prior notice, the specifications and descriptions outlined in this document. No part of this document shall be deemed to be part of any contract or warranty. WANdisco, Inc. retains the sole proprietary rights to all information contained in this document. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photo copy, recording, or otherwise, without prior written permission of WANdisco, Inc. or its duly appointed authorized representatives. WANdisco and the WANdisco logo are trademarks. All other marks are the property of their respective owners. Apache, Apache Hadoop, and Apache HBase are trademarks of Apache Software Foundation (ASF) Page 2 of 2 © WANdisco. All rights reserved. Best SCM Tools for Global Software Development Best SCM Tools for Global Software Development Introduction Globally distributed development teams have gradually become the standard for a significant number of enterprise software development projects. What started as “outsourcing,” with tasks delegated from a central hub to remote sites, has evolved into a distributed model with teams assembled based on availability and skill set rather than location. Approximately 15 years ago, a typical model might have been a U.S.-based company outsourcing tasks to India, but the current model reflects globally distributed collaboration between highly skilled teams in India, multiple locations across U.S. time zones, teams in Europe and others . Corporate acquisitions have also accelerated this trend. Likewise, IT and administrative teams responsible for creating and supporting the technical infrastructure have evolved. Despite today’s web-like development model, however, existing and legacy tools for SCM have largely failed to keep pace. The new paradigm of global software development demands a new class of SCM tooling. This paper will examine existing approaches and provide solution recommendations that best meet its requirements. We’ll also examine the trends shaping SCM, and plot a safe course for the future of Global SCM. Audience This paper is intended for anyone who uses, designs, maintains, supports, or otherwise interacts with the SCM infrastructure for global software development at their company. This might be an SCM administrator, a Git Enterprise Architect, a CTO or CIO, or a developer looking for better solutions to recommend to management. 1. Fryer, K. & Gothe, M. Global software development and delivery: Trends and challenges. Retrieved from http://www.ibm. com/developerworks/ rational/library/ edge/08/jan08/ fryer_gothe/index.html Page 1 of 13 © WANdisco. All rights reserved. Best SCM Tools for Global Software Development Industry Problem The requirement of SCM systems to support global software development has largely outstripped the capabilities of available solutions. Much has been written about the issues and methods of addressing communication between multi- time zone separated teams.2 Issues surrounding cultural differences, project planning, work transfer, IP protection and more have also been well explored (if not completely resolved). However, almost every analysis highlights the lack of an SCM tool that can provide the type of global synchronization needed for effective collaboration.3 Since ultimately the product of a software development project is software, it’s clear even within the broader ALM stack that the ultimate vessel of collaboration is the SCM system. This makes the suitability of that tool critical to facilitation of a successful project. What makes a tool suitable for the type of global synchronization needed for worldwide collaboration? Performance Performance continues to be the primary measure of distributed SCM deployments. After all, what performed adequately on a LAN now horribly underperforms on a WAN. What factors influence performance of a SCM system in a WAN environment? More than bandwidth Achieving high performance in a WAN environment means minimizing remote connections over high latency lines. Although bandwidth is a commonly 2. De Souza, C. R. B. discussed metric of performance, latency can often be the more significant Global Software 4 Development: component. Challenges and No technology can ever entirely eliminate cross-continental latency because it Perspectives. Retrieved from http://citeseerx.ist. is ultimately bound by the speed of light, but does this mean unresponsive SCM psu.edu/viewdoc/ systems are the only choice? summary?doi= 10.1.1.21.4102 Replication 3. Ebert, C. & De Neve, We can sidestep the need to connect to a geographically remote and high P. Surviving Global latency central server through replication of data to locally resident nodes. Software Development. Retrieved from http://e- Using replication, developers and other users can interact with the SCM system learningup.org.in/ over a LAN connection. UploadArticlePDFFiles/ Surviving%20 Note: Replication can be called many things; caching, proxies, and Globalb508f193- replicas are all forms of data replication. d3c4-436e-b8bb- f07fdab5da49.pdf Therefore replication is a key requirement for global software development 4. Cheshire, S. (1996) It’s SCM tools. the Latency, Stupid. Retrieved from http:// There is, however, another aspect to WAN environments that often eludes www.stuartcheshire. attention. WAN-based distributed computing is more than a high-latency LAN org/rants/Latency.html Page 2 of 13 © WANdisco. All rights reserved. Best SCM Tools for Global Software Development environment; it’s also subject to frequent stresses not found in its short-wire cousin. Failure tolerant An effective global SCM solution must be highly failure tolerant when deployed in a WAN environment, partly because software code is notoriously intolerant of wrong or missing data, but also because distributed systems differ from traditional single machine systems deployed over a LAN in that they experience much higher failure rates. Note: Further explanation on Peter Deutsch’s now famous “Fallacies of Distributed Computing”5 explores areas in detail where distributed systems can fail. Clearly failure tolerant replication is a key ingredient for supporting effective global software development. Challenges What type of failures is likely to affect WAN replication of SCM systems? What features or architectures allow replication to be highly failure tolerant? Replication failure scenarios Businesses using global SCM solutions with a single point of failure (master- slave replication) typically rely on cold or warm-failover, but such solutions are subject to unavoidable data loss in the time between the master going offline and the failover starting up. In the case of an earthquake or major storm, the original master may be months away from repair, and the new master presents a new single point of failure. If the failover server experiences an outage or malfunction, significant permanent data loss could occur. Disaster Recovery (DR): These dramatic, location-based failures are referred to as “disaster recovery scenarios”. Global SCM systems should have robust disaster recovery capabilities. Failures are not always catastrophic, as with a flaky connection to a remote site, but even this scenario hides potentially painful consequences. That’s because it’s hard to tell the difference between a slow computer and a dead computer. Suppose you are employing the conventional technique of post- commit replication. If the target of the replication is subject to an unreliable connection,
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages15 Page
-
File Size-