Note: This is part 3 of a Sweetcode blog post series about source code management.
Previously, we discussed on Sweetcode how software development practices are changing, and what traditional source code management solutions (such as Git and Subversion) looked like.
In this post, we’ll move onto discussing why traditional source code management solutions fall short for modern enterprises.
The Demands of Modern Enterprise Software Delivery
To understand why traditional source code management solutions fall short, you need simply to look at the software delivery demands enterprises have to meet today in order to stay competitive and lean. Those demands include:
- Diverse deployment scenarios. Deployment environments today are changing and unpredictable. Your apps were probably written in the age when most deployments were on bare metal. Now, to get the most out of your infrastructure and the best bang for your buck, deploying in the cloud, on virtual machines or on containers is important. To make this possible, you need a source code management solution that can integrate with whichever deployment scenario you are facing. Stand-alone revision-control systems like Git and Subversion don’t offer that integration.
- Security and compliance. Security threats have evolved significantly over the past several years. So have the stakes of keeping software secure. The average U.S. company loses $15 million each year to cyberattacks—and those costs are rising sharply, with the figures tripling in the past few years. (And those are just the direct costs.) When you factor in damage to reputation and customer trust, regulatory fines and the loss of sensitive company data, you realize just how important it is today to keep your apps and data secure—which means, in part, securing your source code storage and access control.
- Demand for scalability. Once upon a time, you had relatively consistent numbers of users. Those days are over. Today, demand for your applications fluctuates widely as your user base grows or shrinks, as devices come and go offline, as demand shifts from one region to another, and so on. This means you have to scale at all levels of software delivery. To do that, you need a source code management system that can scale with the rest of your pipeline.
- Prioritization of open source software and open frameworks. The war between open source fans and closed source solutions is over, and open source won. Open source is now the “default approach” to building enterprise software. Why? Because open source prevents vendor lock-in, and open source tools tend to be more popular with the best programmers (which helps you attract top talent). For this reason, having a fully open source solution for managing your source code is essential.
- Demand for resilient centralization. Centralization of IT resources is important for ensuring efficiency. But centralization must be achieved in a way that does not create a central point of failure. When it comes to source code management, that means you need a centralized location to store your code so that you will always be able to access it, keep it backed up, and share it with your team. At the same time, however, that source code storage system needs to be resilient in order to ensure that it is always available, and can keep your software delivery pipeline flowing smoothly.
How can enterprises meet these challenges? That’s the subject of our fourth and final blog post on source code management.