Friday, 12 October 2012

Hundred Papercuts revival: help define the roles

Ubuntu's Hundred Papercuts project has faded from the limelight over the fast few release cycles. A revival project is currently underway to get it back on it's feet as a core component of the development of Ubuntu. If you have any thoughts or ideas, then head over to the revival wiki page and join the Papercuts Ninja team on Launchpad and sign up to the mailing list, and say what you feel.

During the Hundred Papercuts revival, a number of issues affecting the previous project have come to light, the most notable being that new contributors don't know the different ways in which they can get involved. When the questionnaire that went out at the start of the revival completed it's cycle, the answers to one question stood out to me, and all but confirmed a fear I had at the beginning: too many people think that you need to be a developer to get involved in the Hundred Papercuts.


You don't need to be a developer to get involved

The Hundred Papercuts can be thought of as a miniaturised version of the larger Ubuntu project, in that it reaches out to a great many corners of it and pulls in a few of their bugs. In that regard, another way that the Hundred Papercuts is similar to Ubuntu proper is that programmers actually play a very small part in pushing it forward. Canonical's Bryce Harrington pointed out that there are in fact eight roles someone can get involved with:
  • Reporter - reports an issue
  • Analyst - identifies what's actually wrong
  • Designer - decides how it *should* work
  • Developer - implements fix in code
  • Tester - verifies the fix works properly
  • Liaison - ensures fix is acceptable upstream
  • Packager - integrates patch or branch into the distro
  • Updater - handles SRU to get patch into the stable release
You only need a rudimentary sense of pattern recognition to notice that only one of those roles involves writing any code, and this is the same with any large software project. There is a lot of work for non-developers to pick up, and every bit of it is just as important as the code itself.

The job description

If people are going to be able to get involved in non-development roles they're going to need to know what each of them do. Idea #8 on the papercuts revival wiki page outlines these roles with a basic definition for each, but lacks details on what would be involved in carrying out the role. For example, a Tester would have to test a fix on multiple version of Ubuntu (current release, current LTS and current devel), so they'd have to make sure they have to make sure they had access to all three. An Analyst would have to carry out similar testing, but would also have to speak with developers familiar with the code, both in Ubuntu and upstream. A Designer need not be a part of Canonical's User Experience and Design team, but they would have to communicate with them on a regular basis in order to suggest design ideas, or do so with upstream designers.

When applying for a job, the advertisement always has a list of responsibilities the successful applicant will take on. Someone joining the papercuts project in one of the eight available roles is volunteering to take on the responsibility of those roles, so they should know up front what they actually are. If you know what each of these roles involves, then please take 5 minutes to head over to the wiki page and add a few bullet points beneath the role. If you're already doing on of these jobs on Ubuntu, then please head over and add a brief list of the things that make up your daily life. If you have any ideas of roles that were missed, then please add them. Everyone's contribution here is valued and appreciated.

If you want to get involved in breathing new life into the Hundred Papercuts project, the first thing you could do is head on over to the wiki page and start suggesting ideas.