Hi all,
having run an open source electronics project with the intention of
collaborative development for a few months now, the experience is less
than inspiring. So I'm looking for opinions on how to do better.
http://reprap.org/wiki/Generation_7_Electronics
http://github.com/Traumflug/Generation_7_Electronics
Looking at what happened in these few months, I think the essence can
be described in 3 topics:
1. Files aren't mergeable.
While PCB isn't that bad at keeping changes to the saved file small,
there's always at least the also stored file creation date letting
merges fail. One can store a design's files in a Git repository, of
course, but always only in a linear fashion. As soon as one
collaborator works on something, all others have to wait until he's
done. The versioning system would actually need a locking mechanism,
like good ol' CVS had.
2. Agreements on design decisions are impossible
For example connectors: Some use connectors with 4 mm spacing, others
use 5.08 mm spacing, third people consider anything pluggable as
stupid and use nothing but screw connectors. A project leader -
y'know, open source tries to avoid such terms - can do a decision, of
course, but single people will plainly refuse to manufacture or use
anything without their favoured connector. Such design details are
apparently hardcoded in electronics' people's brains.
As a result, lots of incompatible designs exist, and there's nothing
like a "preprocessor", which could switch between different details on
the fly. The same applies for FETs, diodes, jumpers, whatever.
3. No focus on the problem to solve
If you look at the recent commits of this project you'll see
enhancements always coming along with a plentitude of unrelated
changes. Yes, make these pads a bit bigger, but also move a track here
and change a text there. "looks better".
IMHO, doing such random changes is good for nothing but asking for
trouble. Yet, none of the coworkers seems to see what I'm talking
about. They do "looks better" all the time, making reviews a lot
harder, and sometimes you even get regressions.
Being more a mechanics and software guy, I'm astonished how things in
the electronics world apparently work. Perhaps I'm exaggerating a bit.
Is it even possible to do something in collaboration? I'd appreciate
any answer.
Cheers,
Markus
P.S.: Yes, I'm well aware of the Arduino project, and I see only
single people results there. No collaboration.
P.P.S.: The project's success isn't as bad as the above might imply.
The design actually works.