[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: Collaborative Development of Boards

On 1/16/2011 4:11 PM, Markus Hitter wrote:
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.


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.


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.

I feel your pain! Even working in a company, it gets frustrating for both designer and manager alike. Managers only want to focus on the short term goals because it is hard to meet the long term goals if you don't meet the short term goals. Designers want to optimize everything with the idea that with optimization comes efficiency resulting in meeting the goals better and possibly quicker. Of course, neither is 100% right, but at least company management can make decisions and end stalemates and thrashing.

In a volunteer project it is hard to get people to focus on the appropriate goals. But this is in no small part because the goals are not agreed on and possibly also not communicated even when agreed on. My one suggestion is to get your participants to agree to written goals and then make them very visible so they are not forgotten.

In reality, you have to work using the same methods as in a job. You just can't beat people with a stick to make them do it. The stick doesn't work well in a job environment and doesn't work at all in a volunteer group. But without goals and the rest of the organizational stuff, the work will proceed slowly, not always in the right direction and result in a lot of frustration.

Sorry I can't be a bit more specific. To be honest, I was a little turned off when I tried to read your web page and the opening didn't even tell me what you are doing! It referred me to another web site entirely... and then another...


geda-user mailing list