Good Programming Practice
NEW!! October 2015
- GPP at PhUSE 2015
The following presentations from the team are at this years PhUSE conference
- Paper PD09: Industry Standard for Good Programming Practice: Benefits and Implementation
- GPP Board- Volunteers Needed
The GPP board are currently looking for volunteers. There are opportunities for getting involved in presenting, developing training material and to help steer our overall activities.
Please contact anyone on the GPP board if you are interested.
Please see the GPP guidance here http://phusewiki.org/wiki/index.php?title=Good_Programming_Practice_Guidance
and details and contacts for the GPP board here http://www.phusewiki.org/wiki/index.php?title=Good_Programming_Practice_Steering_Board
- GPP at PhUSE 2014 London
Good Programming Practice returned to the PhUSE conference in London with an interactive discussion club. We invited to you come along and have your say. The general theme was implementation and adoption of GPP.
- How can we ensure adoption of the PhUSE GPP guidance?
- How do we implement GPP in programming teams ?
- Review and discussion of examples of good and bad programming practice
Initial notes from the London Discussion club are here Discussion_Club:_Good_Programming_Practice_London_2014
- AUGUST 2014: The updated GPP Guidance version 1.1 is available for use and further comments
- 1 NEW!! October 2015
- 1.1 Introduction
- 1.2 What is GPP
- 1.3 The Steering Board for Good Programming Practice (GPP BOARD)
- 1.4 Good Programming Practice Guidance
- 1.5 Articles on Good Programming Practice
- 1.6 Good Programming Practice conferences and discussions clubs
- 1.7 Study on Good Programming Practices in Health and Life Sciences
- 1.8 How can you contribute?
- 1.9 Bibliography
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
- 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
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.
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
Good Programming Practice Guidance
The first stable version of the guideline has been published and is available as an MS Word document for adoption by organizations
File:GPP Guidance Document v1.docx
The guideline is open for public comment through the wiki
GPP Guidance Document Wiki
Articles on Good Programming Practice
Good Programming Practice conferences and discussions clubs
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?
- 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.
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 
This is the place to share your ideas and post your contributions. Feel free to comment. We need your input!
Some useful further reading on GPP