I am a roboticist, and oftentimes I (have to) divide my work in three: the work related to mechanical development, the work related to hardware development, and the work related to software development. It has been an increasing bother to me, when trying to version or document my work, to refer to those in a satisfying manner.
Let's say I am versioning my work on github / gitlab; I'll usually want to have one folder for the mechanical development, one for the hardware development, and one for the software development.
Same if I'm asked to write a report, at some point I'll write a section for the mechanical development, one for the hardware development, and one for the software development.
Hopefully you see the pattern:
- Mechanical development refers to the design of structural parts, like the arms, the axes, the hull / casing, the wheels, how to structurally integrate and fix the motors, sensors, connectors, cables; what materials to use, norms, etc... It comprises the technical drawings used by workshops to produces the corresponding parts. I use mechanics and mechanical development interchangeably here.
A technical drawing:
A solely mechanical system:
- Hardware development refers to the electronics of the robot; it encompasses the design of the schematics and PCBs. I use electronics, hardware and electronic development interchangeably here.
A PCB design:
A 3D view of a PCB design:
Fabricated and mounted PCB:
- Software development refers to the code written to program the hardware.
Unfortunately, I am really not happy with the designations I have come up with until now. Reason for that is because I would like descriptive one-word terms that feel like a unit:
- Descriptive: When versioning (e.g. on a git repository) or documenting (e.g. with a report), being accurately descriptive in the terms I use is useful for other people to easily understand the systems I am trying to describe.
- One-word terms: Again, being concise is actually important to my work, more so on repository, where good practices includes all lower-case, no space, no symbol names. So one-word terms actually improve readability a lot.
- Semantic unity: Again, helps with people easily / intuitively understanding the paradigms of the systems I describe.
Until now, I've mostly been using the following:
- If there is only hardware and software, that's perfect, those two fit (descriptive one-word terms with a semantic unity).
- If there is only the mechanics and electronics (I use electronics here as an equivalence for hardware), that's okay as well (even though I personally feel like mechanics is less efficiently descriptive than the hardware / software semantic).
- When I have all three of them, I guess I can refer to mechanical development, hardware development and software development, but I really dislike it (several-word terms; no semantic unity apart from development; decreased descriptive accuracy, since the folders do not contain a process (the development), but a result of that process).
It gets even trickier when I work on personal projects, for which I really like to add an artistic component (and that I actually version, yes)... How do I refer to this one ? Artistic development ?
I know I'm being nitpicking... but I figured this place is exactly for that. And it really is bothersome to me.
I thought about the neologism mechware, but it's just... not totally clicking to my ear; as well as not solving the problem for what would then be artware.
If you have suggestions or ideas, I am all ears.