The Importance of Agile Source Code Management
Source code management is the key function everyone takes for granted. Some developers (and their managers) also take the version control system (VCS) for granted, failing to give it the attention it deserves.
For developers embracing agile, the VCS will make or break your process. Too often, we find teams not effectively utilizing source code management, missing out on key benefits and sometimes even losing essential source code used for an application deployment.
Source code management is an enterprise-critical resource that should be implemented on secure servers with effective backup procedures and verified disaster recovery procedures. Sadly, some organizations fail to realize the importance of a robust VCS until it is too late.
Most users understand that code has to be checked into a version control system. But even highly skilled developers can overlook the importance of effective baselining procedures such as using tags or labels, which establish the exact versions of your code that went into a particular release. These same folks may even fail to realize the wealth of information contained in the VCS, which is essentially a data mine of your development process.
Development managers benefit greatly when they see the history of the code development process by using the features of a robust source code management solution. Branches provide an effective means to manage code variants, but this feature tends to be underused or even misunderstood, resulting in errors.
Used effectively, source code management can help facilitate continuous integration, as well as continuous delivery and deployment. Advanced code management solutions boast features such as streams and components, which can help model and manage the most complex software architectures. Streams can also help model your software development process and ensure, through entitlements and roles, that only authorized resources have access to your intellectual property. But many companies refuse to provide an adequate budget for powerful commercial source code management solutions that could help accelerate the software development process.
When using simpler VCS solutions, it is helpful to define the preferred use case and provide training, especially in terms of branching and merging code, which can be very challenging. Some version control solutions also have less than acceptable reliability and security controls. We have seen organizations lose valuable code, costing many thousands of dollars in rework due to a corrupt version control repository. These issues are often not discovered before earlier backups are discarded, which means the cost is lost forever. Some limited version control systems also do not scale well in the enterprise and cannot effectively support development teams distributed across continents and time zones.
Agile development requires fast and effective source code management that aligns with agile practices. Done well, your source code management solution can provide the best platform for effective agile practices, including continuous integration and continuous delivery and deployment. It is best to invest the time and resources necessary to ensure that your VCS accelerates your agile development process, helping to ensure high quality and productivity.