In the last month I have been part of several discussions on the perceived (or potentially perceived) overlap between this proposal, the Arduino StackExchange, and two other sites, Electronics StackExchange, and Stack Overflow.
Many of these discussions have ended up being more agitated than is required, because of a perception that Arduino.SE will cannibalize the membership of those two sites, especially EE.SE.
In the past, at least one Arduino.SE proposal went through the defined proposal process, succeeded, and then was deleted by the management despite following the process through, on the perception that it was a duplicate or a perfect subset of what Electronics.SE already covers.
In order to crystallize this proposal better, thereby enable it to go live without management intervention and finally drive it to success, I propose some changes to the proposal charter to explicitly define who the audience will be, and what areas will not be covered but will be pushed over the fence to the two other stacks mentioned.
To set context, from the official Arduino charter:
Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.
Notice that there is neither mention of Electronics / Electrical Engineers, nor of Software Engineers. The platform wasn't designed for them to play with, but they're more than welcome to contribute to the platform, or use it with their technical purist hats off, is my view.
Another useful context building exercise, which each must do for themselves, is to scan through the nature of posts, especially new user questions, that have appeared on the Arduino.cc forums, a very vibrant and helpful community. Scanning Arduino tagged questions on Electronics.SE or StackOverflow is not statistically meaningful, since the bulk of the 'duino people out there aren't really finding succor in our Stacks yet.
This context needs to be reflected in the charter of this Arduino.SE proposal, by editing it to make clear that Arduino.SE will be a site for the users of Arduinos and associated products, and not creators of such products (the EE crowd) nor the professional programmers in the Arduino ecosystem (the SO crowd).
This will be a USER site, with the same distinction that AskUbuntu stack has from the Unix and SuperUser stacks. Are there not overlaps between those? Sure there are, but the respective communities try to nudge newcomers towards the appropriate stack, rather than trying to hold on to every question and every new member greedily. This will come to happen with Arduino.SE as well.
The related thing that needs to happen, to be able to successfully distinguish this site as being not a subset of EE.SE or SO is to remove those example questions on the proposal, that fit neatly into either of those remits.
Yes, there are some sample questions which are kind-of in the grey area: While removing those will make the success of this proposal a safer bet, letting them be has merit too. The classic issue of a programmer or an EE forcing their technical viewpoint down the throat of an Arduino user who frankly isn't interested in getting so deep, is reflected in those questions. Those who come to Arduino.SE, and a huge percentage of those currently active on Arduino.cc and other Arduino forums, aren't here looking to be "saved" or evangelized at.
Areas of perceived conflict:
Electronics.SE, to start with... From the FAQ:
This site is for electronics and electrical engineering professionals, students, and enthusiasts. We ask and answer questions about electrical and electronics engineering topics, which include electronics, physical computing, and those working with microcontrollers, Arduinos and embedded systems.
Notice that the Arduino is explicitly mentioned, not any of the several other embedded systems development platforms. This indicates that the FAQ writers had a strong desire to capitalize on the pop-culture success of the Arduino; giving that up is neither going to be easy, nor should it be required.
But wait! The solution lies in the same FAQ, see the next line:
We feel the best Electronics Design questions have a schematic, links to pertinent datasheets or some C code in them, but if your question generally covers …
- a specific electronics design problem
- the theory and simulation of electromagnetic forces
- a communication scheme
- the writing of firmware for bare-metal or RTOS applications
Clearly, the "typical Arduino user" as specified in the charter quoted above, is not expected to be familiar with schematics and datasheets, but maybe with C-like Arduino code.
Also, the majority of these users aren't burning up the internet with specific electronics design problems, or much of the other 3 bullets either.
At this point the discussion usually boils down to either
- "But they have to learn this EE stuff"
- *Nonsense, do you have to learn automotive engineering to drive your car, or even to get it modded or race it?*
- "But what if they then have EE design questions?"
- Agreed, see the concluding portion of this post
- "But without an engineering orientation, they are mere mouth-breathers! We must help them improve!"
- Sounds like "We must save their souls!", precisely the kind of evangelism that alienates the kind of people named in the Arduino.cc charter
StackOverflow... From their About page:
Stack Overflow is a question and answer site for professional and enthusiast programmers. ... we're working together to build a library of detailed answers to every question about programming.
In this case too, the possibilities of conflict are seemingly evident at a cursory glance. However, I entreat you to go through the context-building exercise mentioned earlier, go visit the Arduino.cc forums.
The actual questions about programming are a small subset of the entire community activity set. There's more of "where to I find code to do X" and high-skill copy-paste action. Those latter aren't the kind of questions SO really wants anyway.
For actual programmers and programming, the SO community is enough of a lure that their chance of losing membership and desirable questions to Arduino.SE is laughably small.
The "typical Arduino user" as per charter more often than not has neither the background nor the interest to engage in heavy duty programming. Their needs are those of a practitioner, rather than a programmer.
My favorite metaphor in this situation is of people using computers for their day-to-day jobs, for playing games, and for helping their children learn: While they could have the ability, and / or the desire, to assemble their own PC, or even rewrite a device driver or two, the majority are never going to go there. If a problem on their computer isn't solved by clicking through a wizard, they'll just call in the cavalry and move on with their lives.
So we have the usual questions:
- "But what if they then have programming questions?"
- Agreed, see the concluding portion of this post
- "But they have to learn programming"
- No, the majority of Arduino users get by fine with copy-paste skills
- "But without programming skills, they are mere mouth-breathers! We must help them improve!"
Will there be an exodus from existing sites?
So will the Arduino enthusiasts who are demonstrably valuable in the EE.SE and SO worlds move to Arduino.SE, abandoning those respective sites? No, that is neither the expectation nor will be the reality. For a point in evidence, see the active users on Robotics.SE. Many of them are also active on EE.SE, and some on SO. However, note their activity history:
Some of them ask questions on Robotics.SE while actively answering pure EE stuff on EE.SE, others are active problem-solvers on Robotics.SE because of their specialized knowledge, and both ask and sometimes answer questions on EE.SE. The same situation prevails, albeit to a much smaller degree, between SO and Robotics.SE, or for that matter between SO and EE.SE.
None of those sites saw a mass exodus when the newer site went live, it is odd to think this would happen when Arduino.SE comes up, unless there is already strong dissatisfaction with the overall environment and mood on the older sites. If this last is true, such dissatisfaction needs to be solved on those respective sites through positive action; blocking an escape route to refugees by denying a new avenue hasn't worked outside of absolutist dictatorships, for a long time. The Internet doesn't work that way, if a SE site is untenable, people will simply find or form an alternative elsewhere with a more amenable environment.
Handling the overlaps
Some Arduino users will graduate to getting heavily engaged in electronics design; That is what makes the Arduino interesting to me, as a "gateway drug" to enthuse young beginners into the field of electronics. Those people then need to be encouraged to participate in EE.SE, rather than keep their questions in Arduino.SE.
Sure, even greater percentages of Arduino users will graduate into medium to advanced programming, going by people and posts on Arduino.cc. Those people then need to be encouraged to participate in StackOverflow.
Similarly, if either of those two stacks see a question that is of user level, rather than engineering grade, they need to push those over the fence to Arduino.SE
If some of the Arduino users begin to believe that they are automatically EEs, or automatically programmers, let them. That won't cause the sky to fall on our heads. After all, so many people believe that they're "different"... It keeps the psychoanalysts in business, but doesn't shatter the fabric of the universe.