On Sun, 2009-05-03 at 11:39 -0500, Dick Hollenbeck wrote:
> >> I have never seen a project that needs to be forked as badly as this 
> >> one.  You sit around and nit pick about about which dinner glasses to 
> >> pour the water into.  Somebody shows up with a firetruck wanting to fill 
> >> the swimming pool and you can't handle it.
> >>
> >> This firetruck ain't waiting.
> >>     
> >
> > Okay, Mr. Firetruck.  Put up or shut up.  What is so wrong with this
> > community that it needs to be forked?  Give us your manifesto.  The
> > soapbox is ready for you to shout it out to the masses.
> >
> > I will then try to address each issue that you have in turn.  I have
> > been where you are standing, and I am sure that I can withstand any
> > flame you bring at me or this community.
> >
> > That goes for anyone else that is thinking the same thoughts.  Vent it.
> > It will feel good, and maybe we can move forward.  Forks should be the
> > last resort of the exiled or oppressed.  You are not the former, and you
> > need to make a solid case for the later.
> >
> >   
> >> BTW, the reason this patch was submitted as one is that it cannot be 
> >> separated.  The system won't work with the reduced tms_seq clocks.  When 
> >> does trust enter into this?
> >>     
> >
> > Yes, it could be separated.  I could do it myself, but I have my own
> > list of tasks.  My response was based on community standards with which
> > you apparently do not agree.  That is fine.  I was not imposing them,
> > rather providing my opinion.  A strong opinion to be sure, so what?
> >
> > Again, I did not deny the patch; I deferring it to others guidance,
> > because it touches key elements of the system.  I am trusting other
> > maintainers that have more experience to judge its correctness, because
> > it is bigger than I can get my head around.  They can chose to ignore or
> > accept my opinion about it.
> >   
> 
> Zach,
> 
> You are not, at least not yet,  a poster boy for what is wrong with this 
> project.  So I apologize to you personally that I was not precisely 
> clear that my anger and frustration is with the project and not with 
> you.  You were doing your job as you have seen it done before, and as 
> you understand it.
> 
> You asked to try and understand my point of view. I thank you for that.

No worries.  I did not take it personally; likewise, I hope that you
understand that I am trying to play a role of diplomat here.  So please
consider that most of my arguments here will be focused on finding
resolution that is satisfactory to everyone.  As such, I will be playing
devil's advocate frequently in the following; I simply pose arguments
that I see as potentially valid.  Still, you do win some points. :)

But before I start, I do want to stop and pointedly thank you for the
contributions that you have made to OpenOCD.  I appreciate the donation
of time and effort by skilled developers like yourself, and I am
motivated in these matters because I see only mutual loss if you chose
to leave the OpenOCD community.

> In a nutshell, the project policies make it too expensive for me to 
> continue to contribute.  It is about money, which comes from the 
> expenditure of wasted time.
> 
> It is that simple.

I understand that, and I can tell you that forking is more expensive.
Despite their costs, collaboration and consensus are better.  With this
in mind, are you willing to work with the community to develop policies
that would be satisfactory?  This will require give and take; you cannot
expect that all of your expectations will be satisfied.
 
> More elaboration on my points of view:
> 
> 
> 1) Qualified development expertise is expensive.  It is not free.

Yes.  As a professional software developer, I expect to be paid for most
of my time, and I value the time that I donate to open source projects
equally.  Something to take from this: you are not the only qualified
developer in this community.

> 2) Not all development contribution sources, i.e. individuals, are 
> equally qualified.

No qualifications are truly unique or irreplaceable.  That said, I value
your contributions and character; every person brings something unique
to a project, and it is always a loss to see those skills depart.

> 3) Any use of the linux kernel project as a role model for this project 
> is frought with self peril because the linux kernel project is a funded 
> project where developers get salaries and can afford to erect safety 
> barriers to progress.  It is about money.  They can afford procedures 
> and policies, which if adopted by this project, would needlessly impede 
> progress.  You may want to impede progress, I do not.  Perhaps someday 
> there will be an openocd foundation with a corporate financial payroll, 
> and this may be the only part of the linux kernel project that should be 
> aspired to until there is funding.  Until then it is prudent to realize 
> that beggars cannot be so choosy.

The first problem that I see with this argument is that it fails to see
the benefits of the processes.  It is not about money.  It is about
managing the complexity of a large user base and high rate of change.

The second problem relates to your conclusions about cause and effect.
I believe Linux attracted money because it is a high quality kernel.
Period.  Money did not build the kernel; passionate hackers did.  If
anything, the cost of participating in the development of the Linux
kernel has remained a constant over the years, thanks to improved
processes and tools that I have been described.  Of course, the costs
will be exorbitant unless you have learned to abide by the practices,
but that can hardly be claimed to the fault of the processes.

The final problem goes back to your first point; you are not the only
qualified developer, so I do not see why you deserve exceptions when
others can follow these practices without requiring enforcement.

> 4) The software being developed by this project is no where near 
> satisfactory.  The stuff barely works.  It is no where near what it 
> could and might be someday.  The driver I spent a week on was basically 
> garbage before I started.  If this project was where it could be, there 
> would literally be NO commercial alternatives.   e.g. Samba basically 
> put Novell out of the networking business.  Openocd is not putting folks 
> out of business.

To be perfectly blunt, I believe the present quality of the code is a
direct reflection of the architectural-level management in the project, 
or, rather, the apparent lack thereof.  In other words, I agree with you
completely on this point; worse, I know it is an endemic problem caused
by the shortage of strong leaders that are also serious developers, as
these are the only people that can rise to management in open source. 

There is a load of room for progress for improving OpenOCD policies, but
I do not expect the policies that I described to be implemented
immediately.  Still, some policies do need to be put into place, as this
type of conflict will arise on a periodic basis.  Presently, I see this
as a lack of social contract, contributor and maintainer policies, and
disciplined architectural oversight.  Without such processes, there will
be ongoing SNAFUs, not unlike those I have already experienced here.

I would love to help lead this project to exact the goal you describe:
being the #1 OCD software package.  With proper oversight, I do not
think it would take more than a year to get from here to there; however,
I also believe such would only be possible with the development of clear
management and community policies that prevent these kinds of flame wars
from being a distraction.  We simply refer to our policy and repeat the
standard phrase, "RTFM and STFU."  Talk about saving costs!

> ***************************
> 
> Finally, back to the metaphor, because it will also help clarify:

I think it actually muddied the water, but it was entertaining. :)

If I understand correctly, your main point was that you see the
processes that I suggested as being too costly.  

Unfortunately, I have repeatedly try to point out that those processes
should be something to strive toward; they are not a barrier today, just
my personal recommendations.  Second, splitting patches provides
high-quality review by others, and this will be required to scale up.
It will reduce the cost for everyone, at a slight personal expense of
learning a different process and new tools.

[snip]
> ***************************
> 
> 
> In the next few weeks I would like to prepare a roadmap document for
> where I think a project like this one should go.  I will make that
> available to this group.  That will basically be done to determine who
> and how many other folks would see my vision as an attractive
> destination.  From that reaction I will then decide whether to make my
> fork public or not.  But the idea that any such development could be
> done by pouring it through some tiny dinner glasses is silly, and
> economic suicide.

Here are the questions that come to mind after reading this paragraph:

1) Will you take the community's input into consideration as you
formulate this plan, or do you expect us to accept or reject it like
your last patch (i.e. "take it or leave it")?

2) Why should the community trust your vision, when you are threatening
to fork us if you do not like its reaction?  Personally, that option
needs to be put away and locked up again for me to take you seriously.
As it is, I think that you are too obsessed with your own vision to see
the needs of the community and come to a reasonable consensus. Sorry.

I think your language here is threatening, though I hope that I have
misinterpreted that sentiment.

> So I do not see any way for me to continue contributing to this
> project, financially.  Let me just summarize what I have brought to
> the project.  Because the patches are not earmarked, there is often a
> short memory on who contributed what.  (There's probably lingering
> doubt about the firetruck claim.)
[snip]
> All in a several weeks, with my hands tied.

Again, thank you for your contributions; however, I must remind you that
yours are not the only contributions.  Moreover, your past merits can
only get you so far.  At the moment, your threat to fork somewhat trumps
anything that you may want to contribute, since it will slow us down if
we have to understand the changes you made after you leave.

> The only other open source project that I contribute to might have
> tainted my understanding of what can be done.  It is not uncommon for
> me to contribute 4000 line patches at a time.  

For the second time, I want to remind you that my original reply was not
a reject of your patch.  I deferred it to others.  At this stage in the
game, there is nothing wrong with big patches that will move us forward,
but I repeat: I do not presently feel qualified to judge your patch.
This still does not invalidate my point: you used an inferior process.
You could have split it up; I simply see this as a common courtesy.

If you have only ever contributed to two open source projects (and
considering all of the other facts that you have given us), you are
probably not qualified to lead this project -- but I could be wrong.
Open source management requires a completely different approach than
proprietary products. Heck, I have contributed to dozens over a decade
(and led more than a few), and I still barely feel qualified to be in
this kind of position.  [[I mean, just look at what it entails. ;)]]

You can never stand to have enough humility in these circles.  I assure
you there is a better developer than either of one us lurking here.

> They actually thank me over there.  Because they understand that if I
> am doing it, it represents an improvement, and improvements are what
> they want.

This again demonstrates a need for more humility: just because you think
something is an improvement does not mean that everyone else in the
OpenOCD community will share your opinion.  There appear to be at least
a half-dozen different FTDI devices; are you really so sure that all of
them think your changes are unequivocal improvements?  I am not so sure,
so I passed on the patch.  Simple as that.

We want improvements too, just not from cantankerous forkers.  That is
not consensus building talk; it is mutinous.  Some projects simply ban
individuals that make hostile threats like this.  I do not believe in
such practices as I have come to believe there are ways to reconcile, if
only to come to terms for a peaceful fork.

Keep this last point in mind.  If you find forking to be necessary, you
will find yourself with many more followers and general open source
community support if you show a good faith effort to reconcile your
differences with the original project.  In fact, I myself support the
idea of a C++ "fork", though I maintain "rewrite" would be more apropos.
However, I am not interested in dividing the community to do it.

Cheers,

Zach

_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to