Future of the Hundred Papercuts project
Bryce Harrington
bryce at canonical.com
Wed Sep 26 19:31:44 UTC 2012
On Wed, Sep 26, 2012 at 01:05:33PM +0100, Chris Wilson wrote:
> Hi there Desktop and Dev teams,
>
> My name if Chris Wilson and I've recently taken over the leadership of the
> Hundred Papercuts project, and am exploring ways to revitalise it now that
> contributions have all but dried up. I'm drawing up a plan on this
> wiki<https://wiki.ubuntu.com/FutureOfThePapercutsProject>page
> consisting of ideas from both myself and anyone who has something to
> say.
Hi Chris, thanks for taking on this work.
> Throughout this discussion, I'm not going to be dismissing any but the most
> radical proposals, which could result in a rather disruptive plan to
> reorganise the project. To reduce the impact that such changes may have on
> the larger Ubuntu project, I was hoping that the Deskop and Development
> teams could review the proposal and give final approval once the discussion
> period ends on 1st November.
>
> Does this sound Ok with you guys, and if not, do you have any suggestions?
Yes, I recall there were some various things that posed challenges to
the 100 papercuts project, which are likely to affect this new project
too, so could be worth some extra thought. Apologies ahead of time for
the length of this post...
* A LOT of papercuts end up really being more "design issues". David
was on Canonical's design team so could easily get direction on what
bugs were going to be acceptable to the design team and omit ones that
weren't.
You'll want to either develop a good working relationship with the
design team(s) in question so you can be certain all bugs are
acceptable, or focus on software and applications that don't require
consultation with design teams.
* I like your ideas #5 and #7, and more generally the idea of picking
one software project at a time to focus on. Pick one application to
focus on for a month (or maybe 2 months) and target bugs in that
project's software.
It was notable in the original papercuts that a huge proportion of the
bugs were against just a few apps - Nautilus, Unity, etc.
This approach lets you be more organized as a project. For instance
you could assemble a reference list of useful links, hold an
"orientation class" at the start of the month to give a newbie intro
to the codebase in question, and arrange closer coordination with the
project's developers, designers, packagers, etc. for that month (maybe
even solicit their direct involvement.) For example, if you wanted to
do Inkscape one month I could totally hook you up! (hinthint) :-)
* Fixing even a simple bug in the distro involves a number of different
specialized roles:
a. Reporter - notes a problem
b. Analyst - identifies what's actually wrong
c. Designer - decides how it *should* work
d. Developer - implements fix in code
e. Tester - verifies the fix works properly
f. Liaison - ensures fix is acceptable upstream
g. Packager - integrates patch or branch into the distro
h. Updater - handles SRU to get patch into the stable release
It's easy to slip into the mistake of thinking (d) is the only
important role. Lots of people don't know how to code so assume
development really hard. Sometimes it is, but with papercuts (and
esp. bitesize bugs), often the coding is quite trivial (or is trivial
once you're familiar with the codebase); the real work is in all the
other steps.
I think this tended to hamstring the old papercuts project here and
there. Some bugs really needed someone authoritative to make a design
decision. For others it was vital the fix be acceptable upstream
(e.g. including test cases or whatnot) so got blocked waiting on that.
A lot of bugs were things that bug reporters wanted in the LTS, but
being minor things by definition they often couldn't fit into the SRU
process. And so on.
In regular distro work, many of us developers are able to wear
multiple hats, so one of us can handle a number of steps in one go,
and we don't really even think much about all these different roles.
But with papercuts, your volunteers are not going to be quite so
ambidextrous. The good news is you can probably find separate
individuals who each can fill one or two roles, and so can team up to
tackle it.
You may also find it easier to solicit volunteers if they can
constrain their commitment or expectations to just one role.
* Once you have a number of bugs in flight, it can be hard for a
volunteer to figure out what to do with any of them. Out of 100 bugs,
maybe 30 actually need patches coded, 30 have patches already but need
packaging work, and the rest are somewhere in between. Grabbing bug
reports at random can be frustrating.
So, consider splitting all of the bug work into three buckets. First
are bugs needing review - roles (a), (b), (c) from the previous point.
Second are bugs needing coding work - roles (d), (e), (f). Third are
bugs with patches needing packaged - roles (g), (h).
* Regarding rebranding (idea #3), note that 'bitesize' and 'papercut'
imply different audiences. 'bitesize' is descriptive if you're a
developer and is describing how much work. 'papercut' is descriptive
if you're a user and is describing a degree of annoyance.
bitesize bugs could end up being a lot of things that people would
simply never notice (e.g. code cleanup work). papercuts can sometimes
end up being non-trivial coding exercises. So they can imply very
different meanings.
Personally, I'd keep the project called papercuts; it's a proven name
and was effective at drawing in participation.
More information about the ubuntu-devel
mailing list