OpenHatch: Making the first step easier

Baby, originally uploaded by gabi_menashe.

(This is a guest post by Asheesh Laroia of OpenHatch, an “open source involvement engine.” OpenHatch is a website and ongoing project to help new contributors find their place in free software projects. A few months ago, he imported some bugs in KDE’s bug tracker into the OpenHatch volunteer opportunity finder. I invited him to write about it for my blog. OpenHatch has its own blog, too.)

KDE is doing something wonderful with its Junior Jobs. These are issues (often small feature requests) that are appropriate for a first-time contributor. When maintainers create these opportunities, they take information that would otherwise be trapped in their head — how easy or hard an issue is — and make it available as hint to new contributors. Conveniently, creating a “Junior Job” doesn’t take any special work: maintainers just have to find the relevant bug in KDE Bugzilla and add the junior-jobs keyword.

But KDE Bugzilla isn’t necessarily a friendly welcome mat. Probably everyone reading this post can remember a time when Bugzilla seemed like a difficult, arcane tool. Bugzilla works well (enough) as an interface for project maintainers to share the status of what they’re working on with each other.

But imagine you are a prospective contributor. Aim your web browser at the list of junior jobs. (To get that link, I went to KDE Bugzilla and clicked the “Junior Jobs” link on the left side.) This is what I saw when writing this post:

Here are some questions I might have as a new contributor (and some commentary as myself):

  • What do “wis” and “UNCO” mean?
  • Who is JJ? (Maybe that’s a person’s initials; maybe he or she plans to fix it.)
  • What project are these bugs in? (I can guess from the assignee….)
  • Where do I get the source code? (The wrong answer might lead the new contributor to submit a patch against the most recent release; that patch might not apply against trunk.)
  • If I get started on this, who can help me when I get stuck? (Otherwise, a new contributor might make an effort, become confused by something, and fall away.)

I like to joke that bug trackers say lots of information about what the problem is, but they don’t provide any information on how to solve it.

We at OpenHatch noticed that a great number of projects were in a similar situation: they label bugs as “easy”, “bitesize”, or “Junior Jobs” and point first-time contributors straight at the bug tracker. So we created what we call the volunteer opportunity finder to help people find something to work on. It wakes up late at night to download issues from bug trackers representing hundreds of projects. (Since OpenHatch is itself a free software project, we also import the bitesize bugs from our own bug tracker.)

When you browse the available issues, you can click on the project name and see its page on OpenHatch. (We make one for every project that someone says they’ve contributed to, or where we’ve imported bugs for it.) The pages showcase the people who have listed themselves as possible mentors. Contributors can also write instructions or suggestions for how to get involved; for example, the page for Gally does a great job of answering “Other than writing code, how can I contribute?”

If you don’t know how to get involved, you can also browse opportunities by programming language, the kind of help you want to give (such as writing documentation) or flip through a few projects you might want to work on. You can narrow your search to just the ones we call “bitesize” (“Junior Jobs” in KDE, bugs labeled as “easy” in the Python programming language, and so forth).

So OpenHatch is a project to think through how people join free software communities and to build technical tools and social structures to make that better. This browsing tool is one thing we’ve built. It’s a community project, so you can help out! Say hi on IRC or email if you want to join in.

I’d like to hear (in the comments on this post) from you guys and gals: What do you think about our “volunteer opportunity finder”? What works about it for you? What would you change?

If Lydia invites me back, I plan to write about getting non-coders more involved in free software projects. During the weekend I first met Lydia and Jeff Mitchell of Amarok, I had a crazy idea for something you can build on top of OpenHatch. If you want to stay in touch until then, join our IRC channel or subscribe to us on!

Community Working Group office hour

The KDE Community Working Group members (that would be Jeff, Anne, Ingo, Rich and me) would like to invite you to our first (of hopefully many) office hour. We’ll be on IRC to answer all your small and big questions about community, help you with problems and give feedback on ideas you have.

Please join us on Saturday, 28 August 2010, 18:00:00 UTC in #kde-cwg on freenode.

We’re currently considering doing this on a monthly basis if there is demand for it.

PS: We will of course continue to be available via email and private chat for urgent/sensitive matters.

KDE GSoC 2010 wrapup

Google Summer of Code 2010 finished. It’s been a blast again for KDE. Of our 50 students 46 completed the program successfully and one withdrew after successful midterm evaluation to start an internship he couldn’t say no to. Each of them has produced something really cool, has learned a lot and I’m sure also found a few new friends. Check PlanetKDE for updates on their projects. Thanks to each of our students and thanks x2 to our amazing mentors who once again rocked very much. And of course thanks to Google for making the whole program possible. A dot story including details about each project will follow soon – stay tuned.

Season of KDE hasn’t wrapped up just yet. Updates on that when it finished.

Oh and if you want to hear me ramble about GSoC and Season of KDE with the awesome Guillermo and Paul, go and listen to the latest KDE and the Masters of the Universe podcast.

unicorns and laser beams

As part of my computer science studies I needed to work on a research project which I finally finished not too long ago – the title: “Planning of 3-dimensional complex cutting trajectories for robot-assisted surgery”. I worked on a program for a robot-assisted laser surgery on bones (in particular the human skull). It’s written in C++ using Qt and VTK. My task was to work on the planning module. The surgeon can mark points on a model of the patient’s skull and then connect them either with straight lines on the skull or create more complex connections. This was then used in another module to calculate positions and movements of the robot that was handling the laser. Laser beams ZOMG! All this will hopefully help make skull surgeries safer and less invasive as well as allow surgeries currently not possible due to tool limitations.

Despite having contributed to KDE for a few years now pretty much all over the place this was my first really big C++/Qt coding experience. I’ve not really touched KDE code in all those years except a few small changes here and there. Unbelievable right? Not really. On the one hand I think that so far KDE was better served with me doing community work – and maybe always will? And on the other hand it was damn scary. Oh and of course there was no pressure to climb that rather huge imaginary mountain and learn all the stuff I’d need to actually be any useful in that area. This university project helped quite a bit with both now 😉 This is btw also one of the reasons why I think GSoC is so invaluable: It gives the needed pressure and incentive to not give up when things get tough that some people (including me) need.

The robot, laser head and a plastic skull:
setup spline cut (circle) after

Cut on the plastic skull:
finished spline cut (circle)

Cut on a part of a pig’s bone:
finished spline cut on bone

And the actual planning program:

Thanks to Jessica, my advisor, for having patience and letting me screw up a few times. Thanks to everyone working on Qt and VTK for letting me do amazing stuff.

Guess it’s time now to find a good KDE project to get my hands dirty on. Be warned 😀

Oh and next time a new contributor vanishes: Nudge them a bit. They might just be standing in front of that huge imaginary mountain and need someone to tell them it’s not actually that huge or give a helping hand. And if you’re standing in front of it yourself right now: Don’t give up! Take it step by step. You’ll get up there.