Hi Everyone,
This is another review in the context of the Boost Asset Stewardship
proposal(s).
I am not affiliated with either the C++ Alliance or the Boost Foundation,
although in the past I talked with the Alliance about the potential
compensation for my contributions to Boost, and I represented the Alliance
in one WG21 meeting, in Rapperswil.
I maintain Boost.Optional library, try to contribute to all Boost reviews,
and have managed the review of Boost.SafeNumerics library. I consider
myself a Boost Developer.
The subject of the review is, which legal organization formally owns the
Project's assets, and who actually manages them. But the questions I, as
many others, am trying to answer is:
* What is going to be the shape and the popularity of Boost libraries?
* Where will the funding come from?
* What will the Boost community look like?
* To what extent will the Boost community be in control of things?
The tricky part is that the goal of the Boost Foundation in the past, as
well as the future goal of whoever will manage the Boost assets is so that
the developers can focus on the development, and need not study the
administrative and financial stuff. Yet it is the developers that need to
make the decision regarding the administrative and financial stuff now.
One thing that I didn't have to pay attention to in the past, and now is
becoming clear to me, is that in order to be able to host a host of
libraries, test them continuously, improve the infrastructure tools, and
build new tools (like the one for documentation), costs huge amounts of
money (by my standards). It is my understanding that this cost has been
primarily covered by the C++ Alliance. But it is also my understanding that
this happened under the Boost Foundation's government, and theoretically
the C++ Alliance could continue to make financial and technical
contributions under the government of the Boost Foundation. I also hear
that this is practically impossible, for reasons that are not all clear to
me. I understand that there are fundamental differences in philosophy. The
Boost Foundation has the volunteer model, where people devote their private
time as their lives permit, and that the C++ Alliance is an organization
with huge funds, and the capability to employ people. I also understand
that it is a risk for the C++ Alliance to invest huge assets in the Boost
project, knowing that ultimately the efforts can be torpedoed by the
decisions of the Boost Foundation. I am not saying that this is or has been
the case. I am only pointing out the obvious consequences of the mistrust.
The Boost Foundation is volunteer-driven. This means that people work on
what is deer to their heart, and if something is not deer to anybody's
heart, it may not be done, even if important. The volunteers can only put
as much effort to their work as their private life permits. This means
sometimes they have to give up. The effect might be that a volunteer-based
organization may appear unreliable. On the other hand, volunteer work
inspires more volunteers.
I was surprised to find that the Boost Foundation's, as it is today,
primary goal is not to support Boost's interests: it supports many
initiatives, Boost being one of them. I was misled by the name. People,
including myself, have pointed out that the support for the Beman project
is somehow in conflict with supporting Boost. But having thought more about
it, I no longer feel this way. I am now inclined to think that the Beman
project is the best thing that could happen to minimize the damage caused
by the current process of standardizing libraries in WG21. So if there is
any glitch in the Boost Foundation, it is the support for some proceedings
in WG21. This is because WG21 innovates and experiments, instead of
standardising the things that work.
I think the Boost Foundation has been doing a good job at steering Boost.
If people feel that "they are doing nothing", this might be the indication
of the job done right: Boost is rolling, the lights are on, the Foundation
is not getting in the way of the developers. Most of the job done is
invisible. The question is, can we still improve if we adopt the Fiscal
Sponsorship Agreement from the Alliance.
I understand that the Agreement gives the Alliance the sense of stability:
that the efforts that cost years and millions will be integrated. This
would help secure the development of essential components that we need:
* the modularization
* the platform for communication that is open for the young, while not
discriminating the old (like myself)
* a tool that helps produce documentation.
Except for the first, I do not think they can be achieved without a
substantial financial effort.
Risks:
* With this huge and single source of income, we will be looking more like
a company than a volunteer organization.
* It is likely that because of this Boost will not attract new volunteers
* It is likely that no-one else will feel the need to sponsor Boost.
But even if some of these risks were to materialize, the value of having a
tool for writing documentation for C++ libraries is so huge: it goes beyond
Boost.
My concern from a different level is that after all the chaotic and
unpleasant (mis)communication in the Mailing List, I am left with the
impression that the C++ Alliance is ready to break the established rules in
order to achieve the goals. This may be a deeply unfair statement, but I
can't help it: this is what the shreds of information that I receive
suggest.
The proposed Agreement attempts to secure the Boost project against the
situation of an irresolvable conflict, but no agreement can secure your
interests when the agreements are not respected. During this review period
I have heard late but honest explanations from the Boost Foundation members
that explain their actions and show their motivation, and I find them
credible. I do not believe I have heard the account from the C++ Alliance
that would help understand what motivated the organization to act the way
they did.
One last concern is that I am not comfortable with the fact that the
proposed Fiscal Sponsorship Agreement re-uses the term "Steering
Committee". As indicated in other messages, the Boost Foundation *is* the
Steering Committee, or rather continues the tradition of the Steering
Committee with the same people onboard (not all, obviously), and with the
same ideals. In order to honour them and in appreciation of their work, I
think the new setup should not intercept this name.
Regarding the question of attracting or repelling new contributors, I find
it hard to believe that the enforced Code of Conduct could have a
significant impact on the results. In my opinion, what could have a bigger
impact is when Boost becomes modular, people can afford to use it more in
more contexts, appreciate it more, and some of them decide to contribute.
Regarding the Foundation's counter-proposal. I do not find anything
material in it. I read it as "let's leave the things as they are, but let's
enforce the CoC and increase transparency and efficiency". As I said, I
cannot see how the enforced CoC could make a substantial difference.
Regarding the efficiency and transparency, I do not find anything
substantially wrong with them today: they are good enough. Today we are
facing a crisis, but other than that I think the Boost Foundation is doing
a good job. The Boost Foundation also mentions the modularization and the
new communication platform, but even the Foundation members admit they do
not believe that making such big projects would work with the Boost's
consensus-based philosophy.
In closing, I would like to say that I am grateful to the members of both
the C++ Alliance and the Boost Foundation for your contributions to the
Boost project and community. I have certainly benefited from your work, in
many ways.
I recommend accepting the Fiscal Sponsorship Agreement from the C++
Alliance, as I see the potential in it to significantly improve the
situation of Boost, and other good libraries out there (I mean the new
documentation tool), while recognizing that this is a risky decision.
Regards,
&rzej;