Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 55 additions & 1 deletion white-paper/benefits.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,58 @@

## Introduction

This chapter aims to include at a high level some benefits for using Git in clinical development.
More than a control version system, Git is can be a true accelerator for statistical programming teams and a vector of quality improvement, especially with its abilities to make collaboration easier and more traceable. It also improves the readability and tracability, so as the usage of automatic actions (CI/CD pipelines) and AI agents.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
More than a control version system, Git is can be a true accelerator for statistical programming teams and a vector of quality improvement, especially with its abilities to make collaboration easier and more traceable. It also improves the readability and tracability, so as the usage of automatic actions (CI/CD pipelines) and AI agents.
Git is much more than a version control system. In clinical development, it can improve quality, reproducibility, and efficiency across the entire development lifecycle. By providing a transparent history of code changes, facilitating collaboration among programmers, and supporting modern automation practices, Git helps teams work more effectively while maintaining traceability and compliance. In addition, Git serves as the foundation for advanced capabilities such as continuous integration and deployment (CI/CD) pipelines and AI-assisted development tools, enabling faster and more reliable delivery of statistical programming solutions.


```{mermaid}
%%| label: fig-git-benefits
%%| fig-cap: "Overview of Git benefits"
flowchart TD

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I hope that the text size looks okay, as it renders very readable on my screen

Suggested change
flowchart TD
%%{init: {"themeVariables": {"fontSize": "50px"}}}%%
flowchart TD

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Image

git["Git"]

ai["AI-assisted<br/>code changes"]
sec["Security<br/>scanning"]
cicd["CI/CD<br/>automation"]
hist["Commit<br/>history"]
view["Shared code<br/>&amp; searchability"]

git --> ai
git --> sec
git --> cicd
git --> hist
git --> view

ai -->|"reviewed via diff / log"| trust["Confidence in<br/>AI-driven changes"]
cicd -->|"no manual batch runs"| efficiency["Time saved"]
hist -->|"traceability over time"| understanding["Team understands<br/>code evolution"]
view -->|"no restricted access request"| collab["Easier sharing<br/>&amp; reproducibility"]
Comment on lines +13 to +28

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I grouped these a bit more.

Suggested change
ai["AI-assisted<br/>code changes"]
sec["Security<br/>scanning"]
cicd["CI/CD<br/>automation"]
hist["Commit<br/>history"]
view["Shared code<br/>&amp; searchability"]
git --> ai
git --> sec
git --> cicd
git --> hist
git --> view
ai -->|"reviewed via diff / log"| trust["Confidence in<br/>AI-driven changes"]
cicd -->|"no manual batch runs"| efficiency["Time saved"]
hist -->|"traceability over time"| understanding["Team understands<br/>code evolution"]
view -->|"no restricted access request"| collab["Easier sharing<br/>&amp; reproducibility"]
trace["Traceability"]
collab["Collaboration"]
auto["Automation"]
audit["Audit trail"]
review["Change review"]
compliance["Compliance"]
share["Easier sharing"]
repro["Reproducibility"]
knowledge["Knowledge retention"]
cicd["CI/CD"]
security["Security scanning"]
ai["AI-assisted coding"]
git --> trace
git --> collab
git --> auto
trace --> audit
trace --> review
trace --> compliance
collab --> share
collab --> repro
collab --> knowledge
auto --> cicd
auto --> security
auto --> ai

```

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In place of all of the subsequent text, I propose this. I hope I have captured of the essence of the existing text

Suggested change
## Traceability
Git provides a complete and transparent record of how code evolves over time. Every change is associated with an author, timestamp, and description, creating a detailed history that can be reviewed, understood, and revisited whenever needed. This improves accountability, facilitates troubleshooting, and helps teams understand the development path that led to a particular result. As a result, teams can work more confidently, knowing that previous decisions and implementations remain accessible and verifiable.
### Audit Trail
Git automatically preserves a history of all committed changes, allowing teams to determine who introduced a change, when it was made, and often why it was made, without relying on manually maintained documentation. This built-in audit trail remains linked directly to the relevant source code, provides greater transparency than traditional shared-drive approaches, and supports quality-focused ways of working. Investigations can be simplified when questions arise during validation, peer review, or inspections, as historical changes can be examined quickly and objectively.
### Change Review
Git enables structured review of modifications before they become part of the main codebase. Reviewers can focus exclusively on comparing differences in lines between versions, making reviews more efficient and effective. This targeted approach promotes knowledge sharing, encourages adherence to programming standards, and improves code quality by identifying issues earlier in the development lifecycle. Over time, routine review practices can contribute to more consistent and maintainable codebases.
### Compliance
Although Git is not a compliance solution on its own, it provides capabilities that support compliance-related activities. Version histories, documented reviews, and controlled change tracking help demonstrate how analyses were developed and maintained. By making development activities more transparent and reproducible, Git helps organizations establish processes that are easier to govern, monitor, and defend during audits or inspections.
## Collaboration
Git allows multiple programmers to work on the same project while maintaining a shared and consistent source of truth. By centralizing code and its history, Git reduces reliance on individual file copies, email exchanges, and manually coordinated updates. This supports more efficient teamwork and improves the long-term sustainability of programming assets.
### Easier Sharing
Code, documentation, and supporting materials can be accessed through a common repository rather than being distributed across personal folders, network drives, or email chains. This reduces duplicate work, minimizes confusion around file ownership, and allows team members to quickly understand what already exists before creating new solutions. Increased visibility also encourages reuse of proven approaches, helping teams work more efficiently and consistently.
Git repositories can also serve as centralized locations for reusable utilities, templates, and packages, making it easier to share proven solutions across projects and reducing duplication of effort. By providing a common location for programming assets, Git promotes standardization and enables successful approaches developed in one project to be leveraged by others.
### Reproducibility
A repository preserves the exact versions of code used at any point in time. This makes it possible to recreate historical analyses, understand how results were generated, and recover prior states of a project when needed. Consistent access to versioned code strengthens confidence in analytical results, supports validation activities, and reduces the risk that important analyses cannot be reproduced in the future.
### Knowledge Retention
Projects often span many years, involve multiple contributors, and may outlive the tenure or availability of individual team members. Git captures not only the latest code but also its development history. This institutional knowledge remains available even when team members change roles, leave projects, or move to other organizations. By reducing reliance on individual expertise, Git helps teams maintain continuity and sustain quality over the long term.
## Automation
Git serves as the foundation for a growing ecosystem of tools that automate repetitive tasks and improve development workflows. By connecting code changes to automated processes, teams can spend less time on manual activities and more time on analysis and problem solving. Automation also helps ensure that routine checks are performed consistently every time code changes.
### CI/CD
When code changes are committed, Continuous Integration and Continuous Delivery (CI/CD) pipelines can automatically execute predefined workflows, such as running validation checks, executing tests, generating reports, or deploying applications. Automation reduces manual effort, promotes consistency, and helps identify issues sooner. By providing rapid feedback on code changes, CI/CD practices can improve both development efficiency and overall quality.
### Security Scanning
Modern Git platforms can automatically evaluate repositories for security vulnerabilities, outdated dependencies, or policy violations. Automated checks can identify potential concerns before code is released or shared, helping teams address issues earlier and with less manual effort.
### AI-Assisted Coding
AI-based development tools increasingly integrate directly with Git repositories and development workflows. Git provides the traceability needed to review, validate, and approve AI-generated changes using the same processes applied to human-written code. This allows teams to realize productivity gains while maintaining appropriate oversight, preserving quality standards, and ensuring that generated code remains subject to the same review and governance expectations as any other contribution.
This is particularly valuable when AI tools perform similar updates across many programs, such as implementing changes required by updates to standards, utilities, or common programming patterns. Git's comparison and review capabilities allow programmers to quickly identify what was modified, assess the impact of those changes, and gain confidence in the resulting implementation before it is incorporated into production code. Organizations may also choose to identify AI-assisted contributions through pull request conventions, labels, or other repository governance practices, making it easier to apply appropriate levels of review and oversight.
## Summary
Git does not improve quality through a single feature. Rather, quality emerges from the combination of traceability, collaboration, and automation. Together, these capabilities improve transparency, reproducibility, consistency, and efficiency, helping teams deliver high-quality analytical solutions while maintaining confidence in their development processes.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

github won't let me highlight such a long block, so I placed the suggestion here

## How AI can be used with Git

An AI agent can become a real assistant to the statistical programmer in a less risky approach. Using an AI agent inside of Git will allow statistical programmers to have a clear view on the updates made to the code via the Git history. It is really useful when several programs have to be updated (for instance, in the case of a version change in a sponsor's standard) and give user confidence in the agent. Git can be used in this case as a code review tool. Without Git, tracking the changes can easilly become more difficult.

## Security scanning

::: callout-important
(I need help for this part.)
:::

## Actions and CI/CD integration

Using Git in association with a code hosting platform (GitHub, GitLab, Bitbucket, etc.) allows an easy integration of specific actions and CI/CD pipelines that can work automatically on specific cases (pushing a branch, creating a pull request, etc). It means statistical programmers do not need anymore to run manually programs (for instance a batch list of ADaM datasets, then one for all of the QC, etc).

## History of commits

As mentionned previously, Git is made to have an history of changes in the code of a project. But these changes are not here only for the author of each specific part of the code. It is really useful for the entire team to understand how to code has evolved. In the case of a long duration clinical study, it is important to easilly understand the changes in the code (methodology addition of new variables, etc). In this way, Git is a great tool to keep track of all changes along the way of a project.

## View of all code & searchability

Even if the folder structure is not the same depending on the sponsor, Git allow to have a clear view of all the code inside a project. Especially when a Git repository is hosted on a platform, and because a Git project should not contain any data. It means that every statistical programmer could have the possibility to view the code of each project. This can be really useful to share and reproduce code, rather than having to request a restricted access to an SCE folder.

Additionally to that, working with a Git platform allows to create Git repositories for centralized programming or packages. If a code released on a specific study can indeed be directly used (or adapter) to every studies of a therapeutic area (or more), having this code stored in a general git repository will make code sharing easier.

::: callout-important
Not sure to understand what we're talking about here. Anyhow the folders structure depends of each sponsor.
:::


Loading