Hi Bryce,<div><br></div><div>Thanks a lot for your input. I had no idea about a lot of this and it's all going to be very useful.</div><div><br></div><div>Chris</div><div><br><div class="gmail_quote">On 26 September 2012 20:31, Bryce Harrington <span dir="ltr"><<a href="mailto:bryce@canonical.com" target="_blank">bryce@canonical.com</a>></span> wrote:<br>


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