Decision making processes in KDE (?)

Zack Rusin kde-policies@mail.kde.org
Sat, 30 Nov 2002 20:27:51 -0500


On Saturday 30 November 2002 11:35, Matthias Welwarsky wrote:
> Conclusion: KDE only worked up to now because there were nearly no
> conflicts that needed to be settled involving more than a few people.
> Conflicts involving larger groups were settled by divine intervention
> (Coolo or Waldo or someone just did what deemed the correct thing to
> do for him), or were not settled at all.
>
> Recent example: KMail maintainership. This conflict could not be
> resolved by technical means. The group was to large to base arguments
> on common sense. So, it was _not_ settled at all. It was delayed into
> the future and has reemerged now that the pressure of the release
> cycle is gone.

Excuse me? You just couldn't pick a worse example :) In the conflict 
between Don and Michael both parties had very good arguments. Don was 
completely ready to fork at any moment. Now you're saying that it would 
be good if people not related to KMail development would come by and 
say "Hey, Don we do not like what you're doing and we have to remove 
your KDE CVS access". Don forks KMail outside KDE, some developers go 
with him, some stay. For one I'd be extremely unhappy, to say the 
least, if a group of people from outside the KMail team would cause 
such a fork. The other problem would be whether the cvs accounts of 
people who joined him should also be deleted.

I very much liked how Dirk resolved the problem for 3.1. KMail 
developers were voting. Simple as that. Now you say that conflict 
wasn't resolved then. I say it was. It was resolved because if you look 
at KDE 3.1 you'll notice that KMail in there is working great and if 
you look at the code in CVS you'll notice that just days after 3.1 
KMail has already a mindboggling amount of new code features and 
architectural cleanups. And, for me at least, you measure the success  
by the quality of the application. 

The fact that the problem "reemerged" as you put it, had nothing to do 
with the fact that it wasn't resolved. Michael stopped being the 
maintainer. We needed a new maintainer. During the 
3.1/make_it_cool/kroupware branches we argued because we couldn't agree 
on how the future of KMail should look like. We all had our visions. We 
resolved those problems, as can be seen by reading the maintainer 
thread. All KMail developers agreed that Ingo should be the maintainer. 
Also in many of those emails one can spot smileys and notice the 
overall better atmosphere following our replies to each other. Ingo 
showed that he's going to be a great leader by allowing Don to be the 
co-maintainer and making sure KMail is not going to be forked and 
that's it. 

Now imagine what would happen if you'd take a poll among KDE developers 
what should happen. KMail developers wouldn't solve anything. The 
conflict would just escalate. 

There just can't be one way of resolving conflicts. Meaning you can't go 
and say "OK, we take a poll among KDE developers who's going to be the 
new KSomeApp maintainer, Bob or John". Half of the people would go 
"What's KSomeApp?", others would pick Bob because they knew him from 
IRC, some would go with John because they tried KSomeApp and didn't 
like it so they'd figure that Bob is doing a bad job as the current 
maintainer, etc. None of the above is a good reason in itself to vote 
for either of them, but that's how a vote between people not related to 
the main development team of KSomeApp would look like.

> Note that I don't say that KDE _cannot_ have formalized processes,
> but that we must be aware of the difficulty of implementing them. I
> _do_ say that we must be extremely careful about what we regulate and
> what not. For me it seems to be clear that there is not the easy way
> of just adopting another projects regulations. They won't fit the KDE
> way.

What we regulate? I think it's quite simple, we regulate when an app in 
our CVS goes against 
http://developer.kde.org/documentation/licensing/policy.html . We email 
the author saying that it's a requirement that his/hers app obeys those 
rules and there's no exceptions for it. If the author refuses his app 
is removed from the CVS and possible, depending on the author behavior 
his/hers account is removed. Period.
I don't think anything else should be regulated by KDE itself. Conflicts 
should be resolved by the teams themselves.
Now the question is how do we protect our CVS users. I'd propose 
imitating court rules here. (Stay with me here :) )
The KDE Release Coordinator acts as a judge. Now lets say team of the 
KSomeApp divides itself and they just can't and don't want to resolve 
the conflict between themselves and it's a mess. We have two sides one 
supporting John the other Bob. Both sides are required to present their 
case to the release coordinator. The email send by both defendants have 
to be signed by at least one other developer with KDE cvs commit 
privilidges. If one of the defendants is unable to find a developer 
supporting his claims, he automatically looses. 
In the email to the release coordinator both sides have to include a 
name of another KDE developer who is going to act a supporting judge. 
That developer can not be the one who signed the message and can't be 
one of the developers of KSomeApp. 
Now we have three judges (release coordinator, and supporting judges 
picked by both sides). If release coordinator doesn't understand 
anything from the emails sent by either of the sides. He/She can ask 
either side to clarify. The three judges take a vote. One of the sides 
wins. That's it.

Zack

-- 
The word "woman" is no longer politically correct.
You should use "Female-American" instead.