However there are plenty of smart and ambitious people out there who are starting from zero. Face it: none of us (not even Larry himself) was born with a priori knowledge of how to work on a project. At some point we were all starting at zero. At some point you asked someone or did enough digging to figure out what's going on. Or, more likely, at some point you just dove in, screwed up, got scolded and learned a valuable lesson. Those of us who've learned some of these lessons undoubtedly take it for granted. Actions and answers become rote, their delivery confident but their sources lost in the mists of time.
This can cause even seemingly mundane tasks to appear intimidating to a true newbie. Some will take the plunge and make the mistakes, but many won't. Many well-intentioned good people who have much to contribute will turn away because the process appears opaque. It doesn't have to be like that. The people of Perl 6 are open and welcoming so why shouldn't the process be as well? It shouldn't just be all about pointing people at the code and sending them on their merry (if potentially clueless) way.
So what things would a total newbie need to know when coming into Perl 6 or any other Open Source project? What questions should they ask (but maybe not know to)? In no particular order and off the top of my head I've come up with these:
- Issue Tracking
- Documentation
- Help
- Source Control
- Coding Style Guide/Tips
- Programming Language(s)
- Testing
- Project Plan/Roadmap
- Culture
- Etiquette
- Acronyms
Your homework: tell me what topics I've missed.
3 comments:
One thing I've already been working on is an explanation of how the various parts of Perl 6 play together: The spec, the tests, various implementations, parrot etc. I put an initial version of a graphic here: http://perl6.org/images/ (SVG and PNG).
I intended to put that up on perl6.org/getting-started/ (doesn't exist yet), along with other information - similar to what you are planning.
If you just write me an email with your desired nickname and your email address, and I can get you a commit bit to the repository holding the perl6.org source. Then you get put the things up on perl6.org as soon as you feel comfortable, contributing is (hopefully ;-) explained at http://perl6.org/about/ .
I usually put together such pages without linking to them from the front page, then ask for feedback and then link them.
Due to other obligations I can't put as much effort into that as I would like, but I hope that if we collaborate something very useful will come out.
Other topics: Seperation of concerns (how to make problems easier by seperating them), API design (how to make software that's easy to use right and hard to use wrong), communication theory (how to get your message across to others you don't know), motivation/psychology (how to keep yourself and your peers interested in a project), project leadership (how to figure out priorities and make sure everyone is helping where they're best suited at the moment), writing (how to communicate ideas in a terse and engaging manner.)
Thanks, moritz. You should be receiving my email shortly.
Good additions, sjn. The hard part will be summarizing answers to those in a mere page or two rather than the book which many of them could easily spawn.
Post a Comment