Distributed or Centralized Development?


For most enterprises, it’s not a question of or but and

Over the past several years, organizations have been affected by new market disruptions that were hard to foresee a decade ago. This is especially true when it comes to the Software Configuration Management (SCM) landscape. Today’s IT organizations must address and manage many new software delivery paradigms, including decentralized development teams, increased use of short-term and remote workforces and greater concerns over intellectual property protection. The combination of these seemingly unrelated forces has created several unique technology and business challenges for enterprise development organizations.

Hybrid and Mixed Development Environments

Organizations must consider the growth of hybrid development environments and the diversification of tools and processes. It is clear that distributed development models are expanding at orders of magnitude greater than centralized, however the reality of most enterprises is that they have mixed development requirements; it is a rare situation today that a development operation is either purely centralized or purely distributed. Therefore, the business and technical requirement is to support development infrastructure and workflow that seamlessly support both. Provide developers the tools and paths they need in order for development velocity to be achieved without impact to project quality or security. This works for groups who are diving in head first with both centralized and distributed development models or for organizations who have exclusively used centralized development and who are just now dipping their toes into the distributed development pool.

First, let’s look at Git.

With its skyrocketing increase in usage it’s no surprise that developers love this tool. Git allows them to have complete control over local repositories with pull, merge and commit activity supporting development autonomy and velocity. Offline diffing, merging and branching capabilities are embraced as they inherently support the ‘distributed’ developer. Additionally, almost all ecosystems for mobile development (iOS and Android) and open source frameworks/libraries are based in Git repositories and associated workflows.

While there are entire sites now that describe the benefits of using Git or migrating from SVN (or other CVCS) to Git, many of those sites focus on individual or smaller team environments. A couple key use cases for leveraging Git in the enterprise include:

  1. Forking of projects and the bidirectional support of merging changes – Authoritative repositories no longer need to be centrally controlled or administered in the enterprise
  2. Ecosystems for mobile development (iOS and Android) and open source are almost entirely based on Git repositories; the increasing dependency and adoption of open source and mobile applications/components in enterprise products, solutions and platforms
  3. And of course, cloning the entire repository and working locally; enough said for remote developers, distributed teams, road warriors, etc. who have intermittent access to central repositories

Now, Subversion.

Subversion has a long history in the enterprise and is the version control standard for a vast amount of development organizations. Whether it’s granular directory/subdirectory checkout control, the ability to manage large proprietary binary files, or its just the standard in your enterprise, there are compelling reasons why organizations maintain large SVN implementations.

Fortunately, many enterprise organizations find that it is not necessary to choose between the two. And to be clear, we are not stating that SVN is better than Git (or vice versa). That answer depends on your environment, development workflow, corporate requirements, etc.

Managing SVN and Git Side-by-Side with TeamForge SCM 

TeamForge SCM recognizes this dynamic. It’s not a question of distributed or centralized, Git or SVN (or insert your own central version control tool of choice) … It’s a question of and. Therefore, the organization with the infrastructure to elastically support both development models will succeed compared to one that artificially restricts the development model because of inflexible tools, infrastructure or workflow.

Using CollabNet TeamForge SCM, it is possible to manage both tools side-by-side, exposing the strengths and capabilities of both platforms in a typical enterprise development workflow. Recognizing that both version control systems will be in use, we’ve decided to instead focus on providing consistent workflow, visualization and traceability. Having a system that aggregates an enterprises’ entire DVCS and CVCS code activity, file changes, branch activity and commit volume while highlighting exactly where development code/build/review activity is succeeding or failing is not just helpful but essential in measuring software execution in the enterprise. Indeed, this model highlights the ever increasing needs for effective Continuous Integration (CI) as resources are produced from disparate tools and composited together in the production of a complex enterprise software asset.

With the pace of change accelerating, development teams demanding a flexible portfolio of tools, and enterprises looking for the most effective workflow to support their teams, the use of SVN and Git side-by-side is becoming the norm not the exception. Fortunately, CollabNet has the history and experience to make this a reality. Git is a perfect complement to SVN and TeamForge SCM seamlessly integrates both tools keeping developers productive and enterprise software delivery highly efficient.

Find out more about TeamForge at http://www.collabnet.com/Play



Scott is responsible for driving the product strategy, technical and business requirements for CollabNet’s core product line, TeamForge. Scott has over 19 years of engineering and product management experience across large and start-up technology firms with a focus on enterprise and infrastructure software. Prior to CollabNet, Scott held leadership product management and marketing positions at Cisco, VERITAS Software and Panta Systems. He was part of the initial core team for Cisco’s entry into the server market with responsibility for leading inbound and outbound software product management and helping to drive the platform to a #1 market position within 5 years. Scott holds a Bachelor of Science degree in Engineering and graduated with honors from U.C. San Diego.

Tagged with: , , , , , , , , , , , ,
Posted in Enterprise Git, Git, Subversion, TeamForge, Uncategorized

Leave a Reply

Your email address will not be published. Required fields are marked *