Quality aspects: Usability

Importance of quality aspects

Importance of quality aspects

Implementation of quality aspects

Implementation of quality aspects

Tools to Optimize usability of GUI or API

  Which specific guidelines or tools are you aware of that help to enable the quality aspects? Provide short descriptions and/or URLs if possible, leave empty if there are no specific guidelines or tools. Optimize usability of GUI or API :Guidelines Which specific guidelines or tools are you aware of that help to enable the quality aspects? Provide short descriptions and/or URLs if possible, leave empty if there are no specific guidelines or tools. Optimize usability of GUI or API :Tools
7 User-centered design principles, UX best practices Figma for UI/UX design, Swagger for API documentation
12 no guidelines besides using OpenAPI/W3C standards  

Tools to Provide packaging and containerization

  Which specific guidelines or tools are you aware of that help to enable the quality aspects? Provide short descriptions and/or URLs if possible, leave empty if there are no specific guidelines or tools. Provide packaging and containerization :Guidelines Which specific guidelines or tools are you aware of that help to enable the quality aspects? Provide short descriptions and/or URLs if possible, leave empty if there are no specific guidelines or tools. Provide packaging and containerization :Tools
6 various trainings, e.g. via the HSF training efforts, HSF working group on packaging  
7 Containerization best practices for reproducibility and deployment Docker for containerization, Kubernetes for container orchestration
8 https://escape-ossr.gitlab.io/ossr-pages/page/services/containerization/ Docker etc.
10 Part of the OSSR guidelines https://escape-ossr.gitlab.io/ossr-pages/page/contribute/guidelines_ossr/
12 Creating packages from different programming languages for package managers. Create docker containers (e.g., through actions) https://www.freecodecamp.org/news/how-to-create-and-upload-your-first-python-package-to-pypi/ https://www.docker.com/101-tutorial/

Tools to Ensure compatibility with different platforms

  Which specific guidelines or tools are you aware of that help to enable the quality aspects? Provide short descriptions and/or URLs if possible, leave empty if there are no specific guidelines or tools. Ensure compatibility with different platforms:Guidelines Which specific guidelines or tools are you aware of that help to enable the quality aspects? Provide short descriptions and/or URLs if possible, leave empty if there are no specific guidelines or tools. Ensure compatibility with different platforms:Tools
6 architecture agnostic programming, e.g. via GPU abstraction layers (SYCL, Alpaka, Kokkos, …)  
7 Cross-platform development practices, responsive design principles BrowserStack for cross-browser testing, Electron for building cross-platform desktop apps
12 no guidelines  

Tools to Register in software repositories

  Which specific guidelines or tools are you aware of that help to enable the quality aspects? Provide short descriptions and/or URLs if possible, leave empty if there are no specific guidelines or tools. Register in software repositories :Guidelines Which specific guidelines or tools are you aware of that help to enable the quality aspects? Provide short descriptions and/or URLs if possible, leave empty if there are no specific guidelines or tools. Register in software repositories :Tools
6 Many codes are available either on github.com or gitlab.cern.ch  
7 Best practices for software repository registration and metadata GitHub, GitLab
10 Rules of participation in OSSR https://escape-ossr.gitlab.io/ossr-pages/page/contribute/guidelines_ossr/
12 We mandate storing code in GitHub for maintaining software projects  

Tools to Make the code citable

  Which specific guidelines or tools are you aware of that help to enable the quality aspects? Provide short descriptions and/or URLs if possible, leave empty if there are no specific guidelines or tools. Make the code citable :Guidelines Which specific guidelines or tools are you aware of that help to enable the quality aspects? Provide short descriptions and/or URLs if possible, leave empty if there are no specific guidelines or tools. Make the code citable :Tools
2 Use GitHub repos + Zenodo to obtain a DOI. If you develop workflows, you can also rely on WorkflowHub  
6 Advocating for “CIF” files in repositories, effort within HEP for citing code mainly driven by Daniel Katz https://arxiv.org/abs/2309.14571
7 Guidelines for creating and managing persistent identifiers Zenodo for archiving and making code citable with DOIs, Figshare for data sharing and citation
10 Usually meta data guidelines are given - including DOI minting, here the OSSR guid https://zenodo.org/doi/10.5281/zenodo.7540575
12 Bibtex in README, or use CFF https://citation-file-format.github.io/
15   Zenodo

Tools to Apply a license

  Which specific guidelines or tools are you aware of that help to enable the quality aspects? Provide short descriptions and/or URLs if possible, leave empty if there are no specific guidelines or tools. Apply a license :Guidelines Which specific guidelines or tools are you aware of that help to enable the quality aspects? Provide short descriptions and/or URLs if possible, leave empty if there are no specific guidelines or tools. Apply a license :Tools
2 Check the licences of all the dependencies are compatible with your development licence, using tools to automate those checks  
6 The CERN open software programming office (OSPO) and the HSF licensing working group provide guidence for licensing https://opensource.web.cern.ch/welcome-ospo-page https://hepsoftwarefoundation.org/activities/licensing.html
7 Open-source licensing practices and compliance Open Source Initiative for information on open-source licenses.
10 Usually meta data guidelines are given - including adding a license, here the OSSR guide https://zenodo.org/doi/10.5281/zenodo.7540575
12 State license in code and in the source code repository https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository
15 open-source and permissive  

Auto-created summary

Summary of Practices

  • User-Centered Design Principles
    • Importance of design principles and UX best practices to optimize GUI or API usability.
  • Containerization Best Practices
    • Use of containerization for reproducibility and deployment with tools like Docker and Kubernetes.
  • Cross-Platform Development Practices
    • Ensure compatibility across platforms with responsive design principles and tools such as BrowserStack and Electron.
  • GitHub & Zenodo for Code Citation
    • Utilize platforms like GitHub and Zenodo to make code citable and obtain DOIs.
  • Open-Source Licensing Practices
    • Guidance on applying open-source licenses and compliance, with support from initiatives like the Open Source Initiative and CERN’s OSPO.

Table of URLs

URL Description
https://escape-ossr.gitlab.io/ossr-pages/page/services/containerization/ Information on containerization services provided by OSSR.
https://escape-ossr.gitlab.io/ossr-pages/page/contribute/guidelines_ossr/ Guidelines for contributing to OSSR projects.
https://www.freecodecamp.org/news/how-to-create-and-upload-your-first-python-package-to-pypi/ Guide for creating and uploading Python packages to PyPI.
https://www.docker.com/101-tutorial/ Docker’s official tutorial for beginners.
https://arxiv.org/abs/2309.14571 Academic paper discussing CIF files and code citation efforts.
https://zenodo.org/doi/10.5281/zenodo.7540575 Example of using Zenodo for DOI minting.
https://citation-file-format.github.io/ Information on the Citation File Format (CFF) for citing software.
https://opensource.web.cern.ch/welcome-ospo-page CERN Open Software Programming Office page.
https://hepsoftwarefoundation.org/activities/licensing.html HSF’s guidelines on software licensing.
https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository GitHub’s guide on adding a license to a repository.