Re: sustainable development in LilyPond

2010-08-24 Thread Graham Percival
On Mon, Aug 23, 2010 at 11:06:02AM +0200, Jan Nieuwenhuizen wrote:
> As I read it, your mentoring efforts did not get you what
> you wanted (doc writers), but it got you something else
> (possibly more valuable/hard to get?): developers.  Is
> that correct?

What I wanted, most of all, was to have a doc team to replace me.
In late 2006 or early 2007, I realized that I was completely
"burnt out" with respect to doc stuff, and I really wanted to
start doing programming.  In particular, I wanted to fix all the
old collision bugs that nobody else seemed to care about.

So I launched the biggest "resignation period" ever: a 12-month
project to train anybody who wanted to do doc stuff.  4 months
into the public, I publicly announced that I would be leaving at
the end of it.  And when that day came, I officially left for 4
months.

When I returned, there was nobody working on docs.  Some people
were programming; some people wanted to do docs but had health
problems; some people had drastically changed circumstances in
real life.  Everybody had good reasons for not doing doc work any
more, but the sum was still 0 people on the docs, out of 21 people
who participated in GDP.


So, in early 2009, with considerable reluctance and a general
sense of failure, I started doing doc work again, and abandoned my
hopes of fixing collision bugs.

> If so, mentoring may very well not get you what you set
> out for, but in a wider context could get you "more
> project resources".  
> 
> Do you have an idea of how much time you put into this
> mentoring, and how much overall project development time
> you got (or may/will probably get) out of it?

As I said on the page on GDP in the slides: I spent 700-800 hours
on GDP.  Yes, that's 20 weeks of full-time work .  Almost half a
year (or maybe more in Europe, with fewer hours per week and more
holiday time :)

During the course of GDP, the project completed 600-900 hours of
doc work.  In other words, there was no clear benefit or loss to
having me teaching instead of doing doc work myself during that
period.

It's harder to estimate the amount that we've gotten back since
then...  anywhere from 500 - 1200 hours of doc work, with
potentially much more work from programmers.  I mean, if we claim
that GDP provided the "spark" for Patrick and Carl to get
involved... and if we claim that Carl was the "spark" for all the
Frogs... then we're probably looking at a total of 2000 - 3000
hours of work "because of" GDP.  But I think some of those steps
are a bit of a stretch.


Now, the most important question (to me) is not "was it worth 800
hours of my time", but rather "was that the *best* use of 800
hours of my time [towards lilypond]".  I mean, there's a lot I
could do in that time.
- settle the C+scheme indentation debate and provide an automatic
  tool: 10 hours.  (which I'm planning on doing in Sep anyway)
- exhaustively learn scheme and our lilpond scheme stuff: 50
  hours?  100 hours?
- learn enough about programming so I can start reviewing some of
  those 8-week old patches that nobody is working on: 10 hours?
  50 hours?  90 hours?
- switch to the waf build system: 200-300 hours
- add braille output to lilypond: 200?  400?  600 hours?
- run GLISS, standardize output: 100-200 hours
- write new website: 50 hours estimated, about 300 hours actual,
  and now complete
- get the Bug Squad organized so that users and developers no
  longer complain about losing their bug reports: 50 hours so far
- fixing those 4-year-old collision bugs: 400 hours should make a
  serious dent in them, if not finish them all.


Now, each of these items will do different things for future
developers.  Braille output would attract huge attention from the
accessiblility community (and their developers), but probably
wouldn't be a blip on anybody else's radar.  Code indentation is a
low-level annoyance that probably won't do anything directly, but
reducing annoyance isn't a bad thing.

Reviewing people's patches is probably the #1 thing to do to
retain developers -- ignoring patches is a great way to drive
people away.  So maybe I should prioritize learning more about
programming stuff... oh, but if I drop all my release work now,
lots of people will be pissed off.  At the very least I should
wait until 2.14.0 is out.

etc.


With all that in mind, I am confident in stating that GDP was
*not* an effective way of gathering more project resources.  I
don't mind doing it as an experiment, but the results show that
unlimited mentoring is *not* effective.

Cheers,
- Graham

___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: sustainable development in LilyPond

2010-08-23 Thread Jan Nieuwenhuizen
Op maandag 02-08-2010 om 19:31 uur [tijdzone -0700], schreef Graham
Percival:

Hi Graham,

Great talk.

How do you reach your conclusion that spending unlimited
mentoring is not effective?

As I read it, your mentoring efforts did not get you what
you wanted (doc writers), but it got you something else
(possibly more valuable/hard to get?): developers.  Is
that correct?

If so, mentoring may very well not get you what you set
out for, but in a wider context could get you "more
project resources".  

Do you have an idea of how much time you put into this
mentoring, and how much overall project development time
you got (or may/will probably get) out of it?

Greetings, Jan.
-- 
Jan Nieuwenhuizen  | GNU LilyPond http://lilypond.org
Freelance IT http://JoyOfSource.com | Avatar®  http://AvatarAcademy.nl  



___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: patch-reviewing and the i-ching (was Re: sustainable development in LilyPond)

2010-08-04 Thread Graham Percival
On Wed, Aug 04, 2010 at 02:33:30PM +0200, Mike Solomon wrote:
> I am a bit lost with respect to what has to be done and who's working on
> what, but I've been chipping away as best I can on issues that, to me, seem
> under-commented-upon.

In theory, the Status:Started, Owner:foo indicates that.  In some
cases, it only indicates that foo is responsible for shepherding
it.

Exceptions: we don't always keep those updated, and anything
marked with percival.music.ca or Valentin is likely to be a
historical inaccuracy.

> I think that Graham's sustainable development presentation is excellent,
> especially the part about swag,

btw, adapted from
http://www.daemonology.net/blog/2009-07-14-a-call-for-schwag.html

> In parallel to what he says, I feel that another way to get things
> done on a more short-term basis (i.e. before 2.14 and before Graham puts a
> sustainable plan into place) is to randomly assign issues to willing
> participants via a lottery.

I don't think we need any policy change to deal with 15 issues
(expected: 30 Criticals before 2.14).  In fact, any change is
likely to result in mythical-man-month problems.  On an individual
basis, it would be great if you chose a few Critical issues to
investigate, make comments, and maybe even produce a patch.


The balance of "investigate new Critical issues vs. review a patch
for a low-priority enhancement" is a tricky one, but I'd like to
encourage people to do more patch-reviewing and *less* work on new
(or un-investigated) issues.  Yes, this delays 2.14, but I think
that having better discussion of post-initial-patch development
effort will pay off more in the long run.

My hope is that Marek (the guy who adds ignored patches to the
tracker) job is supposed to be a failsafe -- he should have
nothing to do.  Once a patch is sent to lilypond-devel, we should
have a discussion starting within 3 days, and continue discussing
it until the patch is committeed or withdrawn.

Cheers,
- Graham

___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


patch-reviewing and the i-ching (was Re: sustainable development in LilyPond)

2010-08-04 Thread Mike Solomon
On 8/4/10 1:25 PM, "Trevor Daniels"  wrote:

> 
> David Kastrup wrote Wednesday, August 04, 2010 11:27 AM
> 
> 
>> "Trevor Daniels"  writes:
>> 
>>> 1) There is no architectural overview and no program logic manual
>>> to
>>> guide new developers through the early stages.
>>> This has the advantage that only experienced and expert
>>> coders able to deduce the design from the source code are
>>> able to contribute significantly, ensuring high quality.
>> 
>> I consider that reverse logic.  The problem is that you are likely
>> to
>> have people reinventing the wheel, leading to a loosely connected
>> garden
>> of code written by x, code written by y where everybody has
>> his own
>> ways and subroutines for solving particular subtasks.
> 
> Yes; I worded it badly.  I meant, "The only advantage this has
> is that ...".  You correctly point out the outweighing
> disadvantages.
> 
> It was clear, I hope, that I am advocating better documentation,
> not less.
> 
> Trevor

I am a bit lost with respect to what has to be done and who's working on
what, but I've been chipping away as best I can on issues that, to me, seem
under-commented-upon.

I think that Graham's sustainable development presentation is excellent,
especially the part about swag, as I am moving from a wine-drinking country
to a beer-drinking country in two weeks and could use a lilypond bottle
opener.  In parallel to what he says, I feel that another way to get things
done on a more short-term basis (i.e. before 2.14 and before Graham puts a
sustainable plan into place) is to randomly assign issues to willing
participants via a lottery.  Said participant would then be responsible for
stewarding the issue until resolution, which could involve anything from
coordinating efforts on an untouched problem to simply running a test on a
patch that is quite evolved and signaling to one of the developers that it
is ready to be pushed.  It would also be a great way for new folks (like me)
to learn - I chose to work on issue 1173 at pseudo-random (Python's random
library) and learned a great deal in doing so.

If there is sufficient interest in this idea, I think it would be a good way
for newcomers and experienced lilyponders alike to move forward with
outstanding issues.

~Mike



___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: sustainable development in LilyPond

2010-08-04 Thread Trevor Daniels


David Kastrup wrote Wednesday, August 04, 2010 11:27 AM



"Trevor Daniels"  writes:

1) There is no architectural overview and no program logic manual 
to

guide new developers through the early stages.
This has the advantage that only experienced and expert
coders able to deduce the design from the source code are
able to contribute significantly, ensuring high quality.


I consider that reverse logic.  The problem is that you are likely 
to
have people reinventing the wheel, leading to a loosely connected 
garden
of code written by x, code written by y where everybody has 
his own

ways and subroutines for solving particular subtasks.


Yes; I worded it badly.  I meant, "The only advantage this has
is that ...".  You correctly point out the outweighing
disadvantages.

It was clear, I hope, that I am advocating better documentation,
not less.

Trevor



___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: sustainable development in LilyPond

2010-08-04 Thread David Kastrup
"Trevor Daniels"  writes:

> 1) There is no architectural overview and no program logic manual to
> guide new developers through the early stages.
> This has the advantage that only experienced and expert
> coders able to deduce the design from the source code are
> able to contribute significantly, ensuring high quality.

I consider that reverse logic.  The problem is that you are likely to
have people reinventing the wheel, leading to a loosely connected garden
of code written by x, code written by y where everybody has his own
ways and subroutines for solving particular subtasks.

-- 
David Kastrup


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: sustainable development in LilyPond

2010-08-04 Thread Trevor Daniels


Graham Percival wrote Wednesday, August 04, 2010 9:41 AM





On Wed, Aug 04, 2010 at 09:10:25AM +0100, Trevor Daniels wrote:


1) There is no architectural overview and no program logic manual 
to

guide new developers through the early stages.
This has the advantage that


No; there's no advantage to this.  It's simply due to an imbalance
of high skill, available time/interest, and an overwhelming number
of other concerns.

I'm quite aware of the problems that this causes for new
developers, but as long as we have over 10 patches waiting for
review for the past few months, the current bottleneck is *not* in
the initial "getting started" stages.  The current bottleneck is
reviewing patches.


That's true; but I didn't say this was a current bottleneck,
I said it was a danger to sustainability, the topic we were
discussing.


The CG section on programming has been improving slowly but
surely, as have the Frogs.  I wish that we had more Frogs
submitting doc patches to the CG explaining the stuff they've
learned instead of leaving that task to the already over-burdened
Carl, but I didn't think it was worth raising this point directly.


I think it is worth pushing.  Most of LM 3 was written as I
learned how to use the IR.  It doesn't matter if a doc patch
is incorrect - it would almost certainly illicit a rapid
response from a core developer and we would all learn.




2) There is no overall design plan to guide future development.
New features are added in an ad hoc fashion at the whim of 
individual

developers.  The danger is that the overall structure will lose
coherence, properties will increasingly behave in inconsistent 
ways, and
the complexity of the user interface and the barriers to new 
developers

will increase.
At present we rely on Neil and other core developers to
maintain the integrity of the design by reviewing patches,
but that is not guided development.


This part and parcel with the general way that volunteer
open-source projects work, though.


I know.  It is probably the greatest defect of OSP.


Projects with large commercial
backing (like mozilla and openoffice.org) can give a roadmap with
the knowledge that they have 20/50/100 developers to assign as
they wish.


True and of course we can't do this.  But we could set out
some desirable directions and goals.  Consistently thought-out
ones, rather than individual feature requests.  If such a
roadmap existed it might prompt contributors, frogs even, to
work on those items.


We have an opportunity within GLISS and GOP to tackle these
dangers, although their terms of reference would need to be
widened to embrace them.  GLISS would need also to consider
future needs and how they would be accommodated in the
input syntax, and GOP would have to break down the barriers which 
new

developers currently have to overcome themselves.


This is possible, but I don't think it's realistic.  In
particular, it would need:
1. a large amount of developer time being placed under the control
of a benevolent dictator (or council of dictators), and


Yes.  All the most successful OSP have this.


2. the "mundane" development tasks to be sustainable, and to have
enough effort to cover those tasks without needing to distract any
minions working on #1.

I'd say that we're at least a year away from having sustainable
mundane tasks... the Bug Squad will probably be sustainable in 2-4
months, but GDP utterly failed at creating a sustainable doc team,


Don't run this down.  The docs were immeasurably improved by GDP.
This was beneficial dictatorship in action.

It was and still is unrealistic to expect people to work several
hours a day on LP for more than a year or so (with one or two
dedicated exceptions).  So the goal should be to accommodate a
flow of people coming in, working a while, and then leaving.
So we have to make it as easy as possible for newcomers to
contribute easily and quickly, to both docs and development.
The concept of permanent teams is fine, but not teams with
permanent members - there will always be a flow.


However, IMO we shouldn't be fussing too much about these
long-term issues until 2.14 is out.  We need a stable foundation.
(it's a bit unfortunate that the talk was when it was)


OK, agreed.  I've made my comments while they were in my
mind.  I'll back off now.

Trevor



___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: sustainable development in LilyPond

2010-08-04 Thread Graham Percival
On Wed, Aug 04, 2010 at 09:10:25AM +0100, Trevor Daniels wrote:
>
> 1) There is no architectural overview and no program logic manual to 
> guide new developers through the early stages.
> This has the advantage that

No; there's no advantage to this.  It's simply due to an imbalance
of high skill, available time/interest, and an overwhelming number
of other concerns.

I'm quite aware of the problems that this causes for new
developers, but as long as we have over 10 patches waiting for
review for the past few months, the current bottleneck is *not* in
the initial "getting started" stages.  The current bottleneck is
reviewing patches.

The CG section on programming has been improving slowly but
surely, as have the Frogs.  I wish that we had more Frogs
submitting doc patches to the CG explaining the stuff they've
learned instead of leaving that task to the already over-burdened
Carl, but I didn't think it was worth raising this point directly.


> 2) There is no overall design plan to guide future development.
> New features are added in an ad hoc fashion at the whim of individual 
> developers.  The danger is that the overall structure will lose 
> coherence, properties will increasingly behave in inconsistent ways, and 
> the complexity of the user interface and the barriers to new developers 
> will increase.
> At present we rely on Neil and other core developers to
> maintain the integrity of the design by reviewing patches,
> but that is not guided development.

This part and parcel with the general way that volunteer
open-source projects work, though.  Projects with large commercial
backing (like mozilla and openoffice.org) can give a roadmap with
the knowledge that they have 20/50/100 developers to assign as
they wish.

Even something as "simple" as documentation writing was a huge
challenge to manage for the guided development in GDP.  I can't
imagine any such system working in lilypond [1].

[1] the single exception would be if we got a 50,000+ research
grant to do some notation project.  But that's not at all likely,
and I can't see this working with individual donations.


I'm comfortable with the "herding cats" style.  Most of the time,
we let people wander around at will; once in a while, we'll have a
Grand Project that attempts to capture people's imagination and
make them all move in (approximately) the same direction.

> We have an opportunity within GLISS and GOP to tackle these
> dangers, although their terms of reference would need to be
> widened to embrace them.  GLISS would need also to consider
> future needs and how they would be accommodated in the
> input syntax, and GOP would have to break down the barriers which new 
> developers currently have to overcome themselves.

This is possible, but I don't think it's realistic.  In
particular, it would need:
1. a large amount of developer time being placed under the control
of a benevolent dictator (or council of dictators), and
2. the "mundane" development tasks to be sustainable, and to have
enough effort to cover those tasks without needing to distract any
minions working on #1.

I'd say that we're at least a year away from having sustainable
mundane tasks... the Bug Squad will probably be sustainable in 2-4
months, but GDP utterly failed at creating a sustainable doc team,
and I'm not certain if anybody in the world other than Jan and me
can build releases.  (I know that Patrick's been working on some
stuff, but I don't know if he can build everything)


However, IMO we shouldn't be fussing too much about these
long-term issues until 2.14 is out.  We need a stable foundation.
(it's a bit unfortunate that the talk was when it was)

Cheers,
- Graham

___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: sustainable development in LilyPond

2010-08-04 Thread Trevor Daniels


Graham Percival wrote Tuesday, August 03, 2010 3:31 AM

As you might recall, I gave a talk at RMLL 2010 
about sustainable development in F/OSS.


Nice talk.  It prompted me to think about my own involvement
with LilyPond.  I volunteered for doc development due to
the guilt pressure at the start of GDP, IIRC.  I continued
because I enjoyed it, spending around a year working
several hours most days on the LM.  Eventually pressure of
other things which I'd been neglecting caused me to back off,
and recurring RSI prevents long sessions at the keyboard,
so now I do little more than keep in touch :(  


On the main point I can see two dangers to sustainability.

1) There is no architectural overview and no program logic 
manual to guide new developers through the early stages.

This has the advantage that only experienced and expert
coders able to deduce the design from the source code are
able to contribute significantly, ensuring high quality.  But
there are very few such people, and it is conceivable the
number might decline to zero at some point.

2) There is no overall design plan to guide future development.
New features are added in an ad hoc fashion at the whim of 
individual developers.  The danger is that the overall 
structure will lose coherence, properties will increasingly 
behave in inconsistent ways, and the complexity of the user 
interface and the barriers to new developers will increase.

At present we rely on Neil and other core developers to
maintain the integrity of the design by reviewing patches,
but that is not guided development.

We have an opportunity within GLISS and GOP to tackle these
dangers, although their terms of reference would need to be
widened to embrace them.  GLISS would need also to consider
future needs and how they would be accommodated in the
input syntax, and GOP would have to break down the barriers 
which new developers currently have to overcome themselves.


Trevor


Trevor




___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: sustainable development in LilyPond

2010-08-03 Thread Karl Hammar
Graham:
...
> http://percival-music.ca/blog/2010-08-01-sustainable-development.html
...

Thank you for the slides, I liked them.

Regards,
/Karl Hammar

-
Aspö Data
Lilla Aspö 148
S-742 94 Östhammar
Sweden
+46 173 140 57



___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


sustainable development in LilyPond

2010-08-02 Thread Graham Percival
(sorry if this is a resend; I seem to be having problems with email)


Hi guys,

As you might recall, I gave a talk at RMLL 2010 about sustainable
development in F/OSS.  I took most of my examples from lilypond,
so it may be of interest to you:
http://percival-music.ca/blog/2010-08-01-sustainable-development.html

Also, if you ever wonder about the thought process behind some of
my policies (or at least interests), this is it -- I'm trying to
make the lilypond project sustainable.  I highly recommend
skimming through the slides.

Cheers,
- Graham

PS my flight is in 1 hour + 4 minutes, and I expect to be waking up in
Glasgow in
about 24 hours.  Barring any compilation problems, 2.13.29 should
be in about 30 hours from now.

___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel