Essay RFC delayed.

Ian Grigg iang at systemics.com
Mon Aug 16 19:11:05 UTC 1999


Some quick comments below.

iang




Law of Diminishing Returns

I think the description is slightly miss-characterised,
although not necessarily in the wrong way.

Consider the Adam Smith example.  He describes two factors
of production - land and workers - and one process of
production - growing rice.

His law of diminishing returns says that if we hold one
factor constant (in the example, land), and we increase the
other factor (by adding more worker), then we can increase
output, but the marginal increase for each new worker
goes down.

But, it is important to realise that if we increase
both factors, the law of diminishing returns does not
limit increases in output.  More on that later.

Projects

So what are projects, and what are their factors?  Brooks
example can be characterised as a project with two factors,
being programmers and managers.  If we hold managers constant,
and increase programmers, LODR tells us that productivity
will increase less each time another programmer is added.

Brooks says something different.  If a project is late,
then adding more programmers or managers will make it
later.  This is different to how Adam Smith described it,
in that Brooks is bringing in the time factor.  As
described in your draft, complexity argument can be used
to infer that diminishing returns occur rather than benefits
in time.

So what is happening here is that the process is time-bounded,
just like the growing of rice is time-bounded for the original
process.  Now, we could shoehorn the time into LODR by calling
time a factor of production, but I suspect that this is unnecessary.

OS projects

How do Open Source projects differ from the above?
In two very important ways.  Firstly, OSPs have no
time-bound.  That is, there is no deadline whereby
the next version of GNOME has to be delivered, "or
it's your head!"  This basically says that Brooks
law doesn't apply, unless there is a deadline.

You can't be late if you haven't got a date.

Secondly, the complexity argument applies with OSPs
just as much as it applies to other projects.  However,
there is an easy way of dealing with it - simply partition
off various sub-projects and let the new programmers rip
into it.

This happens all the time, so why doesn't it help with
Brooks' project?  Because Brooks has responsibility for
meeting an objective, and splitting off another sub-project
doesn't necessarily help with the objective.  Let's assume
that if it did, he would have already done it, so his only
choice is adding programmers and adding complexity.

Back to the OSP.  When the OSP splits of a sub-project, it
can do it because it is beholden to nobody, and it can create
its objectives on the fly.  Hackers decide what they want to
work on, so they can recast the objectives so that they can
work efficiently on meeting them.

Scaleability

How often can we do this?  Well, with an OS project that
has plugins and interfaces, like most good ones, there is
an infinite amount of stuff that can be done, once we decide
that our objective is to do what we want.

Brooks doesn't have that luxury, because he has an objective
that is fixed.  We can now see that the deadline above is
included in the objective, but there are several components:

    * what to deliver
    * when
    * what factors permitted

Brooks can't change his scale because he can't change the
original objective.  OS is infinitely scaleable because we
didn't set the scale at the beginning.  Or, to cast it in
Adam Smith terms, when we add more workers, we simply add
more land.  No problem, more rice, as long as the weather
holds.

Summary

OS projects differ from commercial projects because they lack
a hard objective, one that includes time and deliverables.
As this assumption is critical to Brooks' law, it doesn't
necessarily apply to OS projects.  We can break Brooks law
two ways - by ignoring the time limit and by changing the
objective.

Also, the only critical factor of production is programmers,
so the law of diminishing returns also fails to hold.  There
is no fixed plot of land limiting the production of rice.
--



More information about the License-discuss mailing list