On Tue, Oct 27, 2009 at 1:58 PM, Maurizio <maurizio.gran...@gmail.com> wrote:
>
> What about adopting a simpler strategy?
> What do you think about this: every 6 months (or 9, or 12 whatever),
> the developers are asked to focus on producing bugfixing instead of
> introducing new features.

Asked by whom?   For how long? And, who are "the developers"?   The
Sage project has no fulltime employees: Michael Abshoff was the only
one we ever had, and his funding ran out in May.   The vast majority
of people who work on Sage do so for very specific reasons related to
their own research or teaching, and consequently they work on
specifically what they want to work on.   Moreover, I try my best not
to boss anybody around involved in the project (if anybody feels
bossed around by me, definitely let me know -- it's not intentional).

I personally would be uncomfortable telling "the developers" to focus
for a month (say) on producing bugfixes instead of new features.
However, I think there is value in thinking about specific ways to
improve the quality of Sage overall.  There are many things we can all
do to help.  Here are some concrete suggestions:

1. Improve the doctest coverage.  It is currently 79.5%:
$ sage -coverageall
Overall weighted coverage score:  79.5%
Total number of functions:  22734
We need  114 more function to get to 80% coverage.
----------

TAKE ACTION: Anybody reading this right now could sit down and put a
dent in that "114 more functions".


2. Report bugs.  I checked yesterday and there are 822 known bugs in
Sage, according to trac.   If you find a bug, make sure to report it
and get it into trac.  Don't just blow it off.  The more bugs we know
about (with clean, easy to test reproducible examples!), the better.

TAKE ACTION: I bet you know about one bug in Sage that isn't listed in
trac -- report it, and make sure it gets listed there!

3. Organize a bug day.  A few years ago Martin Albrecht introduced a
"Bug Day" idea into Sage development.  This is a pre-announced day
when people meet on irc and fix bugs.  We have had 17 of these, but
they stopped for no apparent reason nearly a *year* ago.  See the list
here: http://wiki.sagemath.org#BugDays

TAKE ACTION: Organizing a Bug Day is easy!  Just come up with a time,
announce it on sage-devel, see if you can get some other people
interested, make a list of specific bugs to work on (with some common
theme), show up, "keep score", and report on what happened in another
sage-devel followup email.


4. Help write a Selenium test suite for the sage notebook.   If we had
a sufficiently good one, this would have prevented most (all?) of the
many recent issues with the notebook.  I personally won't do any
nontrivial further development on the notebook or merging of patches
until there is a test suite.

TAKE ACTION: I'm going to do this.


> In this way, what happens is that one
> release every "n" months could be considered more stable and reliable,
> and these releases are kept on the website available for downloading
> together with the current release.
> In this way, I hope, there's really no overhead in the current work.

This is trying to introduce some committee-style rules into the future
of Sage development, instead of suggesting specific concrete actions
people can take to improve the quality of Sage.   This makes me a
little bit uncomfortable, as if I'm being told what to do.   It also
seems idealistic to ask a hundred people to work a few weeks on fixing
bugs -- "the developers are asked to focus on producing bugfixing
instead of introducing new features" -- and assume that this will
result in "no overhead" and a release that is "more stable and
reliable".  My concerns are that:

  (1) This suggestion asks many people to do for free a bunch of
painful, difficult work that they likely don't want to do, and don't
have the time to do.

  (2) Without a top notch test suite and multiple rounds of alpha/beta
testing, often fixing a bunch of bugs can easily results in software
that is less stable and more buggy.   I think Sage has a good test
suite, but honestly it is nowhere near where I want it to be -- which
is 100% doctest coverage, plus a large suite of randomized testing
that is run 24/7 on a cluster hunting for bugs, like what is done in
the MPIR project.

I want to emphasize point (2).  In my experience, *most* people's
attempts to fix a bug results in something they think fixes the bug,
but in fact adds several other bugs.   This is just the reality of
software engineering.  This is the case for extremely experienced
developers new to a project, for experienced developers who have been
involved for a long time, but forget something subtle, etc.

I'm all for fixing bugs, but don't consider it necessarily capable of
producing a more *stable* Sage release -- indeed it can result in a
much less stable one, unless there is a perfect test suite.

> Of course, some effort in changing goals twice a year would be
> required, so that old problems are solved.
>
> Thanks for discussing this
>
> Regards
>
> Maurizio

Thanks to you to.  Please try not to take any offense to what I wrote
above.  I'm just trying to engage in a helpful intellectual way.
Honestly, I would rather be doing something else right now, but you've
patiently and painstakingly laid out your thoughts in detail
repeatedly, so I think it is unfair if I don't respond.

 -- William

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to