Listened to a presentation on ways to destroy open source communities
and I think some of the points would benefit netrek. Here are my
notes. Reactions, thoughts? How can we go forward with building up the
netrek dev community?


Ten Ways to Destroy Your Community
by Josh Berkus

talk given at LCA2010

These are so powerful that any 3 should kill most development communities.


1. difficult tools -
*  obscure build systems
*  limited license issue trackers

( setup official website -
  have it be down as often as it is up)

2. poisonous people who turn community against itself with
*  a few ppl who are there just to give you a hard time
*  considered primary cost of managing open source
*  a single poisonous person can wipe out a user community of hundreds
*  argue with them on public forums
*  launch into polemics
*  then ban them from the community by fiat
*  argue with them in other forums
*  after people step up and say "this is wrong" - allow them back on
the project and repeat...

3. prevent documentation
*  no code documentation
*  no user documentation
*  no project documentation
*  no contributor documentation
*  no site or release documentation
*  make sure no useful docs at all
*  if anyone asks for help ask them to reading the f**king manual.
*  if you must have documents give them a restrictive proprietary license

4. make your contributors feel excluded
*  don't let your contributors into the decision making process of the project
*  make sure the poisonous people attend the meetings
*  short notice online meetings

5. legalese - the longer and more complex the better!
*  change it every few months

6. bad liaison - who is the public face of your community
*  someone reclusive
*  find a developer with no friends who hates people
*  or find the busiest developer and make them the community liaison
*  have no liaison at all but keep an email account active

7. governance obfuscation
*  have governance so complicated that contributors can't figure out
how to participate
   3 principles:
    * decision making and elections should be extremely complex and lengthy
    * make it unclear what powers community officials and committees
actually have
    * make governance rules nearly impossible to change
*  have a community council and then don't give them any real power
   great way to create poisonous people
*  no decisions can be made without a super majority

8. screw around with licenses (psychological technique)
*  license ~= identity
*  keep changing the license of your project (GPL to BSD etc.)
*  don't make it easy for someone to fork the project on their own
*  spend a lot of time talking about changing the license without changing it

9. no outside committers
*  no matter how much code outsiders write *only* employees get to be committers
*  protect your core group of contributors
*  have no written rules on why or how someone gets to be a contributor

10. do nothing, be silent
*  this technique is the most powerful and effective and the easiest
*  don't answer questions
*  ignore emails
*  setup a separate email account/mailing list for feedback and ignore it

When I was at Sun we employed all of these techniques successfully.

Every community person you turn away now will save you that much work later.

Best ways to deal with poisonous people:
* Have a lot of documented processes and structure that is fair and accessible.
  Poisonous people will try to portray themselves as a victim to garner support.
* Have a community process for throwing someone off the project - a
community council
  that votes etc.

If people are not contributing on the community forums they do not
have the right
to speak. You must kick them out. Otherwise you have 1 person who is not doing
anything to contribute that is sucking up 20% of the communities online time.

Do not give trolls a voice.

Two main types of poisonous people:
* trolls looking for attention
* people interested in an issue tangential to your project

Don't give them a soapbox.

Losing community happens in days or weeks. Regaining community happens
over years.

Better to under promise and over deliver than vice versa.

<>< ><>