diff --git a/main/about.md b/main/about.md index c983b97c..202837d5 100644 --- a/main/about.md +++ b/main/about.md @@ -1,5 +1,6 @@ --- title: About +order: 1 --- ## About the Research Software Support diff --git a/main/contribute.md b/main/contribute.md index 3e1d743e..22baef04 100644 --- a/main/contribute.md +++ b/main/contribute.md @@ -1,5 +1,6 @@ --- title: Contribute +order: 4 --- ## Contributing to the Research Software Support @@ -12,10 +13,7 @@ So first of all, thank you very much for your interest in contributing to this p Go to our github repository by clicking on the GitHub logo in the top right of this website. -* Contribute to the content discussion in the [chapter issues](https://github.com/esciencecenter-digital-skills/research-software-support/issues?q=is%3Aissue+is%3Aopen+label%3Astory), e.g. by listing good resources for information. -* [Author a lesson](#elements-of-a-module), e.g. by: - * [Creating slides](#slides) - * [Designing an exercise](#exercises) - * [Curating online resources](#online-resources) +* Contribute to the content discussion in the [module issues](https://github.com/esciencecenter-digital-skills/research-software-support/labels/module%20discussion), e.g. by listing good resources for information. * Review a lesson module; both by looking at [open PRs](https://github.com/esciencecenter-digital-skills/research-software-support/pulls), as well as flagging issues for improvement in the [existing content](https://esciencecenter-digital-skills.github.io/research-software-support/). -* [Provide feedback](https://github.com/esciencecenter-digital-skills/research-software-support/issues) on the different subjects covered: what did we miss? Should something be restructured? \ No newline at end of file +* [Provide feedback](https://github.com/esciencecenter-digital-skills/research-software-support/issues) on the different subjects covered: what did we miss? Should something be restructured? +* [Suggest a new entry] for the [Research Software Support Yellow Pages](/main/yellowpages) \ No newline at end of file diff --git a/main/yellowpages.md b/main/yellowpages.md new file mode 100644 index 00000000..be9dda8f --- /dev/null +++ b/main/yellowpages.md @@ -0,0 +1,36 @@ +--- +title: Yellow Pages +order: 3 +--- + +# Research Software Support Yellow Pages +*These yellow pages are work in progress and will keep expanding. They are meant to help you find the right person/organisation for each problem/topic you have to deal with regarding Research Software Support. Feel free to suggest an addition by following the [contributing guidelines](/main/contribute).* + +## Research Software Engineers communities and networks +- [NL RSE](https://nl-rse.org/) +- [Society of Research Software Engineering](https://society-rse.org/) + +## Open Science +- [Open Science NL](https://www.openscience.nl/en) +- [FOSS (Free and Open Source Software)](https://freeopensourcesoftware.org/) + +## FAIR +- [FAIR for Research Software](https://www.nature.com/articles/s41597-022-01710-x) +- [ReSA (Research Software Alliance)](https://www.researchsoft.org/) +- [RDA (Research Data Alliance)](https://www.rd-alliance.org/) +- [FORCE11 (Future of Research Communications and e-Scholarship)](https://force11.org/) + +## Research Software training/learning +- [Research Software Training](https://researchsoftwaretraining.nl) +- [Carpentries](https://carpentries.org/) +- [Code Refinery](https://coderefinery.org/) +- [The Turing Way](https://book.the-turing-way.org/) + +## Technical support +- [Netherlands eScience Center](https://esciencecenter.nl/) (Research Software / Training) +- [SURF](https://surf.nl/) (Academic ICT services / High Performance Computing / Data Storage) + +## Other +- [Practical Guide to Software Management Plans](https://zenodo.org/records/7248877) +- [Software Heritage](https://www.softwareheritage.org/) +- [Software Sustainability Institute](https://www.software.ac.uk/) diff --git a/modules/fairsoftware/exercise3.md b/modules/fairsoftware/exercise3.md deleted file mode 100644 index ec97fef4..00000000 --- a/modules/fairsoftware/exercise3.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: FAIR in practice -type: exercise -order: 4 ---- - -## Exercise: FAIR in practice - -Role playing exercise: -One person presents the software, the other person gives feedback. - -Tasks for presenter: - -- What is the software about? -- Who will use it? -- What is the expected lifecycle of the software? -- What potential users or applications are untapped? - -Tasks for reviewer: - -- Which FAIR principles are addressed? -- How can the software be made more FAIR? -- What would be the next step (low-hanging fruit)? - -Together: - -- Define the next steps for the software - - -Goals: - -- Frame an assessment positively: always start with assessing the things that have been done that contribute to good management and FAIR software. This is crucial, as well as motivating. \ No newline at end of file diff --git a/modules/fairsoftware/index.md b/modules/fairsoftware/index.md deleted file mode 100644 index ca783cf7..00000000 --- a/modules/fairsoftware/index.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: FAIR software -category: Getting started -order: 13 -abstract: FAIR stands for Findable, Accessible, Interoperable and Reusable. What does this mean for software? -author: eScience Center -thumbnail: "thumbnail-fair-software.jpg" -visibility: visible ---- - - diff --git a/modules/fairsoftware/info.md b/modules/fairsoftware/info.md deleted file mode 100644 index 77357436..00000000 --- a/modules/fairsoftware/info.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Learning objectives -type: info -order: 0 ---- - -Obtain the skills and knowledge necessary to address the following questions: -- What is FAIR software? -- Why should software be FAIR and how do I communicate that to researchers? -- What is the link between FAIR software, Open Science and software sustainability? -- How do I help researchers assess the FAIRness of their software? -- How do I advise and guide researchers on making their software more FAIR? diff --git a/modules/fairsoftware/reading.md b/modules/fairsoftware/reading.md deleted file mode 100644 index d1d5d88d..00000000 --- a/modules/fairsoftware/reading.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Further reading -type: reading -order: 5 ---- - -# Reading material - -## FAIR software -Follow the links below to read about other resources related to FAIR research software. - -### FAIR Research Software Principles adoption -The FAIR4RS Principles were [released in 2022](https://doi.org/10.15497/RDA00068), and since then there have been many efforts for adopting them. - -The blog post [The FAIR for Research Software Principles after two years: an adoption update](https://www.researchsoft.org/blog/2024-03/) contains a summary of these efforts. \ No newline at end of file diff --git a/modules/fairsoftware/slides-fairsoftware.md b/modules/fairsoftware/slides-fairsoftware.md deleted file mode 100644 index a7bf3a82..00000000 --- a/modules/fairsoftware/slides-fairsoftware.md +++ /dev/null @@ -1,324 +0,0 @@ ---- -title: FAIR software -type: slides -order: 1 ---- - - - -# FAIR software - -=== - - - -## *Ceci n'est pas une photo* - -
- -
- -[The Event Horizon Telescope Collaboration et al. 2019](https://doi.org/10.3847/2041-8213/ab0ec7) (CC BY 3.0) - -Note: - -Software plays an important role in science. A first thought may be its role in data collection and analysis. Further, it may play a role in designing experiments, based on models generated. It may _be_ the experiment itself, simulate a research outcome based on data or ideas entered; it may also be the "brain" behind controlling crucial instrumentation. - -What scientific software can you think of? - -What role does it play? - -An example here: the Event Horizon Telescope, which took a "picture" of a black hole. -The "telescope" is not a single tool, but complex: a "planet-scale array of eight ground-based radio telescopes" (wikipedia). -The separate telescopes collect data that is synchronized with atomic clocks, and the data is combined at highly specialised supercomputers. -The data can be converted into an image using custom software. - -=== - - - -
- -
- -definition of Research Software from the FAIR4RS working group - -Note: - -A definition of research software, from the FAIR4RS working group. -It is important that not all software that is used in research is research software. -For example, a text editor that is used to write a paper is not research software. -Nor is powerpoint, a web browser, or the software used to guide the telescope. -Even tools like R or Python are not necessarily research software. -The code written in R or Python for an analysis would be research software, however. -Just like a custom-made Excel macro that is used to analyse data. -Or a custom-made web application that is used to collect data. - -=== - - - -
- -
- -[UNESCO Recommendation on Open Science, 2021](https://creativecommons.org/2021/12/02/unesco-recommendation-on-open-science-ratified/) (CC BY IGO 3.0) - -Note: -Open Science encompasses many aspects of science. -It is a movement that aims to make science — which includes software — more open, transparent, and accessible. -This is supported by many organisations, including UNESCO. - -=== - - - -## The FAIR principles - -
- -
- -Note: -the FAIR principles standardize values that help openness, transparency, and accessibility. - -=== - - - -![screenshot Wilkinson 2016](media/fairwilkinson.png) - -Note: -FAIR principles were originally designed for data, but are also applicable to software. -Designed also with other digital objects in mind, though actual description was data-specific. -This has been extended meanwhile. - -=== - - - - -## Software is not data - -Software is... - -- **complex**: code is creatively generated, interconnected and multi-layered -- **interdependent**: it builds upon and therefore depends on other software -- **executable**: it is not static, but can be run -- **dynamic**: it can break over time, and versioning is common - -Note: -While technically, software is a special kind of data (in that it is representation of information in a digital state), they are in essence quite different. - -Software and data both are digital objects, sharing certain characteristics: they can be assigned a DOI, and they can have a license. - -Software is quite different from data, however. Consider: - -- Complexity; it is not a single file, but a collection of files that are interconnected and multi-layered, and do not necessarily stand on their own. Software is also the result of a creative process that provides a tool to do something, and not the result of a measurement or observation. -- Interdependence; software is often built using other software, and rarely built completely from scratch. This makes it dependent on other existing applications, which themselves may also change over time. -- Executability; software is in its dryest form a set of instructions that can be an archive of a procedure. However, the main goal of software is that these instructions can be executed. Data, by contrast, stand on their own. -- Dynamic vs static; its interdependence and context-dependency drives software to require maintenance to retain its value, and this maintenance is not straightforward. Maintenance is also counter to academic culture; it does not fit in existing structures (both in terms of reward/recognition, but also in terms of funding and understanding of what is needed). Versioning of software is very common, while data is often static (though versions may happen). - -=== - - - -## Software opportunities - -- Software is a **living thing** -- Creative process allows for **early adoption** of good practices -- Openness and transparency are **inherent** to software - - -Note: -The different nature of software also provides opportunities. -Software is a living thing, and therefore it is easier to adopt good practices early on. -Crucially, there is a community driven openness in software that long predates the open science movement. -This is not to say that software is inherently open, but that there is a broad open culture, which also comes with existing tools and pathways to facilitate openness and transparency. -Consider GitHub (and other code hosting platforms), which are designed for this purpose. -Consider also version control software, a good software development practice that builds in provenance. - -=== - - - -![FAIR for Research Software paper](media/fair4rs_paper.png) - -Fair 4 Research Software (FAIR4RS) working group (2022) -[doi:10.1038/s41597-022-01710-x](https://doi.org/10.1038/s41597-022-01710-x) - -![Contributing Organizations](media/fair4rs_logos.png) - -Note: -In 2022, the results of extensive community consultation were published in the FAIR for Research Software paper. -The group behind this was a collaboration between the Research Software Alliance, the Research Data Alliance, and FORCE11. - -=== - - - -![FAIR for Research Software principles](media/fair4rs_principles.png) - -Note: -These are the interpretations given to the FAIR principles for software by the working group. -In many cases these are rephrased to better fit software, but in some cases they are also extended. - -=== - - - -## Findability - -![FAIR4RS Findability](media/fair4rs_F.png) - -- Archive on Zenodo for DOI and persistence
- Note that persistence on GitHub is not guaranteed! -- Use (semantic) versioning with updates
- Zenodo assigns a DOI to each version -- Include metadata, explicitly containing the DOI
- but also license, version, dependencies, etc. -- Register the software in a community registry
- such as PyPI or CRAN, depending on the language/domain - -Note: -For software findability, a few things need to work together: - -The software needs to be archived on a platform that provides a DOI and persistence. GitHub is not guaranteed to provide this, and while it is a useful tool is not a suitable archive for software. -GitHub does work well together with Zenodo, which provides both. -Together they also provide functionality for versioning: when releasing a new version on GitHub, and using the Zenodo integration, Zenodo will update the entry and assign a new DOI to the new version. - -For software-specific findability, though, Zenodo is insufficient. Here, you can think of more specific registries, such as PyPI, CRAN, or Bioconductor; depending on the language and domain of the software. - -=== - - - -## Accessibility - -![FAIR4RS Accessibility](media/fair4rs_A.png) - -- Community registries provide standard download protocols
- e.g. `pip install my_software` -- Metadata on Zenodo is part of the persistent archive - -Note: -A lot of accessibility is covered by the findability principles, but there are a few additional things to consider. -Specifically, software may still be FAIR as long as its metadata is accessible. -The code of the software itself, not the actual functional engine, could be considered metadata. - -=== - - - -## Interoperability - -![FAIR4RS Interoperability](media/fair4rs_I.png) - -- Input and output both needs to meet community standards
- e.g. file formats, data models, ontologies -- References to external objects should be unambiguous
- use URLs, DOIs, version numbers etc. - -Note: -As with data, interoperability refers partly to formats and standards (in this case: inputs, outputs, or other objects used). For example CSV, JSON, and XML are interoperable formats, while PDF is not. -These standards may also be domain-specific, such as the use of ontologies in the life sciences. - -The second sub-principle refers to the use of unambiguous references to external objects, such as libraries, data, or models. A clear link allows the right object to be used by the software. - -=== - - - -## Reusability - -![FAIR4RS Reusability](media/fair4rs_R.png) - -- Include a software-specific license
- as a file called `LICENSE` in the project's root -- Many Open Source software licenses exist
- see [choosealicense.com](https://choosealicense.com/) -- License choice is not always straightforward
- confirm with dependencies, copyright holder(s), and specialists -- Use version control (e.g. Git) with a public host (e.g. GitHub)
- history and provenance is a public part of the repository -- Dependencies should be listed, and unambiguous
- use a standardized file/protocol, and version numbers - -Note: -Licenses are an important part of reusability. -Without a license, copyright disallows reuse. -In an open science context especially, Open Source licenses are the default choice. -They are numerous, but the choice is not always straightforward. -It is advised to learn about the different licenses, about important considerations (e.g. dependencies and the role and identity of copyright holders) and to consult with specialists when in doubt. - -=== - -### FAIR is not a quality checklist - -Software quality is addressed insofar as it affects: - -- usability, an aspect of interoperability -- maintainability, an important element of reuse - -Quality aspects *not* part of FAIR: - -- computational efficiency                                              -- functional correctness -- security -- ... - -Note: -The FAIR principles are limited in scope when it comes to software. -It is important to realize that their primary goal is not to address software quality itself. -FAIR software can be of poor quality, and good quality software may not be FAIR. - -Some quality aspects are addressed by FAIR, in particular usability and maintainability. -Because software is dynamic and interdependent, its reusability requires that it is maintained to continue to work (or that a conserved context is provided, such as a virtual machine with required dependencies). - -Secondary to maintainability are quality aspects like tests, modularized architecture, developer documentation, and so on. - -Interoperable software is usable by others, and therefore it is important that it is well documented and that it is easy to install and run. -This ties into quality aspects like user documentation, installation instructions, and so on. - -Note though, that there is no mention of correctness, nor of efficiency or security. -Software may adhere perfectly to FAIR, yet produce the wrong results, in a painfully slow and inefficient process, while leaking personal information. - -=== - - - -## FAIR is a spectrum - -
- -
- -Note: - -FAIR is not a checklist, but a set of principles. -As such, it informs a spectrum of software sustainability, and not a binary "FAIR or not FAIR". - -FAIR is not a perfect metric, but it is helpful, and tailored to specific values of open science. - -=== - - - -## Take home messages - -- Software is an important part of research -- FAIR4RS principles guide towards accessibility and openness of research software -- FAIR is not a quality checklist -- Software places unique demands on FAIR, and provides unique opportunities -- FAIRness is a spectrum - -=== - - - - -www.esciencecenter.nl - -info@esciencecenter.nl - -020 - 460 47 70 diff --git a/modules/softwarelandscape/exercise1.md b/modules/softwarelandscape/exercise1.md new file mode 100644 index 00000000..53bfd653 --- /dev/null +++ b/modules/softwarelandscape/exercise1.md @@ -0,0 +1,24 @@ +--- +title: Study & present +type: exercise +order: 2 +--- + +## Exercise: Study and present (20 - 30 minutes for 2-5 groups) + +Pick a concept, initiative or organization from this module's [slide deck](/modules/softwarelandscape/slides) or the [yellow pages](/main/yellowpages) related to the Research Software Landscape (or find one you think should be there and while you are at it, [start a contribution](/main/contribute)). + +Then do a little research: + +### Find out the following (10 minutes): + +1. What kind of "thing" did you choose? (e.g. an organization, group of people, document, set of guidelines, etc.) +1. What is the core purpose or central thought behind your chosen concept? +1. Is your chosen concept globally active, bound to a country or somehow geographically located somewhere? +1. Describe the timeline of your chosen concept: any relevant history, its inception, any updates, is it still active? +1. How can the scientific community benefit from this concept? +1. Are there other concepts related to your chosen concept? +1. What else can you tell? Spicy details, fun facts? + +### Present (4 minutes): +With your group, present what you learned in 4 minutes of which you reserve one minute for questions. \ No newline at end of file diff --git a/modules/fairsoftware/exercise2.md b/modules/softwarelandscape/exercise2.md similarity index 57% rename from modules/fairsoftware/exercise2.md rename to modules/softwarelandscape/exercise2.md index 4302818b..ee3ebccb 100644 --- a/modules/fairsoftware/exercise2.md +++ b/modules/softwarelandscape/exercise2.md @@ -4,44 +4,14 @@ type: exercise order: 3 --- -## Exercise: Mapping the principles +## **Exercise:** Mapping the principles -### The FAIR4RS Principles are: +Choose one of the three examples of software below. They have been described with statements that can be mapped to the FAIR4RS Principles. With each statement in the software description, identify the principle(s) it maps to, and the (sub)facet(s) of the principle(s) it addresses. A single statement may map to multiple (sub)facets. -#### F: Software, and its associated metadata, is easy for both humans and machines to find. +![FAIR for Research Software principles](media/fair4rs_principles.png) -- F1. Software is assigned a globally unique and persistent identifier. - - F1.1. Components of the software representing levels of granularity are assigned distinct identifiers. - - F1.2. Different versions of the software are assigned distinct identifiers. -- F2. Software is described with rich metadata. -- F3. Metadata clearly and explicitly include the identifier of the software they describe. -- F4. Metadata are FAIR, searchable and indexable. -#### A: Software, and its metadata, is retrievable via standardised protocols. - -- A1. Software is retrievable by its identifier using a standardised communications protocol. - - A1.1. The protocol is open, free, and universally implementable. - - A1.2. The protocol allows for an authentication and authorization procedure, where necessary. -- A2. Metadata are accessible, even when the software is no longer available. - -#### I: Software interoperates with other software by exchanging data and/or metadata, and/or through interaction via application programming interfaces (APIs), described through standards. - -- I1. Software reads, writes and exchanges data in a way that meets domain-relevant community standards. -- I2. Software includes qualified references to other objects. - -#### R: Software is both usable (can be executed) and reusable (can be understood, modified, built upon, or incorporated into other software). - -- R1. Software is described with a plurality of accurate and relevant attributes. - - R1.1. Software is given a clear and accessible license. - - R1.2. Software is associated with detailed provenance. -- R2. Software includes qualified references to other software. -- R3. Software meets domain-relevant community standards. - -### Three examples - -The following three examples of software have been described with statements that can be mapped to the FAIR4RS Principles. With each statement, identify the principle(s) it maps to, and the (sub)facet(s) of the principle(s) it addresses. A single statement may map to multiple (sub)facets. - -#### Example 1: [Comet](https://doi.org/10.1002/pmic.201200439) +### Software 1: [Comet](https://doi.org/10.1002/pmic.201200439) [Comet](https://doi.org/10.1002/pmic.201200439) is a command-line tool and desktop application for tandem mass spectrometry sequence database search6. @@ -53,7 +23,7 @@ The following three examples of software have been described with statements tha - Comet can be downloaded via the browser following the links provided in the metadata using https. - Comet uses standard data types from the proteomics domain for its input and output data that are documented in the metadata as functional annotations. -#### Example 2: [PureGoMe](https://doi.org/10.5281/zenodo.4337242) +### Software 2: [PureGoMe](https://doi.org/10.5281/zenodo.4337242) [PureGoMe](https://doi.org/10.5281/zenodo.4337242) is a project aimed at understanding Dutch public sentiment during the COVID-19 outbreak period by analysing real-time Twitter data. It provides a collection of Python scripts and Jupyter notebooks for this purpose. @@ -66,7 +36,7 @@ The following three examples of software have been described with statements tha - PuReGoMe refers to other objects such as websites. - PureGoMe is registered in the Research Software Directory that captures the most relevant metadata, including the identifier, in searchable and indexable form. -#### Example 3: [gammaShiny](https://doi.org/10.5281/zenodo.4139005) +### Software 3: [gammaShiny](https://doi.org/10.5281/zenodo.4139005) [gammaShiny](https://doi.org/10.5281/zenodo.4139005) is an application that provides enhanced graphical user interfaces for the R gamma package8. It is used to process in-situ gamma-ray spectrometry measurements for luminescence dating. diff --git a/modules/softwarelandscape/exercise3.md b/modules/softwarelandscape/exercise3.md new file mode 100644 index 00000000..73df67e2 --- /dev/null +++ b/modules/softwarelandscape/exercise3.md @@ -0,0 +1,46 @@ +--- +title: Role playing +type: exercise +order: 4 +--- + +## Exercise: Role playing exercise (15 minutes) +Pick a piece of software you know of or pick one from the following examples: + +- [ESMValTool](https://research-software-directory.org/software/esmvaltool) +- [LitStudy](https://research-software-directory.org/software/litstudy) +- [Haddock](https://research-software-directory.org/software/haddock3) +- [worcs](https://cjvanlissa.github.io/worcs/index.html) +- [democracy-topic-modelling](https://research-software-directory.org/software/democracy-topic-modelling) + + +One person (the researcher) takes some time to prepare to present a piece of software, while the other person reads up on the [reading materials](reading.md) from this module. + +Then you play out one of the following two situations: + +1. A researcher comes to a supporter with their piece of software and asks for support on managing it. +2. A research supporter approaches a researcher who is, according to the organization's records, a contributer to the software. + +Things for **the researcher** to be aware of and prepare before the conversation starts: + +- What is the software about? Describe its purpose. +- Who will use it? +- What is the expected lifecycle of the software? +- What potential users or applications are untapped? + +Things for **the research supporter** to ask about and be able to give support on: + +- Which FAIR principles are addressed? +- How can the software be made more FAIR? +- Is the software FOSS (Free and Open Source)? +- Is there an organization or person responsible for maintainance? +- What would be the next step (low-hanging fruit)? + +Together: + +- Define the next steps for the software + + +Goals: + +- Frame an assessment positively: always start with assessing the things that have been done that contribute to good management and FAIR software. This is crucial, as well as motivating. \ No newline at end of file diff --git a/modules/softwarelandscape/index.md b/modules/softwarelandscape/index.md new file mode 100644 index 00000000..404ff686 --- /dev/null +++ b/modules/softwarelandscape/index.md @@ -0,0 +1,12 @@ +--- +title: Software in the Scientific Landscape +category: Getting started +order: 13 +abstract: What role does software play in the scientific landscape? +author: eScience Center +thumbnail: "thumbnail-landscape.jpg" +visibility: visible +--- + +Photo by Kalen Emsley on Unsplash + diff --git a/modules/softwarelandscape/info.md b/modules/softwarelandscape/info.md new file mode 100644 index 00000000..b93b683c --- /dev/null +++ b/modules/softwarelandscape/info.md @@ -0,0 +1,10 @@ +--- +title: Learning objectives +type: info +order: 0 +--- + +Obtain the skills and knowledge necessary to address the following questions: +- Why do researchers write software themselves? +- What problems arise because of this? +- What initiatives exist to tackle these issues? \ No newline at end of file diff --git a/modules/softwarelandscape/media/RStraining.png b/modules/softwarelandscape/media/RStraining.png new file mode 100644 index 00000000..37aae96a Binary files /dev/null and b/modules/softwarelandscape/media/RStraining.png differ diff --git a/modules/fairsoftware/media/definition.png b/modules/softwarelandscape/media/definition.png similarity index 100% rename from modules/fairsoftware/media/definition.png rename to modules/softwarelandscape/media/definition.png diff --git a/modules/fairsoftware/media/fair.png b/modules/softwarelandscape/media/fair.png similarity index 100% rename from modules/fairsoftware/media/fair.png rename to modules/softwarelandscape/media/fair.png diff --git a/modules/fairsoftware/media/fair4rs_A.png b/modules/softwarelandscape/media/fair4rs_A.png similarity index 100% rename from modules/fairsoftware/media/fair4rs_A.png rename to modules/softwarelandscape/media/fair4rs_A.png diff --git a/modules/fairsoftware/media/fair4rs_F.png b/modules/softwarelandscape/media/fair4rs_F.png similarity index 100% rename from modules/fairsoftware/media/fair4rs_F.png rename to modules/softwarelandscape/media/fair4rs_F.png diff --git a/modules/fairsoftware/media/fair4rs_I.png b/modules/softwarelandscape/media/fair4rs_I.png similarity index 100% rename from modules/fairsoftware/media/fair4rs_I.png rename to modules/softwarelandscape/media/fair4rs_I.png diff --git a/modules/fairsoftware/media/fair4rs_R.png b/modules/softwarelandscape/media/fair4rs_R.png similarity index 100% rename from modules/fairsoftware/media/fair4rs_R.png rename to modules/softwarelandscape/media/fair4rs_R.png diff --git a/modules/fairsoftware/media/fair4rs_logos.png b/modules/softwarelandscape/media/fair4rs_logos.png similarity index 100% rename from modules/fairsoftware/media/fair4rs_logos.png rename to modules/softwarelandscape/media/fair4rs_logos.png diff --git a/modules/fairsoftware/media/fair4rs_paper.png b/modules/softwarelandscape/media/fair4rs_paper.png similarity index 100% rename from modules/fairsoftware/media/fair4rs_paper.png rename to modules/softwarelandscape/media/fair4rs_paper.png diff --git a/modules/fairsoftware/media/fair4rs_principles.png b/modules/softwarelandscape/media/fair4rs_principles.png similarity index 100% rename from modules/fairsoftware/media/fair4rs_principles.png rename to modules/softwarelandscape/media/fair4rs_principles.png diff --git a/modules/fairsoftware/media/fairwilkinson.png b/modules/softwarelandscape/media/fairwilkinson.png similarity index 100% rename from modules/fairsoftware/media/fairwilkinson.png rename to modules/softwarelandscape/media/fairwilkinson.png diff --git a/modules/fairsoftware/media/fiverecs.png b/modules/softwarelandscape/media/fiverecs.png similarity index 100% rename from modules/fairsoftware/media/fiverecs.png rename to modules/softwarelandscape/media/fiverecs.png diff --git a/modules/fairsoftware/media/fiverecs_1.png b/modules/softwarelandscape/media/fiverecs_1.png similarity index 100% rename from modules/fairsoftware/media/fiverecs_1.png rename to modules/softwarelandscape/media/fiverecs_1.png diff --git a/modules/fairsoftware/media/fiverecs_2.png b/modules/softwarelandscape/media/fiverecs_2.png similarity index 100% rename from modules/fairsoftware/media/fiverecs_2.png rename to modules/softwarelandscape/media/fiverecs_2.png diff --git a/modules/fairsoftware/media/fiverecs_3.png b/modules/softwarelandscape/media/fiverecs_3.png similarity index 100% rename from modules/fairsoftware/media/fiverecs_3.png rename to modules/softwarelandscape/media/fiverecs_3.png diff --git a/modules/fairsoftware/media/fiverecs_4.png b/modules/softwarelandscape/media/fiverecs_4.png similarity index 100% rename from modules/fairsoftware/media/fiverecs_4.png rename to modules/softwarelandscape/media/fiverecs_4.png diff --git a/modules/fairsoftware/media/fiverecs_5.png b/modules/softwarelandscape/media/fiverecs_5.png similarity index 100% rename from modules/fairsoftware/media/fiverecs_5.png rename to modules/softwarelandscape/media/fiverecs_5.png diff --git a/modules/softwarelandscape/media/foss.png b/modules/softwarelandscape/media/foss.png new file mode 100644 index 00000000..106248c3 Binary files /dev/null and b/modules/softwarelandscape/media/foss.png differ diff --git a/modules/softwarelandscape/media/landscape.jpg b/modules/softwarelandscape/media/landscape.jpg new file mode 100644 index 00000000..9c68d22c Binary files /dev/null and b/modules/softwarelandscape/media/landscape.jpg differ diff --git a/modules/fairsoftware/media/nlesc-dummy.png b/modules/softwarelandscape/media/nlesc-dummy.png similarity index 100% rename from modules/fairsoftware/media/nlesc-dummy.png rename to modules/softwarelandscape/media/nlesc-dummy.png diff --git a/modules/softwarelandscape/media/research-software-landscape-logos.svg b/modules/softwarelandscape/media/research-software-landscape-logos.svg new file mode 100644 index 00000000..49a2f4f1 --- /dev/null +++ b/modules/softwarelandscape/media/research-software-landscape-logos.svg @@ -0,0 +1,24957 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/fairsoftware/media/researchcycle.png b/modules/softwarelandscape/media/researchcycle.png similarity index 100% rename from modules/fairsoftware/media/researchcycle.png rename to modules/softwarelandscape/media/researchcycle.png diff --git a/modules/fairsoftware/media/spectrum.png b/modules/softwarelandscape/media/spectrum.png similarity index 100% rename from modules/fairsoftware/media/spectrum.png rename to modules/softwarelandscape/media/spectrum.png diff --git a/modules/fairsoftware/media/thumbnail-fair-software.jpg b/modules/softwarelandscape/media/thumbnail-fair-software.jpg similarity index 100% rename from modules/fairsoftware/media/thumbnail-fair-software.jpg rename to modules/softwarelandscape/media/thumbnail-fair-software.jpg diff --git a/modules/softwarelandscape/media/thumbnail-landscape.jpg b/modules/softwarelandscape/media/thumbnail-landscape.jpg new file mode 100644 index 00000000..d7cdf261 Binary files /dev/null and b/modules/softwarelandscape/media/thumbnail-landscape.jpg differ diff --git a/modules/fairsoftware/media/unescoopenscience.png b/modules/softwarelandscape/media/unescoopenscience.png similarity index 100% rename from modules/fairsoftware/media/unescoopenscience.png rename to modules/softwarelandscape/media/unescoopenscience.png diff --git a/modules/fairsoftware/exercise1.md b/modules/softwarelandscape/reading.md similarity index 67% rename from modules/fairsoftware/exercise1.md rename to modules/softwarelandscape/reading.md index 353d4646..93e0136a 100644 --- a/modules/fairsoftware/exercise1.md +++ b/modules/softwarelandscape/reading.md @@ -1,34 +1,27 @@ --- -title: What is FAIR? -type: exercise -order: 2 +title: Further reading +type: reading +order: 5 --- -## Exercise: What is FAIR? +# Reading material -### FAIR principles (15 minutes) - -The FAIR principles are: +## FAIR software +Follow the links below to read about other resources related to the FAIR principles for research software. -- **F**indable -- **A**ccessible -- **I**nteroperable -- **R**eusable +### FAIR principles (15 minutes) -They were originally introduced in [this paper by Wilkinson et al.](https://doi.org/10.1038/sdata.2016.18). +The FAIR principles were originally introduced in [this paper by Wilkinson et al.](https://doi.org/10.1038/sdata.2016.18). This paper is a good starting point to learn more about FAIR, but if you are already familiar with the concept, a quick skim of the paper should do. The most important take-away from this particular paper is the point that FAIR, while originally a data-specific concept, was designed with other digital objects in mind as well. ### FAIR software (10 minutes) To extend the FAIR principles to software, the [FAIR 4 Research Software working group](https://force11.org/groups/fair-4-research-software-fair4rs-working-group/) was formed. -Their paper [Introducing the FAIR principles for research software](https://doi.org/10.1038/s41597-022-01710-x) describes in more practical terms how FAIR can be applied to software. -#### You should now be able to +The FAIR4RS Principles were [released in 2022](https://doi.org/10.15497/RDA00068), and since then there have been many efforts for adopting them. -- Understand the different facets of FAIR -- Be aware of the machine-actionable nature of FAIR -- Get a feeling for additional challenges that software poses to FAIR +Their paper [Introducing the FAIR principles for research software](https://doi.org/10.1038/s41597-022-01710-x) describes in more practical terms how FAIR can be applied to software. ### FAIR software (20 minutes, optional) @@ -37,8 +30,6 @@ While the intepretation of the FAIR4RS working group has been the dominant set o The paper is a more elaborate in its descriptions of software, the different aspects of software, and how they are or are not addressed by FAIR. It is a good read if you want to get a deeper understanding of software and its relation to the FAIR principles. -### Discussion +### FAIR Research Software Principles adoption -- What are the differences between FAIR principles for data and software? -- What challenges do you see in making software FAIR? -- Why is FAIR software important? \ No newline at end of file +The blog post [The FAIR for Research Software Principles after two years: an adoption update](https://www.researchsoft.org/blog/2024-03/) contains a summary of these efforts. \ No newline at end of file diff --git a/modules/softwarelandscape/slides.md b/modules/softwarelandscape/slides.md new file mode 100644 index 00000000..b03bb1cc --- /dev/null +++ b/modules/softwarelandscape/slides.md @@ -0,0 +1,226 @@ +--- +title: Software Landscape +type: slides +order: 1 +--- + + + +# Software in the Research Landscape + +=== + + + +### Why do researchers write software? +**Trends in research** +- Research depends on building on previous research +- Research increasingly depends on software/code +- Researchers want/need control over their methods + +== + + +### Why do researchers write software? +**Existing software is not ... enough** + +- Existing software is not *bleeding edge* +- Existing software is often closed source +- Using closed-source software decreases flexibility +- Closed-source software hides the research method + +== + + +### Problems in research software + +- **So** researchers often write software themselves +- **But** researchers are not trained as software engineers +- **And** Software is not (yet) regarded as valuable research output + +Note: +First is a true statement. +Second statement describes a problem with code quality, sustainability and reproducibility +Third statement uncovers a problem with attribution, funding, etc. + +== + + +### This results in problems with: + +- Software quality and sustainability +- Reproducibility of research +- Attribution for researchers writing code +- Funding for research software + +=== + + +## Current Landscape + + + +note: +Many initiatives have been started to solve the problems that were mentioned. + +- Research Software Engineers communities and networks +- Open Science +- FAIR for Research Software + - [ReSA (Research Software Alliance)](https://www.researchsoft.org/) + - RDA (Research Data Alliance) + - FORCE11 (SCholarly Communication) + +- FOSS (Free and Open Source Software)(https://freeopensourcesoftware.org/) +- Software Heritage (https://www.softwareheritage.org/) +- Research Software training + - Carpentries + - Code Refinery + - The Turing Way + +- Software Management Plan working group (NWO, eScience Center) + +=== + + + +## The worldwide RSE movement + + + +[The national associations around the world as at 2023. (image courtesy of Ian Cosden, US RSE Association)](https://www.fz-juelich.de/en/rse/about/rse-worldwide) + +Note: +RSE stands for Research Software Engineer. This is a person that writes or contributes to Research Software. +The community of RSE's is growing and many strive for recognition of the RSE trade and respecting software as scientific output. + +The eScience Center published their role description of RSEs in general and a job profile specific to RSEs at the eScience Center. + +=== + + +## Open Science + + + +[UNESCO Recommendation on Open Science, 2021](https://creativecommons.org/2021/12/02/unesco-recommendation-on-open-science-ratified/) (CC BY IGO 3.0) + +note: +Open Science encompasses many aspects of science. +It is a movement that aims to make science — which includes software — more open, transparent, and accessible. +This is supported by many organisations, including UNESCO. The Netherlands recently started its own program dedicated to open science called "Regie Orgaan Open Science NL" + +=== + + +## The FAIR principles + + + +note: +The FAIR principles standardize values that help openness, transparency, and accessibility. + +== + + + +## FAIR (for data) + +![screenshot Wilkinson 2016](media/fairwilkinson.png) + +note: +FAIR principles were originally also with other digital objects in mind than just plain research data, though the actual description was very data-specific. +This has been extended meanwhile. + +== + + + +## FAIR (for software) + +![FAIR for Research Software paper](media/fair4rs_paper.png) + +![Contributing Organizations](media/fair4rs_logos.png) + +note: +In 2022, the results of extensive community consultation were published in the FAIR for Research Software paper. +The working group behind this was a collaboration between the Research Software Alliance, the Research Data Alliance, and FORCE11. + +== + + + +## FAIR (for software) + +![FAIR for Research Software principles](media/fair4rs_principles.png) + +Note: +These are the interpretations given to the FAIR principles for software by the working group. +In many cases these are rephrased to better fit software, but in some cases they are also extended. + +=== + + + +## Training + + +![Research Software Training logo](media/RStraining.png) + +https://researchsoftwaretraining.nl/ + + +Note: +The dutch research software training network brings together all initiatives on training for research software and related topics. You may know of the Carpentries, and you might be following these materials because you know of the Netherlands eScience Center's training program, but there is much more! + +=== + + + +## Challenges of the Research Software Landscape +- Still developing +- As a result: + - Lots of uncertainty + - Few policies and job positions + - Researchers might not be aware of the issue +- How can we activate the scientific community? + +Note: +- Discuss diversity of research support and the current state of the landscape (still developing, lots of uncertainty, non-existence of policies and actual positions) +- Discuss reason why this is important and it should be on the agenda +- Discuss that they might not get any questions about this, because researchers are not aware. They don't know they should ask, or what to ask. This might change once NWO implements the software management plans as requirement for grant applications. + +== + + +## Practical implications for your work + +- Educate yourself and your surroundings +- Familiarize yourself with your institute's software +- Reach out to researchers (in a friendly manner) if they do not come to you +- Inquire about software policies with management +- Be aware that researchers might not be too willing + +=== + + + +## Take home messages + +- Software is an important part of research +- Some problems arise due to the combination of: + - the role of software in research + - the nature of software + - how software is developed +- Many initiatives have started in the last decade to tackle these issues +- The landscape is still under heavy development + +=== + + + + +www.esciencecenter.nl + +info@esciencecenter.nl + +020 - 460 47 70