Posts Tagged ‘version control’

Distributed Version Control: Balancing Flexibility and Scalability

October 6th, 2011 by clucca

You’re starting to hear more and more about distributed version control as some developers implement a new, decentralized version of distributed version control that enables developers to host a complete copy of the repository on their own computers without the need to be connected via a common network.

While this may be OK for smaller projects, there are some inherent risks for enterprise-wide large development projects. In fact, many large companies are loathe to allow their “crown jewels” – their source code – to be copied wholesale across a variety of developers’ machines. Enterprises tend to be genetically predisposed to keeping their files in one centralized location that they know is secure and backed-up.

For projects requiring enterprise scalability, there’s another way to handle distributed version control that’s more efficient, secure, and cost-effective. Developers working locally can simply work from a central server using the company LAN and remote developers can access the repository server through a WAN. If for some reason there’s a geographically-based performance issue, additional servers that replicate the central server can be installed at remote locations.

What’s great about this server-based model of distributed version control is that it nicely balances flexibility and scalability across the enterprise without sacrificing security and file integrity. Here at AccuRev, we’ve got a product called AccuReplica that handles replication and continuous integration for scaling our SCM system so that development teams using the server model can more easily collaborate on parallel development projects no matter where they’re located. In fact, replica servers can be added to handle, say, local and remote departments as well as build clients for easy, appropriate scalability based on your specific needs.

Some of the benefits of using a replicated server distributed version control system:

  • Scalability is immediate and easy – set-up involves installing a server and replicating primary server repository with a single command
  • Improves collaboration and communication between distributed development teams
  • Makes branching and merging easier because all teams, regardless of location, use the same process – no per-site branches
  • Administration remains centralized on the primary server – no need for costly resource duplication at each location

So with all the talk about distributed version control, if you’re a big enterprise project developer it’s good to know there’s a DVC server model that utilizes easy-to-setup replicate servers to provide scalable distributed version control across the enterprise without sacrificing flexibility or security.

If you’d like to learn more about the features and benefits of AccuReplica, download the free data sheet.

The Holiday Season is Already Here for Software Development Teams in the Travel Industry

September 30th, 2011 by AccuRev

The holidays are still several months away, but for software development teams in the travel industry, Snowflake The Holiday Season is Already Here for Software Development Teams in the Travel Industrythe “hustle and bustle” of the season is already here.

If you think about the ways you make your business or personal travel plans today, you’ll begin to appreciate the increasingly complex software development challenges travel websites present – and the importance of advanced SCM tools.

Just 10 or 15 years ago, many of us were still making travel arrangements through an agent – on the phone or in-person.  We may have gone online to check out a hotel and moved to another site to check on flights – and yet another to rent a car.

Today, travel websites like Kayak and Orbitz bring together all these consumer options and more – and others include frequent flyer miles, preferred guest points and other information related to our travel plans, often involving outside partners.  All of these variables are changing rapidly and are updated dynamically and in real time on travel websites.  This places greater demands on software development teams – teams that are increasingly distributed across multiple time zones and locations.

Also important to note is that the changes and updates these teams are called on to make are increasingly “business-critical.” A software glitch or a site crash can result in major revenue losses, not to mention the residual consumer frustration and damage to the brand.

More variables, more frequent updates and a more business-critical focus — now magnify all this during the many times of peak travel or weather-related interruptions and one begins to understand why more advanced SCM tools are required in the travel industry today.

Basic software development tools may have been fine for some organizations in travel — smaller airlines or hotels with more basic informational web sites that aren’t designed to process high volume reservations and transactions.  But such basic sites are becoming a rarity in the travel industry, leading more and more travel and hospitality businesses to turn to more advanced software development solutions.

AccuRev’s SCM solutions are designed to handle today’s most complex software development challenges, which explains the growth we’re seeing in travel and hospitality business customers.

So when the holidays draw near and you go online to book a hotel, schedule a flight or rent a car, you can thank all of those software developers that have been working hard behind the scenes to make sure the site is up and running 24/7.

Version Control System – or How to End the Madness of Managing Multiple Revisions

August 30th, 2011 by clucca

Perhaps this is a recurring nightmare that makes you wake up screaming at night – you have multiple development teams working feverishly on making revisions to your most popular software line and suddenly you have NO IDEA where you are with the revised build and all the branching and merging has taken on a life of its own.

I have three words for you – version control system. Those three simple words can make all the difference between going down a nightmarish rat-hole of revisions and having a wildly successful, new-and-improved product launch. A version control system should be an integral part of your software configuration management (SCM) tool so that you and your team members can easily keep track of multiple revisions during parallel concurrent development. A good, comprehensive version control system is critical for development projects that include lots of codeline management and sharing between team members, especially when the teams are geographically distributed or located offshore.

So what makes a really good version control system for multiple revisions?

Well, it starts with stream-based architecture that takes the place of the traditional branch-and-label process. Because streams contain everything associated with a particular file, you can develop a rock-solid history of everything that happens during the revision process, creating an immutable audit trail that’s ideal for both internal audits and regulatory compliance. The comprehensive nature of stream-based architecture also makes rolling back to a previous file version faster, easier and a whole lot safer because the stream contains everything associated with that particular file.

Ideally, a good version control system provides a graphical dashboard that enables you to visually track all changes, making parallel and concurrent development easier and more intuitive. Graphical visualization also makes comparisons of different file versions safer, highlighting differences and minimizing the chance of error. And because visualization makes comprehension easier, merging codelines becomes simpler and quicker by reducing the amount of time spent analyzing and resolving merge conditions. As a result, branching and merging then become easier and more efficient, encouraging innovation while reducing time to release.

If you’re practicing agile software development, then you know the importance of multiple development teams and sharing. With an advanced version control system in place, sharing becomes much easier because developers can safely version in-progress code, store it in a private workspace, and share it with other team members when necessary. This means development teams can operate with greater flexibility and creativity, building features or entire codelines independently.

There’s a variety of different version control system tools available for managing multiple revisions, ranging from simple, basic freeware with minimal functionality to comprehensive systems that provide core version control functionality as well as sophisticated graphical configuration and codeline management. Depending on the size and scope of your development projects, there’s a version control system available that can meet your needs and end the multiple revision management madness.