SlideShare a Scribd company logo
1 of 39
How to Protect Your
    Open Source Project
  From Poisonous People                    0%
                                         3!
                                       th on
                                      is
                                     W oi
                                  wP
                                 os
                               Ns
                                   e
                                  L
Ben Collins-Sussman & Brian W. Fitzpatrick
                 Google
              July 26, 2007
By The Way
  These are our opinions
•
• There!s more than one
  way to run a community
• Based on our
  experiences...
• ... and Karl!s book...
• ...which are both based
  on experiences with
  Subversion...
• ...and Apache
Comprehension
  Fortification
 Identification
  Disinfection
Comprehending
  the Threat
Attention    and
     Focus
   These are your scarcest resources




You must protect them
Poisonous people can:
  Distract
•
• Emotionally drain your community
• Cause needless infighting
You Need to Avoid Paralysis
    OCD people can derail forward progress
•
    • Perfectionists
    • People obsessed with process


    Even nice guys can do this unintentionally!
•
    • quot;The perfect is the enemy of the goodquot;
        [Example: endless discussion]
    •
Fortifying Against
   the Threat
Build a Strong Community Based On


            Politeness
             Respect
              Trust
             Humility
Best Practices
Have a Mission

  Pick a direction
•
• Limit your scope
        [Examples]
    •
Subversion

      “To create a compelling replacement for CVS”




            Google Web Toolkit
  “To radically improve the web experience for users by
enabling developers to use existing Java tools to build no-
       compromise AJAX for any modern browser”
Mailing List Etiquette

    Don't rehash old discussions:
•
    • Send quot;em to the mail archives


    Don't reply to every message in a thread:
•
    • Reply to a summary
        [Example: Email filibustering]
    •
Document Your Project!s History

  Design decisions
•
• Bug fixes
• Mistakes
• Code Changes (ChangeLog)
If you don!t document your project!s history, you
          will be condemned to repeat it...
   ...over and over and over and over and over
 and over and over and over and over and over
 and over and over and over and over and over
 and over and over and over and over and over
    and over and over and over and over again
Have healthy code-collaboration policies
    Send commit emails, encourage email review
•


    Do big changes on branches for easier review
•
    • “Power plants” slow progress


    Be generous with branches
•


    Increase your project!s “bus-factor” on components
•


    Don't allow names in files
•
        [Example: the date-parser contributor]
    •
Have Well-defined Processes
    Releasing software
•
    – Backport bugfixes
    – Test and Release tarballs


    Accepting and reviewing patches
•


    Admitting new committers
•
    – The community founders establish the culture
    – The culture becomes self-selecting
        [anecdote: even a founder can be booted!]
    •
Voting is a last resort

    A healthy community should rarely need to vote
•
    –   [Example: Subversion!s critical decision]
Maintain Your Standards

       “I have several friends who know him to
     some degree. One of them said quot;he often
       walks the fine line between genius and
     lunatic.! The problem is, genius is such a
   commodity these days, that it's not acceptable
            to be an eccentric any more.”

         --Greg Hudson, Subversion Developer
Identifying
    Poisonous People
The warning signs that you should look out for
               ...also known as...
          When to flip the “bozo bit”
Communication Annoyances

  Uses silly nicknames
•
• Uses multiple nicknames in different media
• Overuses CAPITAL LETTERS
• Uses excessive punctuation!!!1!!1!one!
• ZOMGWTFBBQ!?!?!
Cluelessness

  Unable to pick up on the “mood”
•
• Doesn!t understand common goals of the community.
• Asks incessant RTFM questions
Hostility

  Insults the status quo
•
• Angrily demands help
• Attempts to blackmail
• Attempts to deliberately rile people
• Makes accusations of conspiracy (paranoia)
Conceit

    Refuses to acknowledge the opinions of others
•


    Makes sweeping claims
•
    • Usually about the project's future success


    Re-opens topics that are long settled
•
    • Without reading the archives
Non-cooperation

  Willing to complain, but not help fix anything
•
• Unwilling to discuss design
• Too insecure to take criticism
Disinfecting Your
   Community
Assess the Damage
Ask Yourself Two Critical Questions


    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
Don!t

  Feed the energy creature! (old usenet adage)
•
• Give jerks quot;purchasequot;
• Engage them
• Get emotional
        [Example: “your OSS project sucks”]
    •
Do
Do

     Pay careful attention to a newcomer
•
    • Even if they!re annoying at first


    Look for the fact under the emotion
•


    Extract a real bug report, if possible
•
        [Example: raving lunatic with a real bug]
    •
Do

    Know when to give up and ignore them
•
        [Example: different raving lunatic]
    •


    Know when to forcibly boot them from community
•
        [Example: statistical analysis as evidence]
    •


    Repel trolls with niceness!!
•
        [Example: irc guy]
    •
And Finally, Do...
    Address the behavior, not the person
•
        [Example: the banished behavior]
    •
Summary
    Comprehend:
•
    • Preserve attention and focus


    Fortify:
•
    • Build a healthy community


    Identify:
•
    • Look for tell-tale signs


    Disinfect:
•
    • Maintain calm and stand your ground
Shhhhhh, Don!t Tell...
This doesn!t only apply to
open source communities.
This applies to all
  communities.
Q&A
Ben Collins-Sussman & Brian W. Fitzpatrick
          sussman@google.com
             fitz@google.com

More Related Content

Similar to Os Fitzpatrick Sussman

Perils and Possibilities of Web 2
Perils and Possibilities of Web 2Perils and Possibilities of Web 2
Perils and Possibilities of Web 2Matt Machell
 
Swim Lesson 1 Get Off My Facebook
Swim Lesson 1 Get Off My FacebookSwim Lesson 1 Get Off My Facebook
Swim Lesson 1 Get Off My FacebookEmily Reeves Dean
 
Os Keyshacks
Os KeyshacksOs Keyshacks
Os Keyshacksoscon2007
 
People Hacks
People HacksPeople Hacks
People HacksAdam Keys
 
Brand-ology:Tips and Tricks for Personal Branding
Brand-ology:Tips and Tricks for Personal Branding Brand-ology:Tips and Tricks for Personal Branding
Brand-ology:Tips and Tricks for Personal Branding Lauren Cooney
 
Understanding Your Audience Using Community Driven Tools
Understanding Your Audience Using Community Driven ToolsUnderstanding Your Audience Using Community Driven Tools
Understanding Your Audience Using Community Driven ToolsHello Neighbor
 
New Media Means Everybody's a Journalist, Critic, Friend - Why Healthcare Sho...
New Media Means Everybody's a Journalist, Critic, Friend - Why Healthcare Sho...New Media Means Everybody's a Journalist, Critic, Friend - Why Healthcare Sho...
New Media Means Everybody's a Journalist, Critic, Friend - Why Healthcare Sho...Jen McCabe
 
Making Marketing More Human Through Technology
Making Marketing More Human Through TechnologyMaking Marketing More Human Through Technology
Making Marketing More Human Through TechnologyKevin Lawver
 
From Inbox to iPod: Meshing Today's Social Media Elements into the Marketing ...
From Inbox to iPod: Meshing Today's Social Media Elements into the Marketing ...From Inbox to iPod: Meshing Today's Social Media Elements into the Marketing ...
From Inbox to iPod: Meshing Today's Social Media Elements into the Marketing ...Greg Cangialosi
 
Social Software in Higher Education
Social Software in Higher EducationSocial Software in Higher Education
Social Software in Higher EducationMeredith Farkas
 
Twitter: Are You Serious?
Twitter: Are You Serious?Twitter: Are You Serious?
Twitter: Are You Serious?Randy Rodgers
 
Social Web Application Design
Social Web Application DesignSocial Web Application Design
Social Web Application DesignLuke Wroblewski
 
SESNY Training Laycock Blogging
SESNY Training Laycock BloggingSESNY Training Laycock Blogging
SESNY Training Laycock BloggingJennifer Laycock
 
Countering impostor syndrome culture
Countering impostor syndrome cultureCountering impostor syndrome culture
Countering impostor syndrome cultureSage Sharp
 
Challenges of social media analysis in the real world
Challenges of social media analysis in the real worldChallenges of social media analysis in the real world
Challenges of social media analysis in the real worldDiana Maynard
 

Similar to Os Fitzpatrick Sussman (20)

Perils and Possibilities of Web 2
Perils and Possibilities of Web 2Perils and Possibilities of Web 2
Perils and Possibilities of Web 2
 
Swim Lesson 1 Get Off My Facebook
Swim Lesson 1 Get Off My FacebookSwim Lesson 1 Get Off My Facebook
Swim Lesson 1 Get Off My Facebook
 
Os Keyshacks
Os KeyshacksOs Keyshacks
Os Keyshacks
 
People Hacks
People HacksPeople Hacks
People Hacks
 
Brand-ology:Tips and Tricks for Personal Branding
Brand-ology:Tips and Tricks for Personal Branding Brand-ology:Tips and Tricks for Personal Branding
Brand-ology:Tips and Tricks for Personal Branding
 
Understanding Your Audience Using Community Driven Tools
Understanding Your Audience Using Community Driven ToolsUnderstanding Your Audience Using Community Driven Tools
Understanding Your Audience Using Community Driven Tools
 
New Media Means Everybody's a Journalist, Critic, Friend - Why Healthcare Sho...
New Media Means Everybody's a Journalist, Critic, Friend - Why Healthcare Sho...New Media Means Everybody's a Journalist, Critic, Friend - Why Healthcare Sho...
New Media Means Everybody's a Journalist, Critic, Friend - Why Healthcare Sho...
 
Making Marketing More Human Through Technology
Making Marketing More Human Through TechnologyMaking Marketing More Human Through Technology
Making Marketing More Human Through Technology
 
More than a Profile
More than a ProfileMore than a Profile
More than a Profile
 
Community Management
Community ManagementCommunity Management
Community Management
 
From Inbox to iPod: Meshing Today's Social Media Elements into the Marketing ...
From Inbox to iPod: Meshing Today's Social Media Elements into the Marketing ...From Inbox to iPod: Meshing Today's Social Media Elements into the Marketing ...
From Inbox to iPod: Meshing Today's Social Media Elements into the Marketing ...
 
Social Software in Higher Education
Social Software in Higher EducationSocial Software in Higher Education
Social Software in Higher Education
 
Twitter: Are You Serious?
Twitter: Are You Serious?Twitter: Are You Serious?
Twitter: Are You Serious?
 
Social Web Application Design
Social Web Application DesignSocial Web Application Design
Social Web Application Design
 
SESNY Training Laycock Blogging
SESNY Training Laycock BloggingSESNY Training Laycock Blogging
SESNY Training Laycock Blogging
 
Countering impostor syndrome culture
Countering impostor syndrome cultureCountering impostor syndrome culture
Countering impostor syndrome culture
 
Intro to Social Networking
Intro to Social NetworkingIntro to Social Networking
Intro to Social Networking
 
NASCAR Summit
NASCAR SummitNASCAR Summit
NASCAR Summit
 
Challenges of social media analysis in the real world
Challenges of social media analysis in the real worldChallenges of social media analysis in the real world
Challenges of social media analysis in the real world
 
The Holy Triad
The Holy TriadThe Holy Triad
The Holy Triad
 

More from oscon2007

J Ruby Whirlwind Tour
J Ruby Whirlwind TourJ Ruby Whirlwind Tour
J Ruby Whirlwind Touroscon2007
 
Solr Presentation5
Solr Presentation5Solr Presentation5
Solr Presentation5oscon2007
 
Performance Whack A Mole
Performance Whack A MolePerformance Whack A Mole
Performance Whack A Moleoscon2007
 
Os Lanphier Brashears
Os Lanphier BrashearsOs Lanphier Brashears
Os Lanphier Brashearsoscon2007
 
Os Fitzpatrick Sussman Swp
Os Fitzpatrick Sussman SwpOs Fitzpatrick Sussman Swp
Os Fitzpatrick Sussman Swposcon2007
 
Os Berlin Dispelling Myths
Os Berlin Dispelling MythsOs Berlin Dispelling Myths
Os Berlin Dispelling Mythsoscon2007
 
Os Keysholistic
Os KeysholisticOs Keysholistic
Os Keysholisticoscon2007
 
Os Jonphillips
Os JonphillipsOs Jonphillips
Os Jonphillipsoscon2007
 
Os Urnerupdated
Os UrnerupdatedOs Urnerupdated
Os Urnerupdatedoscon2007
 
Adventures In Copyright Reform
Adventures In Copyright ReformAdventures In Copyright Reform
Adventures In Copyright Reformoscon2007
 

More from oscon2007 (20)

J Ruby Whirlwind Tour
J Ruby Whirlwind TourJ Ruby Whirlwind Tour
J Ruby Whirlwind Tour
 
Solr Presentation5
Solr Presentation5Solr Presentation5
Solr Presentation5
 
Os Borger
Os BorgerOs Borger
Os Borger
 
Os Harkins
Os HarkinsOs Harkins
Os Harkins
 
Os Bunce
Os BunceOs Bunce
Os Bunce
 
Yuicss R7
Yuicss R7Yuicss R7
Yuicss R7
 
Performance Whack A Mole
Performance Whack A MolePerformance Whack A Mole
Performance Whack A Mole
 
Os Fogel
Os FogelOs Fogel
Os Fogel
 
Os Lanphier Brashears
Os Lanphier BrashearsOs Lanphier Brashears
Os Lanphier Brashears
 
Os Tucker
Os TuckerOs Tucker
Os Tucker
 
Os Fitzpatrick Sussman Swp
Os Fitzpatrick Sussman SwpOs Fitzpatrick Sussman Swp
Os Fitzpatrick Sussman Swp
 
Os Furlong
Os FurlongOs Furlong
Os Furlong
 
Os Berlin Dispelling Myths
Os Berlin Dispelling MythsOs Berlin Dispelling Myths
Os Berlin Dispelling Myths
 
Os Kimsal
Os KimsalOs Kimsal
Os Kimsal
 
Os Pruett
Os PruettOs Pruett
Os Pruett
 
Os Alrubaie
Os AlrubaieOs Alrubaie
Os Alrubaie
 
Os Keysholistic
Os KeysholisticOs Keysholistic
Os Keysholistic
 
Os Jonphillips
Os JonphillipsOs Jonphillips
Os Jonphillips
 
Os Urnerupdated
Os UrnerupdatedOs Urnerupdated
Os Urnerupdated
 
Adventures In Copyright Reform
Adventures In Copyright ReformAdventures In Copyright Reform
Adventures In Copyright Reform
 

Recently uploaded

Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 

Recently uploaded (20)

Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 

Os Fitzpatrick Sussman

  • 1. How to Protect Your Open Source Project From Poisonous People 0% 3! th on is W oi wP os Ns e L Ben Collins-Sussman & Brian W. Fitzpatrick Google July 26, 2007
  • 2. By The Way These are our opinions • • There!s more than one way to run a community • Based on our experiences... • ... and Karl!s book... • ...which are both based on experiences with Subversion... • ...and Apache
  • 3. Comprehension Fortification Identification Disinfection
  • 5. Attention and Focus These are your scarcest resources You must protect them
  • 6. Poisonous people can: Distract • • Emotionally drain your community • Cause needless infighting
  • 7. You Need to Avoid Paralysis OCD people can derail forward progress • • Perfectionists • People obsessed with process Even nice guys can do this unintentionally! • • quot;The perfect is the enemy of the goodquot; [Example: endless discussion] •
  • 8. Fortifying Against the Threat
  • 9. Build a Strong Community Based On Politeness Respect Trust Humility
  • 11. Have a Mission Pick a direction • • Limit your scope [Examples] •
  • 12. Subversion “To create a compelling replacement for CVS” Google Web Toolkit “To radically improve the web experience for users by enabling developers to use existing Java tools to build no- compromise AJAX for any modern browser”
  • 13. Mailing List Etiquette Don't rehash old discussions: • • Send quot;em to the mail archives Don't reply to every message in a thread: • • Reply to a summary [Example: Email filibustering] •
  • 14. Document Your Project!s History Design decisions • • Bug fixes • Mistakes • Code Changes (ChangeLog)
  • 15. If you don!t document your project!s history, you will be condemned to repeat it... ...over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over and over again
  • 16. Have healthy code-collaboration policies Send commit emails, encourage email review • Do big changes on branches for easier review • • “Power plants” slow progress Be generous with branches • Increase your project!s “bus-factor” on components • Don't allow names in files • [Example: the date-parser contributor] •
  • 17. Have Well-defined Processes Releasing software • – Backport bugfixes – Test and Release tarballs Accepting and reviewing patches • Admitting new committers • – The community founders establish the culture – The culture becomes self-selecting [anecdote: even a founder can be booted!] •
  • 18. Voting is a last resort A healthy community should rarely need to vote • – [Example: Subversion!s critical decision]
  • 19. Maintain Your Standards “I have several friends who know him to some degree. One of them said quot;he often walks the fine line between genius and lunatic.! The problem is, genius is such a commodity these days, that it's not acceptable to be an eccentric any more.” --Greg Hudson, Subversion Developer
  • 20. Identifying Poisonous People The warning signs that you should look out for ...also known as... When to flip the “bozo bit”
  • 21. Communication Annoyances Uses silly nicknames • • Uses multiple nicknames in different media • Overuses CAPITAL LETTERS • Uses excessive punctuation!!!1!!1!one! • ZOMGWTFBBQ!?!?!
  • 22. Cluelessness Unable to pick up on the “mood” • • Doesn!t understand common goals of the community. • Asks incessant RTFM questions
  • 23. Hostility Insults the status quo • • Angrily demands help • Attempts to blackmail • Attempts to deliberately rile people • Makes accusations of conspiracy (paranoia)
  • 24. Conceit Refuses to acknowledge the opinions of others • Makes sweeping claims • • Usually about the project's future success Re-opens topics that are long settled • • Without reading the archives
  • 25. Non-cooperation Willing to complain, but not help fix anything • • Unwilling to discuss design • Too insecure to take criticism
  • 26. Disinfecting Your Community
  • 28. Ask Yourself Two Critical Questions 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?
  • 29. Don!t
  • 30. Don!t Feed the energy creature! (old usenet adage) • • Give jerks quot;purchasequot; • Engage them • Get emotional [Example: “your OSS project sucks”] •
  • 31. Do
  • 32. Do Pay careful attention to a newcomer • • Even if they!re annoying at first Look for the fact under the emotion • Extract a real bug report, if possible • [Example: raving lunatic with a real bug] •
  • 33. Do Know when to give up and ignore them • [Example: different raving lunatic] • Know when to forcibly boot them from community • [Example: statistical analysis as evidence] • Repel trolls with niceness!! • [Example: irc guy] •
  • 34. And Finally, Do... Address the behavior, not the person • [Example: the banished behavior] •
  • 35. Summary Comprehend: • • Preserve attention and focus Fortify: • • Build a healthy community Identify: • • Look for tell-tale signs Disinfect: • • Maintain calm and stand your ground
  • 37. This doesn!t only apply to open source communities.
  • 38. This applies to all communities.
  • 39. Q&A Ben Collins-Sussman & Brian W. Fitzpatrick sussman@google.com fitz@google.com