Good Programming Practice
NEW!! May 2013
- Study on Good Programming Practices
In 2012, the Steering Board for Good Programming Practice in Health and Life Sciences (GPP Board) initiated a study to assess the state of programming practices in health and life sciences organizations and the results from the first twenty participants are now available here.
The respondents represent a range of organizations, including pharmaceutical companies, biotechnology companies, CROs and consultancies. 70% of respondents had a GPP document to follow such as a guideline or SOP and of these, 80% were mandatory.
The GPP Board would like to thank all those who have responded so far and invite those who have not responded to take part in this ongoing study. Information about the study along with a participation link can be found on the Good Programming Practice page of the PhUSE wiki.
Contents |
Introduction
Good Programming Practice (GPP) is important within the life sciences and healthcare industries as an increased need for efficiency means that code that is clear, easy to maintain and efficient is more important than ever. Efficient code and best practices should not conflict with one another. It is essential to have various guidelines to govern and regulate code on clarity, efficiency, re-usability, adaptability and robustness.
Good Programming Practices :
- Ensure the clarity of the code and facilitate code review;
- Save time in case of maintenance, and ease the transfer of code among programmers or companies;
- Minimize the need for code maintenance by robust programming;
- Minimize the development effort by development and re-use of standard code and by use of dynamic (easily adaptable) code;
- Minimize the resources needed at execution time (improve the efficiency of the code);
- Reduce the risk of logical errors.
- Meet regulatory requirements regarding validation and 21CFRPart11 compliance
What is GPP
Some examples of GPP from the above definition:
- Clarity and ease of maintenance might be promoted by
- Use of headers
- Comments
- Self documenting code
- Style conventions (such as indenting, clear definition of datasteps and procedures)
- Robust programming can be met by
- Dynamic programming- writing programs to accommodate potential changes to data or specifications.
- Test first design
Articles on Good Programming Practice
Quick guide to GPP courtesy of Shafi Consultancy
The Steering Board for Good Programming Practice (GPP BOARD)
- Good Programming Practice Steering Board was established in late 2008, for the purpose of promoting and publicizing good programming practices within the life sciences and the healthcare industries.
- Currently there are eight active members worldwide in the GPP Steering Board with the common aim of driving the development and promotion of a uniform approach of GPP within the industry. The Practice encourages contributions from across companies, non-profit organizations and regulators through conference presentations at PharmaSUG, PhUSE, PSI, CDISC and collaborative contributions through the PhUSE wikis.
- Most companies with programming personnel have a document or guideline where they describe their good practices for deriving syntax. This document usually contains aspect of programming techniques such as
design appropriate use of macros and level of macros hard coding policy naming convention conservative strategies etc….
A key aim of the GPP board is to achieve a consensus recommendations for a consolidated guideline which could potentially replace these documents.
Click on this link for more information on GPP Steering Board.
Several of the boards key objectives relate to the PhUSE wiki.
- We are looking to establish a formal set of guidelines for GPP
- We want to establish a collection of ideas, opinions and hints and tips for GPP
Study on Good Programming Practices in Health and Life Sciences
Through this first study on GPP in health and life sciences, we are looking to understand
- Do you as Programmers or organisations use Good Programming Practices?
If so-
- Is this use mandatory?
- Which guidelines do you use?
- Which do you think are important?
- This study has two components, the first is to register and provide information on the good programming practices followed by your organization and the second is to participate in the SAS code review sub-study. The registration will establish a platform from which we can launch additional sub-studies to collect data on areas of interest based on input from study participants. The results of the study will be kept strictly confidential but will be presented in summary form at conferences, on discussion boards, and the GPP Board wiki on the PhUSE website. We look forward to opening a robust dialogue on good programming practices in health and life sciences so please join us on this exciting initiative.
Click on this link for more information about the study.
Or click on this link to go directly to the study registration https://www.surveymonkey.com/s/GPPSURVEY
How can you contribute?
- Add a new wiki page on a GPP topic. (Put the text [[Category:Good Programming Practice]] at the end of the article to enable searching for GPP)
- Make updates to existing pages
- If you have a brief comment or idea to contribute, please add to the talk page for the wiki.
- Get involved with the GPP board. We are currently welcoming new members.
- Follow this link for other pages related to GPP [1]
This is the place to share your ideas and post your contributions. Feel free to comment. We need your input!
Bibliography
Some useful further reading on GPP
Kirk Lafler Shares 25 Coding Techniques! 25 Best Practice Coding Techniques for SAS Users
Programming Guidelines (Lewin, L)
Good Programming Practices in SAS (Ford, J 2009)
Good Programming Practice in R (Maechler, 2004)
What Makes a Good Program? (Grundy, D 2010)
Macro Programming Best Practices:
Programming for Job Security Revisited