Thank you Moray, and thanks to all other participants. Interesting topic, and
good content. There's no limit to how much could be said on the topic, but I'd
like to comment and add a bit [edit: or a lot].
I understand the talk's goals as easing the integration of new contributors in
Debian. Newcomers follow a path which we hope is accessible enough that the
contributor can get as close as possible from a theoretical unattainable point
where the contributor knows everything about Debian and can contribute to all
areas. While each contributor follows a unique path, these unique paths are a
series of paths through which several contributors go.
Each potential contributor who arrives wondering how he can help is starting
from a unique position determined by his skills and experiences. Moreover, as
nobody can aim for complete knowledge of Debian, nobody wants to reach the same
point. The destination chosen by a certain contributor may depend on the
contributor's career goals. It also depends on the distance, as contributors
will prefer to travel towards a destination not too far from their starting
point.
As a project, we have a huge challenge. We must first keep the roads as smooth
as possible, which, in a Debian-sized world, is an endless task; there are too
many roads to pave (and maintain). Second, we must advice travelers the best we
can on where to go and which paths to use so they can reach their destination.
The talk mentions some paths, none of which is as straight as we could hope:
* the packaging path
* the translation path
* the artwork path
It also briefly mentions the "fundraising path" and the "press path", which are
rarely directly accessible for newcomers. Your talk shows improvements which could be done to our
roads and to our maps:
http://www.debian.org/intro/help
http://www.debian.org/devel/join/
http://www.debian.org/devel/join/newmaint
As the issues with maps exemplify, improvements aren't necessarily hard to
make, but costly. We need not only to keep investing in contributor
transportation, but to invest wisely.
I hope the above gives a good idea of the presentation's topic.
The packaging path
You point out that we direct prospects interested in the packaging path to
orphaned packages. http://www.debian.org/devel/join/ does contain:
Taking over an abandoned package is the best way to start out as a maintainer
-- not only does it aid Debian in keeping its packages well maintained, but it
gives you the opportunity to learn from the previous maintainer.
There is some logic in this too. Orphaned package are presumably those in the worst
state, so those which need love the most (in a sense), as the sentence seems to say.
However, someone's first package choice should probably be based less on how much the
package needs work and more on how easy (and rewarding) that choice will be. In a sense,
the sentence also considers this aspect - indeed, I suppose adopting an orphaned package
must be easier than packaging something from scratch. So I'm wondering if the sentence
wouldn't be trying to say something simple with an unfortunate choice of words. Could it
be that by "abandoned package", it just meant packages in need of some help
(either O or RFA, perhaps even RFH)? I imagine taking over an RFA-d package should be
easier than an orphaned package. And responding to an RFH even easier than an RFA.
Packages not on WNPP
That being said, as I read this page, something even more worrying jumps out.
Although we don't explicitly forbid it, we don't say anything about working on
packages not on WNPP. In fact, the sentence
If you are interested in maintaining packages, then you should look at our
Work-Needing and Prospective Packages <http://www.debian.org/devel/wnpp/> list
to see which packages need maintainers.
makes it very easy to infer that packages not on WNPP don't need [more]
maintainers. And yet, we've been complaining for years that new packagers
always work on pet packages rather than packages which matter. In fact, just a
few hours before your talk, an X.org maintainer led a BoF where he admitted
intentionally trying to get contributors involved in X packaging by leaving
some X driver packages rot for some time. Yet, there is no RFH for X on WNPP!
One may argue the maintainer should have sent an RFH. But really, which package doesn't
need help? Linux does, X does, Iceweasel does, Icedove does, KDE does. It will soon be a
decade since I started using Debian, and I can only remember thinking once that a certain
package was really well maintained (congratulations, Shadow package maintainers!). Oh,
and the ITS now shows 4 of its tickets tagged "help". All packages need help.
(I'm not sure I'd say RFH-s are pointless, since some packages do need more help than
others.)
Unfortunately, I don't have a great alternative text to propose. With WNPP, we
have something clear to tell contributors to do. If a package is RFA-d and you
want to adopt, go say so on the ticket, upload a new version when the
maintainer agrees, closing the ticket, and have fun. But we don't have an
equivalent process for someone who would be willing to help packaging the
radeon driver.
Yet, packages not on WNPP are probably better options for starting the
packaging path than packages on WNPP, as those not on WNPP should have a larger
team ready to mentor the prospect (unless a package should be on WNPP but isn't
because the maintainer is just MIA). On the other hand, a healthy package might
be a worse option since it usually has more users, hence errors will have a
greater impact. So basically, starting with a package on WNPP may be harder for
the contributor, but starting with one not on WNPP may be less useful and safe
for users.
What can we do to encourage (or at least not discourage) prospects from helping
with packages that matter? Which other distributions do better?
More paths
The first "map" listed above (/intro/help) has 11 items, most of which could be
considered as paths. I find the first 2 points there very interesting. The first says people can
test and/or report issues. This certainly constitutes a path (quality?). The second says people can
help advise users (IRC, mailing lists). If we talk strictly about Debian development paths, support
for users may not be a path, as this would at best indirectly contribute to Debian's improvement.
However, in the metaphor I described, following a path means to improve yourself as a contributor,
and people following the "support path" can definitely learn a lot about Debian while
helping users.
Then, if we jump a bit further to point 5 and 6, we see there's also a
documentation path, either by writing or translating packaged documentation, or
by contributing to a website such as the wiki or www.debian.org.
I believe the people who are most likely to need driving directions are those with the least
driving experience. Those who know the least on computer science, and particularly on free
software. I also believe the "quality path", the "support path" and the
documentation path are particularly interesting for newcomers, as they offer some safe and
accessible roads. A contributor simply travelling each of these roads could do a pretty nice Debian
trip. Therefore, I believe our sourcing efforts should pay attention to these 3 paths (others are
important too). I'd like to expand on them a bit.
These paths are very interesting because in a sense they have absolutely no
barrier to entry:
1. Quality: A user reporting an issue, perhaps for selfish reasons, will have
to go through a number of tickets to make sure he's not reporting a duplicate.
From there, it's very natural to comment on a ticket the user isn't
experiencing, and then to find himself contributing to the package's tickets.
2. Support: A user asking a question on IRC will see other users asking while
waiting for the answer to his own questions. If the user can answer someone
else's question, it would be a shame not to - if you managed to ask a question
on IRC, answering one shouldn't be difficult. From there, it's very natural to
stay and answer a few more questions...
3. Documentation: A user following a howto on the wiki notices a typo. If the
user is familiar with wikis, fixing it is about 2 clicks and a keystroke away.
In these cases, one can go from user to contributor in one minute (perhaps
ignoring wiki registration here). However, these paths are also imperfect. As
our projects ages, our infrastructure does too.
1. Our 20th-century ITS has no web-based edition capability. Adding information
to a ticket is quite easy, and opening one isn't difficult, but there's a
certain barrier to go beyond.
2. We have no "forums" nor any system designed specifically for support.
1. Support mailing lists have been going down for a long time while support
has mostly moved to unofficial channels.
2. Even IRC isn't in great shape, with our forces still split on 2 networks
years after the move to OFTC (which is poorly managed).
FWIW, I found myself in a discussion on another project's usage of IRC
for user support, already a couple of years ago. Although IRC is certainly not
perfect, I was arguing that nothing could match its efficiency (or IM's
efficiency) from the contributor point of view. Those who brought up the topic
said other media (they were thinking web stuff) could attract more users (which
is supposed to be a good thing ;-) ). If I go really deep in my memories, I
think I may relate to that. It could be that people new to free software will
find IRC intimidating. Idea: add a screenshot of someone asking on #debian to
our support page?
3. Our web documentation is split between www.debian.org and the wiki. 2 technologies,
quite some redundancy. The wiki is newer, but goes back to 2001. In both cases, history
has let us with serious licensing issues, particularly on the wiki. While the wiki is
anarchic, www.debian.org (still using CVS) is on the other extreme of control, with poor
sourcing. Of course, a lot of our documentation is in packages. As explained in the
packaging path, there's the private team operation issue again here. While code is a
"natural" barrier to making small contributions to lots of packages, the
technical barriers to entry to any package's documentation are small, so artificial
restrictions are making it much harder than it should to contribute efficiently to the
documentation of packages. Granted, since most of our packaged documentation comes from
upstreams, major restrictions would be left even if we would do our best to fix this.
In the end, the only place appropriate for a scratching-your-own-itch
documentation path will be the wiki.
Drawing borders harms mobility. People will often avoid a country rather than
going through customs. Privatizing Debian areas has the same effect, not only
on the documentation path of course, but in an awful lot of places. Soft
security can replace borders, but is uncommon in Debian. Proactive recruiting
compensates for borders, but is one of our weak points.
Once a contributor has traveled a number of accessible paths, he'll feel better
about more bumpy roads, and eventually enough to use a road which needs repairs.
Driving visibility
So we have lots of opportunities for improving roads, but they can have large costs. As
mentioned in the talk, "more communication from teams" is certainly one major
source of potential improvements. However, more communication has costs.
But what matters isn't only the volume of communication as the number of signs visible to
drivers. If teams operate as black boxes, the information which is communicated can be
lost. Passive transparency is one very cheap investment achieving "more
communication from teams /reaching contributors/".
Directions
No doubt our maps could use improvement. I found another one in the FAQ:
http://www.debian.org/doc/manuals/debian-faq/ch-contributing.en.html#s-contrib
Also problematic, I filed ticket 721207 on that.
intro/help
As your call for help implies, there's a lot of way to go between /intro/help
and what some other distributions have. Since we're on the topic of task ideas,
and since the need for that work is clear but nobody seems to be available for
it, why not add working on these pages in the website's TODO list? ;-)
Graphics
Just an idea - I think it makes sense to show people on intro/help. Why not
Debian contributors... if we don't see balanced demographics as a requirement,
anyway. And what would be better than a Debconf group photo for that? A
swirl-shaped Debconf group photo? Well, a quick search brought 2 interesting
pictures (thanks Aigars):
http://www.flickr.com/photos/aigarius/542611451/
http://joeyh.name/pics/debconf/6/Espiral-Debconf6_2048x1536.png
I could imagine some better use of Debian colors in the swirl or as background
(who wants to organize a winter DebConf and distribute red coats), but I think
these existing photos or minor adaptations can do very well too.
Personalized advice
Obviously, no matter how much we work on maps, they will still give imperfect
advice. As mentioned in the talk, a prospect-to-existing-contributor relation
can help a lot to get newcomers started. This can happen between students in
the same univerity, or members of a LUG. Obviously, these situations are ideal
as they allow both quality advising and customized teaching (and have potential
for combining Debian work with interesting social interactions). However,
forming and maintaining a user group can be costly. Not every prospect will
have this chance, or the courage to show up at a Debian meet-up when they don't
know anyone.
As an alternative, we could try directing prospects to places where they can
get personalized advice online. I've seen a number of prospects show up on
#debian asking how they can help over the years, and redirected a few to
#debian-devel. We should add something at the end of /intro/help suggesting to
go to #debian-devel or debian-devel@ for personalized advice. It would even be
good at some point to have dedicated channels for that.
Going further
As the examples have shown, there is much difference in the paths of contributors. At least 1 of the 3 started on the quality path. I would be curious to know how many contributors did the same. And how many started on the support or documentation paths. The more we know about the paths of existing contributors, the more wisely we can invest in road improvement, and the easier it will be to improve directions. Surveying them could highlight the most popular starting roads, and show some correlations between various roads. This might also confirm that there are various contributor "profiles", and what they are. Unfortunately, we don't have a database of contributors (but soon will, yes Enrico ;-) ). Nevertheless, we could get a fair picture by surveying drivers on our main roads. If Lucas Nussbaum's survey of new packagers should be repeated, I'd like to see a few more questions, like "What was your first contribution to Debian?". They should probably be well considered so we
can aggregate the results. Maybe determine a set of roads and have one question for each:
How long did you drive on the quality path?
[] Haven't started yet [] Reported a few bugs [] Triaged at times []
Regularly triaged
How long did you drive on the support path?
[] Haven't started yet [] A few minutes [] A few hours [] More than 10
hours
How long did you drive on the translation path?
[] Haven't started yet [] A few minutes [] A few hours [] More than 10
hours
(etcetera, with more care given to phrasing)
While we're at it, have there been surveys of Debian contributors asking about
their careers, their relation to Debian/software, and how much experience (in
software development, free software development and/or peer production
projects) they had when they started contributing to Debian?
--
Filipus Klutiero
http://www.philippecloutier.com