Showing posts with label Code of Conduct. Show all posts
Showing posts with label Code of Conduct. Show all posts

Friday, January 22, 2010

McKinsey, A Conversation With Jim Wallis

In the Preliminary Research Report Professor's Anthony Giddens Structuration theory was reviewed alongside Professor Wanda Orlikowski's Structurational Model of Technology. These suggest that organizations, people and society move together or there is failure. In May of 2004 this appeared to me that the organizations were failing both people and society and that as a result, failure of one of the three components (people, society or organizations) would occur. The financial crisis is the failure of the organizations. They have failed in so many ways it is difficult to list them all. Until today.

McKinsey have an unbelievably good video that deals with this topic. People are angry and do not want to see things continue in the fashion that they are. This is captured in this video very elequently. Enjoy!



Technorati Tags:

Thursday, February 01, 2007

How Open Source Projects Survive Poisonous People.

Google has had the capacity in the past few years to draw in many of the pioneer's and industry leaders to work for them. Two of these people, Ben Collins-Sussman and Brian Fitzpatrick are leaders in the open source world. Both have worked on Subversion which is the version control system used on this project. Of note, Google hired them to implement Subversion through out their product line, and in the process giving the tool the most significant test I could imagine.

The experiences they refer to throughout the presentation are based on work done for both Subversion and Apache. The topic of discussion focuses on how to avoid the toxic or poisonous people that can infect an open source project. The most important aspect of any contribution is to ensure that the team is not drawn down by people not reviewing the archives. Contributions have to be incremental to the work that has been done, not reiterating what has already happened.

The presenters open with their 4 areas of concern.

  1. Comprehension
  2. Fortification
  3. Identification
  4. Disinfection
The resource you are trying to protect is the Attention and Focus of the user and development community. Keeping disparate groups from losing focus and spending their attention in the wrong areas will lead to project failure. The methods to guard against these incidents is highlighted in their video. The first note is that poisonous people can;
  1. Distract.
  2. Emotionally drain your community.
  3. Cause Needless infighting.
You need to avoid paralysis.
  • People can derail forward progress by people being.
    • Perfectionists.
    • People obsessed with process.
    • Even nice guys can do this unintentionally.
    • The perfect is the enemy of the good.
The presenters then bring up the analogy of "Painting the bike shed". Which was an analogy that was used in the development of BSD Unix. The analogy goes; a nuclear plant that was needed to be built was progressing as good as it could. The entire development then stalled to determine what color the bike shed should be painted. The debate then ground to a halt on both the bike shed and the nuclear plant. Here the authors noted "The amount of discussion on a feature, is inversely proportional to their value. And is noted to be one of Parkinson's Law's.

Fortifying against the threat.

Politeness, Respect, Trust and Humility are necessary in an open source project. All of the deficiencies that the presenters had experienced originated from these 4 points.

Have a Mission, where do your want to go. Limit your developments scope. Define the project so that future requests can be classified as "its on our list of things to do" or "its not"

Mailing lists are a critical tool of the open source project, etiquette should be monitored and enforced. Review of the archives, don't let users disrespect any previous conversations by not reviewing the archives. A few more of their points include;
  • Design documentation.
  • Bug fixes.
  • Document Mistakes. (Ensures that travels down dark alleys are limited and not repeated.)
  • Code Changes (Change Log)
  • Code Collaboration policies. Email is the key to participation.
  • No powerpoints.
  • Do big changes on branches for easier review. (Be generous on creating branches.)
  • Spreading the "bus factor" so that developers move around alot. (Bus factor is how many people need to get hit by a bus before the project fails.)
  • No names on top of source code files. (Makes people nervous) Everything is owned by everyone. (Cuts the pettiness.)
  • Have well defined processes.
  • Releasing Software
    • Backport Bugs
    • Test and release tarballs.
  • Accepting and reviewing patches.
  • Admitting new committers
  • The community founders establish the culture.
    • The culture becomes self selecting.
    • Voting is a last resort
      • A healthy community should rarely need to vote.
Identifying poisonous people.

Communications Annoyances
  • Uses silly nicknames
  • Uses multiple nicknames in different media
  • Overuses Capital letters.
  • Uses excessive punctuation.
  • Acronyms are used.
General lack of a clue as to what is going on.
  • Unable to pick up on the mood.
  • Doesn't understand common goals of the community.
  • Asks incessant questions.
Hostility
  • Insults the status-quo.
  • Angrily commands help.
  • Attempts to blackmail.
  • Attempts to deliberately rile people .
  • Makes accusations of conspiracy.
Conceit
  • Refuses to acknowledge the opinions of others.
  • Makes sweeping claims.
  • Usually about the projects future success.
  • Re-opens topics that are long settled.
  • Without reading the archives.
Lack of Cooperation
  • Willing to complain but not help with anything.
  • Unwilling to discuss design.
  • Too insecure to take criticism.
Disinfecting your community.
  • Is this person draining attention and focus?
    • If so, is the person really likely to benefit the project?
  • Is this person paralyzing the project?
  • Is the dispute likely to finish soon?
Don't...
  • feed the energy creature.
  • give jerks purchase.
  • engage them.
  • get emotional
Do...
  • pay attention to a newcomer.
    • even if they're annoying at first.
  • extract a real bug report if possible.
  • know when to give up and ignore them.
  • know when to forcibly boot them from community.
Summary
  • Comprehend:
  • Preserve attention and focus.
Fortify:
  • Build a healthy community.
Identify:
  • Look for tell tale signs.
Disinfect:
  • Maintain calm and stand your ground.
And finally, the presenters put a special emphasis on decision making. All decisions can be discussed off-line, no decisions made without the documentation in the email lists. The reason why and what alternatives will show up in the archives and contributors can see the reasons and justification for the previous decisions. All of these excellent points will form a major part of the code of conduct that will be one of the first deliverables from this community.

Technorati Tags: , , , , ,