Yes, Your Programming Team Needs to Version Control the Code
05/17/2019 by Carrie Dundas-Lucca Support
Have you ever lost a full day’s worth of work?
SAS programmers have long suffered from anxiety at the prospect of losing many hours of work. Why is this, you ask? From my years of working alongside SAS programmers in the clinical research industry, it boiled down to a lack of handy, integrated, version control systems for SAS tools.
In software development, it is a longstanding coding best practice to use version control systems to ensure that previous versions of programs remain accessible and to track updates made to code over the course of its life. In clinical research specifically, it is common for version control systems to be required tools in the software development lifecycle to support compliance with 21 CFR Part 11 requirements.
However, the story is different when it comes to SAS programmers – for them, the industry standard operating procedure is to track updates and version history within the program itself via comments.
On top of that, a history of your code is wiped out every time a SAS programmer updates and saves the changes to their program. Their only recourse if they want to grab an old copy of their code might be to request it from IT’s system backups! Relying on manual processes, especially this day in age, seems kind of crazy. However, until recent improvements, a solution just wasn’t readily available.
It is time to rejoice! In January 2019, SAS announced that SAS 9.4 M6 would include additional support of Git, an industry-leading version control system. What does this mean for programmers? They will have more access to a leading version control system integrated with their SAS solution. [SAS Webinar: Using SAS with Git: Bring a DevOps Mindset to Your SAS® Code]
As mentioned previously, it is common for software development teams working in the clinical research industry to comply with standard operating procedures. These tools are used to ensure there is a historical record of changes made to code over the course of the development process. These tools also help to support change control procedures for future releases of their development projects.
It is also common for version control procedures to be defined in Biostatistical and SAS Programmer SOPs, but in contrast to software development teams, these goals are often addressed through manual steps rather than automated processes.
Common practices for SAS programmers include:
These practices, while an attempt at replicating the functionality provided by version control systems, cannot effectively be enforced thereby leaving room for simple, yet devastating, losses to be experienced.
These code versioning goals, commonly addressed by manual steps, can be more simply and effectively met through the implementation of a version control system, saving programmers and IT teams a significant time… and a great number of headaches too!
Implementing version control is in the best interests of the programmer and the organization. This practice can reduce rework and provide a historical context of the project. While many organizations have some formal and informal version control practices, providing a simple yet robust tool to support this goal can increase efficiency at very little cost to the organization.
Git is a version control system for tracking changes in computer files and coordinating work on those files across multiple people. It is primarily used for source code management in software development, but it can be used to keep track of changes in any set of files.
The formal definition of Git states that it is an “a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.”
Let’s take this definition and break into pieces:
Free and open source: Git can be downloaded and installed on any workstation or server without licensing or financial fees of any type. Furthermore, the entire source code that runs Git is available to anyone interested in looking at it or reviewing it to determine exactly how many of its specific functionality works. This provides full transparency to the users.
Distributed version control system: Unlike other VCS tools, Git does not need any other servers, software applications, or network connectivity to achieve its goals. A Git repository is self-contained, and it holds all the files that are part of that repository.
Also, Git supports multiple people working on a single set of files at once!
It may have been the case years ago that the version control systems available on the market weren’t quite right for clinical research programming teams, but that is no longer the case. Applications such as Git can provide clinical research programming teams with light and effective tool to help them meet their code versioning goals and allow them to move away from having to rely on manual processes.
If this content was useful, use the Email Signup form (on the top right) to get the Zencos newsletter. Each month we talk about topics of interest to data professionals. You can unsubscribe at any time, and we never share your email address.