Participants: Andrew Tait; Barteld Braaksma; Christie Glover; Craig Lindenmayer; Francesco Isidori; Inkyung Choi; Jonathan Challener; Jonathan Wylie; Karl McKenzie; Kate Burnett-Isaacs; Kevin Townend; Li Wang; Lorenzo Asti; Marcello D'Orazio; Pierpaolo Massoli; Pubudu Senanayake; Samanta Pietropaoli; Vytas Vaiciulis
Open-Source Software Project – Kick Off Meeting Minutes
Quick Summary:
The discussion primarily revolved around questions of governance, culture, maintenance, and discoverability in relation to open-source (OS) software.
There was a desire expressed to not retread covered ground, but to explore something new.
Common concerns were about OS maintenance (one’s own code and other dependencies) and understanding the culture of OS.
Potential deliverables could include:
- Developing general guidance (i.e., a list of best principles) for managing your OS software.
- Creating standards for code commenting and general OS knowledge management among NSOs.
- Exploring OS culture: Learn from current examples (Linux, R etc.) and analyze how they arise, and how they are maintained.
- Determining best practices for managing dependencies, including understanding links between various packages and their dependencies, and handling the risk of dependence losing support.
- Developing a discoverable list of OS software where the relations between the software are indicated and/or methods for searching for OS software (e.g., standards around OS metadata, query development or guidance on querying).
Full Notes:
1 Initial Placeholder Project Outline (subject to potential complete revision)
- Explore Generic Aspects
- Guidelines, Principles, Frameworks.
- Investigate Use Cases
- Co-development, community building
- Management, synergies, and communication
2 Previous & Current OS Work
- HLG-MOS OS Activities & Projects:
3 Housekeeping
- The project will continue until the next HLG-MOS workshop, which most likely will be in November this year.
- The project can be extended if needed.
- A wiki space has been set up for the project: https://statswiki.unece.org/display/OSSP
- Those without access to the wiki should let Andrew know (tait1@un.org)
- Andrew will create wiki user accounts for Li Wang, Marcello D’Orazio, Pierpaolo Massoli, Kevin Townend, Francesco Isidori, and Lorenzo Asti.
- Andrew will update Kate Burnett-Issacs’s user details.
4 Common Understanding
- The project should ideally cover new ground. For example:
- How can we go beyond merely sharing OS code and repos, and instead share and collaborate on best practices relating to OS use, development, and maintenance?
- Part of OS culture is not just usage of OS, but also giving back to the OS community. How is this done and how is this done best?
- How can support for OS be done at the enterprise level?
- Note: This can be a particularly difficult issue for smaller organisations.
- When does it make sense to invest in OS compared to buying software where the maintenance and security burdens are managed externally?
- Should practices be standardized across NSOs? If so, then how?
5 Topics Raised In The Meeting
5.1 Governance
- Licensing:
- What licenses are best to use?
- How to ensure that code developed by offices is not taken and monetized by the private sector?
- Models of Governance:
- What examples already exist of governance structures for OS software?
- How can others best learn from these examples?
- Support:
- The move to OS comes with a change of responsibility in terms of software management, from IT to statisticians, analysts etc. How can this challenge be managed?
- How do we avoid being tied to anchors of support?
g. how to we avoid one person being key to the continuing functioning of an OS package? - What is a reasonable amount to support to provide for your OS packages?
- Should that support be ringfenced? I.e. limited somewhat within the NSO community?
- How do you set reasonable expectations for your OS packages?
- How does OS culture emerge?
e.g. Linux, CRAN- The R community is another example. However, it is run by volunteers, whereas we wish to create such a community with staff, which may inform the lessons drawn from such an example.
- How can we foster the emergence of OS culture?
- How does Peer Review of OS work?
- It is noted that one benefit that NSOs have is that they are not in competition with each other, so there is no conflict of interest in co-development.
- How is OS culture maintained?
- How to approach OS culture development with Executives?
- No “free lunch”(OS requires investment).
- How best to combat OS myths? (OS culture doesn’t necessarily happen organically).
5.3 Discoverability
- Is it possible to create a discoverable list of OS software for NSOs?
- This already exists in at least in one form at least: CBS’s Awesome List
https://github.com/SNStatComp/awesome-official-statistics-software - Ideally, what is desired is a searchable list where relations between OS solutions are indicated (e.g., which packages depend on which other packages)
- The list should have greater functionality: e.g., there should be a way to indicate when a tool is in trouble (lack of updates, full of bugs etc. [i.e., signs of no support])
- How would the list be maintained?
- How do you ensure that your published OS is seen by others?
- How do you check for OS solutions so that you don’t accidentally re-invent the wheel?
- Is there metadata that can be applied to OS software that could facilitate discoverability?
- Is/can this metadata be standardized?
5.4 Maintenance
- Knowledge Management:
- How can code commenting & documentation be standardized across NSOs?
- What practices can facilitate OS maintenance? E.g., coding in the open.
- Risk Management:
- How to deal with dependencies?
- What happens when they’re unsupported?
- Note: Old code isn’t a problem unique to OS. Old Code written in SAS, VBA etc. also can develop issues from lack of maintenance.
- How to avoid over reliance on any one individual to maintain OS code/packages?
6 Potential Deliverables:
- Developing general guidance (i.e., a list of best principles) for managing your OS software.
- Creating standards for code commenting and general OS knowledge management among NSOs.
- Exploring OS culture: Learn from current examples (Linux, R etc.) and analyze how they arise, and how they are maintained.
- Determining best practices for managing dependencies, including understanding links between various packages and their dependencies, and handling the risk of dependence losing support.
- Developing a discoverable list of OS software where the relations between the software are indicated and/or methods for searching for OS software (e.g., standards around OS metadata, query development or guidance on querying).