-
Notifications
You must be signed in to change notification settings - Fork 4
50 change management and git #74
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
6212bee
8f7f48b
3ca4840
fff33d1
00839b6
634f13a
96a229d
2875eb0
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -1,5 +1,79 @@ | ||||||
| # Change Management and Git | ||||||
|
|
||||||
| This chapter will discuss challenges in adoption of Git as well as how these might be addressed. | ||||||
| ## Introduction | ||||||
|
|
||||||
| Statistical programmers in the pharmaceutical industry operate in a highly regulated environment where validated, reproducible analysis is paramount. For several years, the standard workflow has revolved around statistical computing environments managed through shared network drives, strict naming conventions, and manual version control practices (saving files with incremental version numbers or descriptive suffixes before archiving) or with regular server backups. These habits, while informal, have been deeply embedded in day-to-day practice and have served as the de facto audit trail in many organizations. | ||||||
|
|
||||||
| Introducing Git into this context presents a unique set of challenges that go beyond mere tool adoption. It relies on notions such as sub-branches linked to a main branch, commits, remote repositories and merges, that can be difficult to adopt for teams used to work in other environments. The learning curve can be difficult and requires to embrace a more collaborative and transparent workflow. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
|
||||||
| Furthermore, the regulatory framework of the pharmaceutical industry is strict. Any change management system touching analysis code or submission-relevant outputs must be set in a GxP environment. Git must be used in a way that ensures theses compliances (traceability, audit, etc). | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
|
||||||
| Organizational culture also plays a significant role. Statistical programmers often work independently or in small teams with well-established personal workflows. Moving to a Git focused workflow requires not only technical training, but to being open to new mindsets and ways of working. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
|
||||||
| ## The Change Curve | ||||||
|
|
||||||
| The Change Curve is a well known model for understanding how employees resond to change @HOLDSWORTH2024254. While there are many different implementations of it, generally speaking it is understood to be split into two main phases, first of resistance and then of acceptance. An important attitude in any company trying to make any sort of change, be it organisational or technological, is to have empathy for those individuals who are experiencing it, and give them the support they need. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I feel that it is likely better to use more than just two phases to describe the curve. Even better is if we can add an image depicting the curve.
Suggested change
|
||||||
|
|
||||||
| We must understand that any change will take time to embed into an organisation, and the main thing we can influence is how fast that change goes, and how well we can adopt the technology. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "and how well we can adopt the technology"--what does this mean? |
||||||
|
|
||||||
| In this chapter we will mostly ignore the how of using Git within your company (for more, please see the [recommendations](recommendations.qmd) chapter), and look instead about the things you can do to support your team as they learn to adopt Git in practice. | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
|
|
||||||
| ## Benefits of Git for statistical programmers | ||||||
|
|
||||||
| One important lesson from companies that have already experienced the transition to using Git is that, because Git can be a challenging technology to adopt at first, it can be easy to lose sight as to why this change is being made. | ||||||
|
|
||||||
| To combat this difficulty, we recommend highlighting early and often the benefits of adopting Git in practice. These are covered in more detail in the chapter on [benefits](benefits.qmd), but things you can easily show to someone who is learning Git: | ||||||
|
|
||||||
| 1) The easy audit trail on a Github repository, and the ability to view code at different points in time trivially | ||||||
| 2) Pull Requests, and the ability to review code line by line and provide easy feedback | ||||||
| 3) AI Integrations which can improve code review in practice | ||||||
| 4) Findability and searchability of code | ||||||
|
|
||||||
| All of these are very easy to show quite quickly, and should not be forgotten when trying to bring someone into a new technology | ||||||
|
|
||||||
| ## Introducing tools | ||||||
|
|
||||||
| Depending on your company's size and how they want to use Git, there a number of tools to interact with Git and Github. These are covered more in the [appendix](tools.qmd), but your decision is likely to be motivated based on how close you want users to interact with Git. | ||||||
|
|
||||||
| You may decide that you wish to abstract users access to Git or you might decide that you wish to get users comfortable with direct Git terminal access. Different tools will enable different approaches. | ||||||
|
|
||||||
| Note that of course you are not limited to using any one tool, and can make multiple available to support different workflows and different levels of ability in your user base. The important thing when it comes to managing change is to make it clear to individuals what tools are for, and when they are using them. For consistency, it may be wise to limit teams that work together to at most two common tools. | ||||||
|
|
||||||
| ## Preparing Documentation | ||||||
|
|
||||||
| There are a number of excellent resources for learning Git online. This means that when creating internal documentation on Git it is important to focus on how your organisation will be using Git in practice. | ||||||
|
|
||||||
| Your documentation should focus first on the ways someone will work in their day to day, covering the typical flow and where possible integrating it into the tools they are likely to use. Documentation should be easy to access and use, and easy to search. We recommend where possible to not include this level of documentation in GxP training, as the latter is likely to be in systems that can be harder to update quickly based on user feedback. | ||||||
|
|
||||||
| GxP training is of course important to meet our compliance requirements, but we can normally build training on top of it which enables more dyanmic updates as you get feedback from users on what works and what does not. | ||||||
|
|
||||||
| ### Failure cases | ||||||
|
|
||||||
| An important resource to build over time is how to resolve issues that might occur when using Git. The exact nature of the issues are likely to run into will be specific to your organisations workflow but some likely common issues are | ||||||
|
|
||||||
| - Merge conflicts and how to resolve them smoothly | ||||||
| - Undoing things (git reset and revert) | ||||||
| - Not being able to switch brances (git stash) | ||||||
|
|
||||||
| Having simple, easy to understand guides to help in these cases can be very useful. These are things that can be taught, but don't come up frequently enough for the knowledge to necessarily be embedded, so having clear instructions on these can greatly improve Git adoption. | ||||||
|
|
||||||
|
|
||||||
| ## Practical examples as training | ||||||
|
|
||||||
| When teaching users to use Git, we should always focus on practical examples which relate as closely to how the user will be applying Git in practice. While for fundamentals it can be helpful to be artificial, as soon as your users have grasped the basic, we strongly encourage examples that involve practicing the workflow they do in person. | ||||||
|
|
||||||
| Where possible trainings should be live, and in person if it is possible to arrange, to allow maximum engagement. | ||||||
|
|
||||||
| One vital aspect is that training should be targetted only at individuals who are going to be adopting the Git workflow very soon, or who are already adopting it. This means that what they have learnt can be applied straight away, removing the danger of knowledge atrophying during use. Related to this, if you can train cohorts of users who will be working together, this can be very useful as they will be able to learn and practice together. | ||||||
|
|
||||||
| ## Feedback and checking in | ||||||
|
|
||||||
| One important way to manage change in an organisation is to demonstrate that you are open to feedback, and responding to it. This means you must be actively seeking out feedback, not just passively waiting for it. Consider small focus groups, arranging meetings with key thought leaders, alongside regular surveys of sentiment. | ||||||
|
|
||||||
| When taking feedback, it is important to understand the context in which it is delivered. Try to not be too reactive: making changes immediately may not be the best course of action, but try to fully understand what the individual is saying and how you can best address it. In some cases, it may truly be that the Git workflow your organisation has chosen to adopt is not fit for purpose, but in others it may be that you need better training and support to help users address scenarios they do not currently understand. | ||||||
|
|
||||||
| When you do make changes based on feedback, make sure you communicate them clearly, and make clear the reason you chose to adopt them. | ||||||
|
|
||||||
| ## Conclusion | ||||||
|
|
||||||
| Any kind of change can have large impacts on an organisation, and Git as a technology can definitely cause some friction. Just like with all changes, provided it is handed well and responsively, then within a few years the use of Git will simply be the new normal. | ||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| # Benefits | ||
|
|
||
| ## Introduction | ||
|
|
||
| This chapter aims to include at a high level some benefits for using Git in clinical development. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.