OSHW Project Management User Stories
Preamble
Welcome to the How do you share your Open-Source Hardware project workshop summary report. During the workshop we worked with participants to identify what we can do as a community to make it easier to share, communicate, and collaborate on OSHW projects. The following content is the result of that work.
Desired Core Capabilities
These are the core needs of the OSHW community when sharing, communicating, and collaborating on OSHW projects
1. OSHW Definition
OSHW projects should be developed and shared in accordance to the OSHW Definition.1
2. OSHW Certification
OSHW projects should be developed and shared in accordance to the OSHW Certification process.1
3. OSHW Should Be like OSS
OSHW should be like Open Source Software (OSS) to the greatest degree possible (e.g. sharing, development, licensing).
4. OSHW Development Should Leverage Modern Software Development Techniques
OSHW development should leverage modern software development techniques to improve the OSHW developer experience.
examples
- package management
- DevOps (e.g., DevSecOps, DocOps)
- mono-repos
- design patterns (e.g., model-view-controller)
- semantic versioning
Minimum Required Data Model
Classes of data that need to be captured 1. Core Capabilities
1. BOM Data
Bill of Materials (BOM) data: list of components and counts covering all parts and tools which must be procured to build the project
2. Instructions
- Assembly Instructions: complete list of instructions to build the project from its procured parts
- Operating Instructions: complete list of instructions to use the project safely and effectively
3. Supporting Data
e.g. design files,
- CAD models (e.g., Mechanical CAD files, PCB Gerbers files)
- Specifications (e.g., operating temperature range)
- Interface definitions (e.g., board pinout)
- Schematics (e.g., Circuit boards)
User Stories
As a OSHW User, I want to Build an OSHW Project, so that I can Reproduce the OSHW Project
related to 1. Core Capabilities: 1. OSHW Definition
notes
- build using alternative components for (end-of-life) availability
As a OSHW User, I want to Build an OSHW Project with Alternative Components, so that I can Address Issues with Component Availability
related to 1. Core Capabilities: 1. OSHW Definition
As a OSHW Developer, I want to Ensure Unique Project Element Names, so that I can Unambiguously Identify Every Instance of a Component in a Project
related to 1. Core Capabilities: 1. OSHW Definition
As a OSHW Developer, I want to Organize OSHW Project, so that I can Conform to DRY Principle
related to 1. Core Capabilities: 4. OSHW Development Should Leverage Modern Software Development Techniques
notes
- need for bridging knowledge gap between industry standard and open-source practices; no mentoring programs / methodology
- while the DOF team agrees this is a challenge within the OSHW community, it is outside the scope of DOF (packaging a OSHW project to be shareable/modifiable/reproducible)
- lintable data structure
- interpret "lintable" to mean the content in the model is verifiable (no missing fields, orphan elements, etc.)
- LinkML "validate" capability implements these kinds of tests
- a.k.a., expose ability to validate content
As a OSHW Developer, I want to Verify Project Data, so that I can Discover Project Errors Early
related to 1. Core Capabilities: 4. OSHW Development Should Leverage Modern Software Development Techniques
As a OSHW Developer, I want to Decompose OSHW Project into Subprojects, so that I can Identify Reusable Elements of a Project
related to 1. Core Capabilities: 4. OSHW Development Should Leverage Modern Software Development Techniques
As a OSHW Developer, I want to Reuse Elements of External OSHW Projects, so that I can Build upon Previous Engineering Effort
related to 1. Core Capabilities: 4. OSHW Development Should Leverage Modern Software Development Techniques
As a OSHW Developer, I want to Reuse Elements of This OSHW Project, so that I can Define an Element of a Project Only Once
related to 1. Core Capabilities: 4. OSHW Development Should Leverage Modern Software Development Techniques
As a OSHW User, I want to Fork an OSHW Project, so that I can Customize the Forked OSHW Project
related to 1. Core Capabilities: 3. OSHW Should Be like OSS
As a OSHW Developer, I want to Automate Certification, so that I can Easily Certify Every Release
related to 1. Core Capabilities: 2. OSHW Certification
As a OSHW Developer, I want to Diff a Project between Commits, so that I can Review Changes between Commits
related to 3. OSHW Should Be like OSS
As a OSHW User, I want to Annotate an OSHW Project, so that I can Provide Context or Explanation about Model Content
related to 1. Core Capabilities: 0. Unidentified
As a OSHW User, I want to Comment on Elements, so that I can Explain or Discuss Elements
related to 1. Core Capabilities: 0. Unidentified
As a OSHW Developer, I want to Attach a Citation to Elements, so that I can Attribute Credit to External Resources
related to 1. Core Capabilities: 0. Unidentified
As a OSHW User, I want to Create Agile Decision Record about Elements, so that I can Capture the Reasoning behind a Decision
related to 1. Core Capabilities: 0. Unidentified
As a OSHW Developer, I want to Associate a Figure with Elements, so that I can Describe the Element Visually
related to 1. Core Capabilities: 0. Unidentified
As a OSHW Developer, I want to Associate an Asset with Elements, so that I can Use Supporting Material
related to 1. Core Capabilities: 0. Unidentified
Children