James Tauber

journeyman of some

blog > 2005 > 12 > 26 >

Contributing to Open Source Python Projects

Adudzik asks on 43things:

As a smart and enthusiastic beginner, where should I look for good open source projects, preferably in Python?

While it's possible to find open source projects being done in Python on SourceForge and listed on FreshMeat, what would benefit people like Adudzik, in my opinion, is being apprenticed to a willing project lead. Sort of like the Summer of Code but longer term and restricted to existing projects (and presumably with less chance of monetary payment). SourceForge and FreshMeat don't really indicate which projects would be willing to take on an apprentice.

So perhaps python.org could run a directory of open source python projects that would be willing to take on an apprentice.

I'd certainly be willing to take on an apprentice or two on a number of my projects such as Leonardo, pyso or Cleese.

As I've software_craftsmanship written elsewhere:

I believe writing software is a craft. I also believe that writing code is something well suited to an apprentice-journeyman-master model particularly when applied in an open source context.

So ultimately I'd love to see virtual schools under a master with a number of journeymen and apprentices. Apprentices work on projects mostly under the direction of the journeymen. The journeymen have more responsibility on projects and start their own projects under the direction of the master. Eventually, a journeyman presents a released piece of software as his or her "masterpiece" and is declared by some loose collection of masters (a guild) as a new master. This guild would also be responsible for the recruitment of new apprentices.

That's my larger vision but just having a directory of projects willing to take on an apprentice would be a good start.

Any other thoughts?

Comments (2)

Benjamin Reitzammer on Dec. 28, 2005:

Perl has an apprentice site that does this basic "project-apprentice"-linking you mentioned.
Having never used it, I don't exactly know how well it works.
http://apprentice.perl.org/

I think a "school system", like in the larger vision you described, would be too much for such a fast moving ecosystem like the open-source software communities. One could argue, that open-source could use some stability, but I think that's just not the way it works.

The more informal approach, of an apprentice asking a somehow acknowledged master for leadership is the most workable solution in my opinion.

Although I must admit, that your grand-vision of of open-source as a school, that provides some kind of quality control via exams/masterworks is quite compelling, and could solve some other problems as well (adoption of OS within large companies etc.).

James Tauber on Dec. 29, 2005:

Note that I'm not talking about a formal institution when I say "school". I really just mean a loose affiliation of journeymen and apprentices around a master.

The masters themselves could informally group as guilds but really just to help each other out and provide a small amount of accountability.

Note that I think a "school" (and hence a master-apprentice or master-journeyman relationship) needs to extend beyond one project. I think skills as a developer require work on a variety of projects. So I would imagine a given school might have a number of projects going at once, largely driven by journeymen under the supervision of a master with the apprentices helping out where needed and where there is an opportunity for them to learn some new aspect of the software craft.

Created: Dec. 26, 2005
Last Modified: Dec. 26, 2005
Author: James Tauber