Manufacturing is far more complex than most people imagine. I laugh when I see commercials showing craftsmen lovingly making YOUR mattress or some such thing when you know damn well that it looks much uglier and far less custom/manual in reality.

Take the task of manufacturing and bringing to market an electronic product. Here's an incomplete list of some of the tasks requiring attention:

- Schematic design
- Mechanical design
- Plastics
- Machined metal
- Sheet metal
- Wire harnesses
- Optics (for lights, light pipes, etc.)
- Label, decal or printing design (legends, etc.)
- DFM (Design for Manufacturing
- Component sourcing
- Staging according to lead times
- Strategy to ensure long-term availability
- Testing methodologies
- PCB Layout
- Electronic Assembly
- Surface mount
- Through hole
- Manual soldering
- X-ray inspection
- Automated optical inspection
- Device Programming
- Testing
- Packaging
- Packaging design
- Cardboard
- Foam
- Injection molded
- Cut and glued
- Box
- Labels
- International variants
- Regulatory testing
- CE
- TUV
- FCC
- UL
- Other countries
- Mechanical manufacturing
- Injection molded plastics
- Machining
- Sheet metal
- Stamped metal
- Mold making
- Jigs and fixtures
- Software development
- Embedded
- FPGA
- Workstation
- Documentation
- Manuals
- Website
- Brochures
- Support
- Develop testing and methodologies
- Support scripts
- Support systems
- And more...

The list is not complete of course, but it provides some idea of how complex it can be. The idea of reducing this to an API or solving it via 3D printing is nice, but, today, a fantasy.

There are issues that are not obvious from simply reading this list. For example, entrenched systems and software that does not inter-operate. Disciplines that require massively different infrastructures (machine shop, plastic molding, packaging, PDB assembly, wire harness fabrication) and are sometimes islands in and of themselves.

Just looking at CNC machining is an example of how arcane things can be and how difficult it can be to change the way things work. CNC machine manufacturers use G-code (which is older than dirt). You'd think that by now this would be a smooth system. It isn't. Software vendors produce tools that require customization for each machine type and, even then, can produce g-code that is actually dangerous to run.

I had exactly this experience when I decided that we needed to have our own CNC machining in-house. We bought hundreds of thousands of dollars worth of (mostly) Haas equipment. All g-code was generated with a CAM tool that ran inside of Solidworks. I'll fast forward to the day that one of the machines --with a 20 Horsepower spindle-- happily churned aluminum with a one inch roughing bit like it was butter. It was amazing to watch, and it sounded horrible. The CAM program simply put out the wrong instructions because the engineers who created it in India decided to have their own creative interpretation of how G-code should work.

Anyhow, the point is that manufacturing is hard and complex. That's why you don't see Y-Combinator style "Here's $15K, go start a company" incubators doing real hardware. In the hardware world, outside of the trivial, $15K won't even cover the tooling.

Maybe in a few hundred years we'll have Star Trek style replicators. How cool would that be.