2009-10-20

Topics to consider for Perl 6 newbies

As a newbie to Perl 6 and contributing to Open Source projects I have a decent perspective on the questions that arise when starting out on this path but it's still an informed perspective. My day job is Cat Herder in Residence (aka Director of Product Development) for a small but spunky software company in the Bay Area, CA. This, one would hope, gives me a pretty good foundation for how software projects can run, so I'm not starting entirely from zero.

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
It's unlikely that this is a complete list. Also, this list isn't meant to imply that Perl 6 information doesn't already exist on these topics out there on the wild wild web. Undoubtedly it does but it may be scattered. I admit that I haven't researched to that level...yet. My intention is to try to start the effort of gathering this information into one spot: here. I'll be moving it to a more public location as soon as possible to make it easier to find and so others may help add to it.

Your homework: tell me what topics I've missed.

3 comments:

moritz said...

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.

sjn said...

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.)

VM Brasseur said...

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