Andrew Wilkinson

Random Ramblings on Programming

Can the entrance barrier ever be too low?

with 2 comments

Stop Sign by thecrazyfilmgirlYesterday Google announced a new feature for Google Code’s Project Hosting. You can now edit files directly in your browser and commit them straight into the repository, or, if you don’t have commit privileges, attach your changes as a patch in the issue tracker.

If you’re trying to run a successful open source project then the key thing you want is more contributors. The more people adding to your project the better and more useful it will become, and the more likely it is to rise out of the swamp of forgotten, unused projects to become something that is well known and respected.

It’s often been said that to encourage interaction you need to lower the barrier so that people can contribute with little or no effort on their part. Initially open source projects are run by people who are scratching their own itches, and producing something that is useful to themselves. Google’s intention with this feature is clearly to allow someone to think “Project X” has a bug, I’ll just modified the code and send the developers a patch. The edit feature is very easy to find, with a prominent “Edit File” link at the top of the screen when you’re browsing the source code so Google have clearly succeeded in that respect.

Editing a file on Google Code

My big concern here is that committing untested code to your repository is right up there at top of the list of things that programmers should never, ever, do. I like to think of myself as an expert Python programmer, but I’ll occasionally make simple mistakes like missing a comma or a bracket. It’s rare that anything beyond a trivially small change will work perfectly first time. Only by running the code do you pick up these and ensure that your code is at least partially working.

I’m all for making it easy to contribute, but does contributing a large number of untested changes really help anyone? I’m not so sure. Certainly this feature is brilliant for making changes to documentation where all you need to do is to read the file to know that the change is correct, but it seems a long way from best-practice for making code changes.

Perhaps I should be thinking about this as a useful tool for sketching out possible changes to code. If you treat it as the ability to make ‘pseudo-code’ changes to a file to demonstrate how you might tackle a problem it seems to make more sense, but open source has always lived by the mantra ‘if you want it fixed, fix it yourself’.

I suppose I should worry about getting my pet open source project to a state where people want to contribute changes of any quality, and then I can worry about making the changes better!


Photo of Stop Sign by thecrazyfilmgirl.

Advertisements

Written by Andrew Wilkinson

January 19, 2011 at 1:36 pm

2 Responses

Subscribe to comments with RSS.

  1. While I agree that you usually need to test code first, I think that this makes small edits a lot easier (e.g. editing UI strings, fixing a typo in the comments, fixing simple stuff that you forgot last time). This feature allows you to avoid waiting for your IDE to load and typing commands to commit.
    Also, most small one-developer projects love any kind of contribution, its easier to just edit a typo than to post a “long” message pointing out the type.
    I’m pretty sure that this won’t be much use for editing anything algorithmic though.

    fgm2r

    January 19, 2011 at 2:04 pm

  2. Yes, you’re quite right fgm2r. It does make tiny text fixes very easy, but maybe there should be a short message along the lines of “if your change might break the code be sure to test it before submitting your patch” by the submit button just to make people think.

    Andrew Wilkinson

    January 19, 2011 at 2:12 pm


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: