Quality control and standards for the development of open source code

Goal: ensure quality, regarding the outcome and regarding the process of development of open source modelling tools.

Development of the open source software:

  • Creating a community around the modelling tool
  • Documenting well, ensuring transparency and providing complete information and documentation on how to code or how to create modules to target specific problems
  • Structuring the community around the GitHub repository, to be sure to give recognition and keep track of who contributed to the development of different lines in the code
  • Checking quality and review processes through the community
  • Creating a test case study to check if proposed changes and enhancements work
  • Describing which kind of documentation need to be provided, and in which format, for each of the proposed enhancements/changes in the code
  • How to reference authors of code in publications? DOI? They should be mentioned in the software licence
  • How to establish quality standards?
    People can write small case studies to tests their code developments, but it would be useful to have one basic case study to be used as reference
    Guidelines to write tests for new branches might be provided
    It might be good to create minimal test cases that ensure old scripts still work

It is important to rely on the community around the tool for reviewing code:

  • There is problems because users do not necessarily report bugs but they may stop using the tool eventually if there are too many bugs
  • People identified as experts should have a look at the code

How to ensure/guarantee that the open source tool works well, it is reliable and solid:

  • Creating a steering committee for guiding and checking on the development and reliability of the tool
  • Assigns tasks to developers
  • Reviewers should report on quality of new features, preparing short paragraphs to be easily integrated in the tool manual
  • Package manager decides if it needs validation
  • There is the need to ensure transparency and open access to the information/documentation about the tool
  • Big open source projects can be example for quality management processes

Dissemination:

  • Sharing slides and teaching material under creative commons licence.

How can academia and open source software grow together:
In theory there is no problem, because normally it is on the result of the work or on the new method that used. The challenge is to deal with the common idea that your work is seen better if piles of code are produced.

Reducing the bus factor:
Scaling up the community, reaching out more users and committed developers are the key elements of success for communities with impact like Python; the code keepers should make sure that there are people with enough knowledge to take over and to follow up on the tool transparency, reliability and development.