<div class="gmail_quote">On Fri, Apr 30, 2010 at 6:38 AM, Tomeu Vizoso <span dir="ltr"><<a href="mailto:tomeu@tomeuvizoso.net">tomeu@tomeuvizoso.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi,<br>
<br>
follows a plan about how to improve the situation regarding<br>
maintenance of our software modules. If you care about it, please<br>
reply even if only to say so, or even better, comment on it and<br>
suggest improvements. I will assume that lack of replies mean people<br>
don't care about it and will stop caring about it myself.<br>
<br>
== The problem ==<br>
<br>
The process by which our software reaches to children is complex and<br>
involves several organizations. Sugar Labs is one of those and its<br>
responsibility is to provide the raw sources that organizations<br>
"downstream" such as OLPC, Fedora and Paraguay Educa will modify,<br>
package, ship and install. It's very important that modifications done<br>
downstream are kept to a minimum so that all downstreams share as much<br>
work as possible. This means that the raw sources we provide need to<br>
contain the features that downstream need in each release and that it<br>
contains as few bugs as possible.<br>
<br>
In order to provide good "raw sources", we have a series of processes<br>
that assure that the expected features are present and that the worst<br>
bugs are either fixed or at least well-known. These processes include<br>
testing, bug triage (keeping the bug database in order), source<br>
release, code review, user experience design and code development. An<br>
important role present in most of those processes is that of the<br>
module maintainer.<br>
<br>
A module maintainer takes responsibility for a part of the source<br>
code. The maintainer will release code at known times and will have<br>
worked so it has gone through the processes outlined above. Of course,<br>
the maintainer cannot do all the work by herself, but is ultimately<br>
responsible for it. Normally the maintainer will have spent most of<br>
her time triaging and fixing bugs, and will be trying hard to keep the<br>
module "in order" so that in future releases the maintenance burden<br>
doesn't grow too much as new code gets in. An important process in<br>
keeping the maintenance burden in check is "code review", by which the<br>
maintainer checks that the new code that gets in a release won't<br>
increase the maintenance burden too much.<br>
<br>
The problem is that very few people in Sugar Labs are willing to do<br>
that maintenance work. We have people keen on packaging Sugar,<br>
deploying it, training teachers on it, developing new activities and<br>
new Sugar features, people write books about Sugar, setup help lines<br>
to support Sugar users, universities are given grants to study the use<br>
of Sugar, load machines with it, etc. Big amounts of volunteer time<br>
and money are being spent around Sugar but almost nothing is going to<br>
maintenance. Paradoxically, any use of Sugar requires that it is<br>
reasonably stable and most investments are made with the assumption<br>
that Sugar will keep being developed.<br>
<br>
I also want to make explicit that almost all maintenance effort has<br>
come from a few volunteers that are tired and disappointed about the<br>
little importance that has been given to this work. We are very close<br>
to have no maintainers at all in Sugar, meaning as well that nobody<br>
with the needed experience will be around to mentor new maintainers.<br>
<br>
<br>
== Proposal A: Get downstreams working better inside Sugar Labs ==<br>
<br>
I would say that the main reason why so many people are keen in<br>
investing on Sugar but so little goes into maintenance is<br>
miscommunication. Downstreams don't know how Sugar is developed, who<br>
develops it nor what is to gain by investing upstream nor what they<br>
risk by not doing so. And we cannot keep sitting on our hands waiting<br>
for each of them to have an epiphany.<br>
<br>
I don't want to give the impression that nobody is doing any of that<br>
outreach work, Walter has met with OLPC deployment representatives and<br>
has tried to explain it to them, Bernie is volunteering at Paraguay,<br>
Gonzalo is working at the OLPC deployment in Argentina and I have<br>
traveled to Uruguay to talk about this. But while these individual<br>
efforts have had a positive effect by themselves, we still have lots<br>
of other downstreams to reach and we also must follow up on those<br>
relationships. My hypothesis is that we are losing great opportunities<br>
by not having better covered this area.<br>
<br>
In order to do that, I think SLs should give maximum priority to<br>
revive the deployment team:<br>
<a href="http://wiki.sugarlabs.org/go/Deployment_Team" target="_blank">http://wiki.sugarlabs.org/go/Deployment_Team</a><br>
<br>
<br>
== Proposal B: Get our community thinking about resourcing ==<br>
<br>
If the deployment team was working as it should (with participation of<br>
several downstreams), the needs of our users and partners would be<br>
voiced there. But it's not enough with voicing needs, it can even be<br>
harmful if we make exigences on overworked volunteers because some<br>
will burnout and stop contributing. We also need to think about how we<br>
can get the resources to address those needs.<br>
<br>
A community team would be working on improving Sugar Labs' community<br>
of doing things. They would be making sure that SLs is a good place<br>
for downstreams to work together on Sugar and also a good place for<br>
volunteers to give their time and skills.<br>
<br>
Again, some individuals have been doing pieces of this, but my other<br>
hypothesis is that we need a coordinated effort. I find very<br>
disappointing that almost zero conversations are held about how to<br>
resource what we want to happen.<br>
<br>
<br>
== A concrete plan ==<br>
<br>
So I have voiced needs, but how are we going to resource them?<br>
<br>
First step is to create the teams and keep them alive. Doing so takes<br>
very little time if we stick to the minimum required. A team can be<br>
considered alive if it has a coordinator, a members list, regular<br>
meetings, a to-do list and an updated mission statement. I estimate<br>
that this can take the coordinator less than 10 hours per month.<br>
<br>
Of course, some team coordinators will also want to lead the team with<br>
a stronger effort commitment and will be proposing strategies,<br>
starting discussions, inviting members, etc. But that's something that<br>
is not strictly required for starting a team. If the team is kept<br>
alive, people will come and things will start to happen.<br>
<br>
So in order to get started, we need to find 2 individuals who care<br>
enough about Sugar to devote to it 10 hours per month of their time.<br>
It's also ok if the team's first item in the TODO list is to find a<br>
new coordinator, no need for a long term commitment.<br>
<br>
Regards,<br>
<br>
Tomeu</blockquote><div><br></div><div>Tomeu has provided us with an excellent review and plan. We should pay close</div><div>attention (and homage).</div><div><br></div><div>Ironically, it is the very quality of Sugar that Tomeu, Simon, and many others have</div>
<div>provided, that gives all those who are investing "<span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">Big amounts of volunteer time</span></div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">and money ... around Sugar" the confidence to invest—despite the shortage of</span></div>
<div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">maintenance.</span></div><div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "><br>
</span></div><div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">Direct, hands-on contact with Sugar software (compared with other widespread</span></div>
<div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">software) has been limited by the availability of convenient hardware (X0s), or</span></div>
<div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">convenient installation.</span></div><div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "><br>
</span></div><div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">That aspect is just now changing significantly as Sugar 0.88 is packaged in</span></div>
<div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">Fedora 13 and other popular distributions, and the Sugar on a Stick and similar</span></div>
<div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">distributions work out some installation and usability kinks.</span></div><div class="gmail_quote">
<span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "><br></span></div><div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">For example in Fedora 13 and soon in Ubuntu, anyone can use their Add/Remove</span></div>
<div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">Software tool, search for Sugar, and find the Sugar <span class="Apple-style-span" style="border-collapse: separate; font-family: sans-serif; line-height: 19px; "><s>Desktop</s></span> Learner Environment</span></div>
<div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">(sugar-emulator-0.88.0-1.fc13 (noarch)). This convenient installation can use Fedora's Automatic Bug Reporting Tool, 'abrt', to capture crashes and other bugs.</span></div>
<div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "><br></span></div><div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">Sugar will soon be more conveniently available in many more common places, and the pool of learners will grow beyond our dedicated pioneers.</span></div>
<div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "><br></span></div><div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">There is still much to be done to achieve the omnipresence of Sugar.</span></div>
<div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "><br></span></div><div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">1. Tuning is needed for VirtualBox and other virtual environments so that Sugar</span></div>
<div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "> can run conveniently and efficiently on Windows and Macintosh operating</span></div>
<div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "> systems.</span></div><div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "><br>
</span></div><div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">2. Work needs to proceed on Android, MeeGo, iPhone, iPad, and other mobile</span></div>
<div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "> operating systems.</span></div><div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "><br>
</span></div><div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">These sorts of things are anticipated by those investing in and around deployments,</span></div>
<div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">and are very exciting for anyone involved.</span></div><div class="gmail_quote">
<span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "><br></span></div><div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">So, for all those waiting on the sidelines, it's time to find your passion and niche,</span></div>
<div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">and begin to contribute, not only to the next generation of computing, but, to the</span></div>
<div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">next generation of Learning.</span></div><div class="gmail_quote"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "><br>
</span></div>