SlideShare a Scribd company logo
1 of 30
5 Unspoken Rules of Contributing to Open
Source Software
Michael Nelson cmljnelson cmljnelson.wordpress.com
Quick Survey
Created a Pull Request?
Submitted a Patch?
Written code to work with WordPress?
Participated in a Developer Chat?
Use WordPress?
Reportsed an issue?
Who am I?
My First Pull Request DisasterMy First Pull Request Disaster
Customizing BuddyPress Docs
My First Pull Request Disaster
Customizing BuddyPress Docs
My First Pull Request Disaster
Customizing BuddyPress Docs
My First Pull Request Disaster
Customizing BuddyPress Docs
Video: You Can't Just Open a Pull Request and Run
My First Pull Request Disaster
Post Mortem
Pull Request Rejected
Client Couldn't Update the Plugin
What's The Big Difference?
Closed Source vs Open Source
What's The Big Difference?
Closed Source vs Open Source
Client Site BuddyPress
Docs
WordPressClient Site BuddyPress
Docs
WordPress
Sites 1 8,000 276,000,000
Client Site BuddyPress
Docs
WordPress
Sites 1 8,000 276,000,000
PHP Versions 5.5 5.2 - 7.1 5.2 – 7.1
Client Site BuddyPress
Docs
WordPress
Sites 1 8,000 276,000,000
PHP Versions 5.5 5.2 - 7.1 5.2 – 7.1
Plugins ~10 52,000 52,000
Client Site BuddyPress
Docs
WordPress
Sites 1 8,000 276,000,000
PHP Versions 5.5 5.2 - 7.1 5.2 – 7.1
Plugins ~10 52,000 52,000
Collaborators 0 40 500
Client Site BuddyPress
Docs
WordPress
Sites 1 8,000 276,000,000
PHP Versions 5.5 5.2 - 7.1 5.2 – 7.1
Plugins ~10 52,000 52,000
Collaborators 0 40 500
Hackers Few A Few More A TON!
What's The Big Difference?
Should You Take the Plunge into Open Source Software?
● Learn from
World Class
Professionals
● Support
Software you
Depend On
● Build Reputation
Rule 1: Justify Your Changes
My Hand-Made Sweater Analogy
Rule 1: Justify Your Changes
Pitfalls of Patches
● Bugs
● Incompatible with PHP, MySQL or
webserver
● Conflicts with Plugins and
Customizations
● Obstructs Other Features
● Performance
● Unused
● Complicates the UI
● Hard to Understand
● Maintenance Burden
What could go wrong with a patch?
Rule 1: Justify Your Changes
● Describe the feature
● Your use-case
What to Mention
An Improved Pull Request
● Prior art
● Why this implementation
Rule 2: Be Willing to Discuss & Revise
A More Typical Pull Request's Discussion
● JJJ involved since 2008, main BuddyPress developer
● 7 code revisions
● 11 months
Rule 2: Be Willing to Discuss & Revise
An Improved Pull Request Discussion
How would you respond?
Rule 3: Be Positive and Grateful
We're Humans, not Laptops
To have healthy open source
communities, we need to learn
how to be smart about our
emotions...
Your community is made of
humans not laptops. Always
communicate in a friendly way
regardless of your current
emotions.
-Flavio Percoco, Red
Hat
Rule 3: Be Positive and Grateful
WordPress "Big Names" Always Keep It Positive
Rule 3: Be Positive and Grateful
Show Your Gratitude for Free Software
What is your favourite
WordPress plugin?
Have you done anything
to support it?
Rule 4: Small Changes Are Easier
Less Code Means Less Discussion
Not all maintainers are
keen on accepting
massive change sets
from new contributors.
-Radek Pazdera
Rule 4: Small Changes Are Easier
How to Keep Patches Small
● STOP if it's getting
big!
● Make separate
patches
● Focus the patch's
purpose and avoid
unnecessary
improvements
● Don't Repeat Yourself
Rule 4: Small Changes Are Easier
How to Achieve Big Features with Small Patches
Snippet from my Original Pull Request
Rule 4: Small Changes Are Easier
Alternative Change
...the rest in my own plugin
How to Achieve Big Features with Small Patches
Rule 5: Companion Software is Easiest
Make Your Own Project Instead of Complicating Someone Else's
Should your
favourite
WordPress
plugin be added
to core?
Rule 5: Companion Software is Easiest
The Benefits of Companion Software over Creating a Patch
● Bug free!
● Better for non-users
● If popular, justifies later
merge
● Can be developed faster
● You get a plugin-owner
badge!
Rule 5: Companion Software is Easiest
WordPress' Companion Software Policies
Core should provide features that 80%
or more of end users will actually use.
If the next version of WordPress comes
with a feature that the majority of users
immediately want to turn off... then
we’ve blown it.
https://wordpress.org/about/philosophy/#clean
Rule 5: Companion Software is Easiest
What Will Your Own Plugin Make You?
Summary
1. Justify your Changes
2. Be Willing to Discuss and Revise
3. Be Gracious and Positive
4. Small Changes are Easier
5. Companion Software is the Easiest
How to Fulfill Your Destiny
● use open source software, and rate it
● suggest an improvements
● open pull requests
● create a plugin, put it on WordPress.org & GitHub
● participate in WordPress dev on Trac and Slack
Questions and Suggestions?
Michael Nelson cmljnelson cmljnelson.wordpress.com

More Related Content

What's hot

Staying Connected: Securing Your WordPress Website
Staying Connected: Securing Your WordPress WebsiteStaying Connected: Securing Your WordPress Website
Staying Connected: Securing Your WordPress WebsiteRaymund Mitchell
 
Getting Started With a Blog
Getting Started With a BlogGetting Started With a Blog
Getting Started With a BlogJohn Dorner
 
10 Things Not To Do With WordPress
10 Things Not To Do With WordPress10 Things Not To Do With WordPress
10 Things Not To Do With WordPressWordPress Sydney
 
Don't lose revenue. Go viral with no downtime.
Don't lose revenue. Go viral with no downtime.Don't lose revenue. Go viral with no downtime.
Don't lose revenue. Go viral with no downtime.WP Engine
 
Wrangling Wordpress To Make Your Blog Do What You Want
Wrangling Wordpress To Make  Your Blog Do What You WantWrangling Wordpress To Make  Your Blog Do What You Want
Wrangling Wordpress To Make Your Blog Do What You WantTate Lucas
 
Build an App with JavaScript & jQuery
Build an App with JavaScript & jQuery Build an App with JavaScript & jQuery
Build an App with JavaScript & jQuery Aaron Lamphere
 
Auckland WordPress Meetup - Question and Answers
Auckland WordPress Meetup - Question and AnswersAuckland WordPress Meetup - Question and Answers
Auckland WordPress Meetup - Question and AnswersTarei King
 
Zero cost serverless Real time web app
Zero cost serverless Real time web appZero cost serverless Real time web app
Zero cost serverless Real time web appBarcamp Saigon
 
WordPress security & sanitation for beginners
WordPress security & sanitation for beginnersWordPress security & sanitation for beginners
WordPress security & sanitation for beginnersD'nelle Dowis
 
Prototyping for Business Outcomes at ModevUX
Prototyping for Business Outcomes at ModevUXPrototyping for Business Outcomes at ModevUX
Prototyping for Business Outcomes at ModevUX3Pillar Global
 
How to Write an Efficient Defect Case & Save Money
How to Write an Efficient Defect Case & Save MoneyHow to Write an Efficient Defect Case & Save Money
How to Write an Efficient Defect Case & Save MoneyMediacurrent
 
How to break up epics (for Product Managers)
How to break up epics (for Product Managers)How to break up epics (for Product Managers)
How to break up epics (for Product Managers)Amartya Sengupta
 
Build an App with JavaScript & jQuery
Build an App with JavaScript & jQuery Build an App with JavaScript & jQuery
Build an App with JavaScript & jQuery Aaron Lamphere
 
Webinar - Accessibility: The journey.
Webinar - Accessibility: The journey.Webinar - Accessibility: The journey.
Webinar - Accessibility: The journey.WP Engine
 
AMP up Your WordPress Site
AMP up Your WordPress SiteAMP up Your WordPress Site
AMP up Your WordPress SitePrem Tiwari
 

What's hot (19)

Staying Connected: Securing Your WordPress Website
Staying Connected: Securing Your WordPress WebsiteStaying Connected: Securing Your WordPress Website
Staying Connected: Securing Your WordPress Website
 
Getting Started With a Blog
Getting Started With a BlogGetting Started With a Blog
Getting Started With a Blog
 
10 Things Not To Do With WordPress
10 Things Not To Do With WordPress10 Things Not To Do With WordPress
10 Things Not To Do With WordPress
 
Don't lose revenue. Go viral with no downtime.
Don't lose revenue. Go viral with no downtime.Don't lose revenue. Go viral with no downtime.
Don't lose revenue. Go viral with no downtime.
 
WordPress Plugins 101
WordPress Plugins 101WordPress Plugins 101
WordPress Plugins 101
 
Lean Responsive
Lean ResponsiveLean Responsive
Lean Responsive
 
Wrangling Wordpress To Make Your Blog Do What You Want
Wrangling Wordpress To Make  Your Blog Do What You WantWrangling Wordpress To Make  Your Blog Do What You Want
Wrangling Wordpress To Make Your Blog Do What You Want
 
Build an App with JavaScript & jQuery
Build an App with JavaScript & jQuery Build an App with JavaScript & jQuery
Build an App with JavaScript & jQuery
 
Auckland WordPress Meetup - Question and Answers
Auckland WordPress Meetup - Question and AnswersAuckland WordPress Meetup - Question and Answers
Auckland WordPress Meetup - Question and Answers
 
Zero cost serverless Real time web app
Zero cost serverless Real time web appZero cost serverless Real time web app
Zero cost serverless Real time web app
 
WordPress security & sanitation for beginners
WordPress security & sanitation for beginnersWordPress security & sanitation for beginners
WordPress security & sanitation for beginners
 
Prototyping for Business Outcomes at ModevUX
Prototyping for Business Outcomes at ModevUXPrototyping for Business Outcomes at ModevUX
Prototyping for Business Outcomes at ModevUX
 
How to Write an Efficient Defect Case & Save Money
How to Write an Efficient Defect Case & Save MoneyHow to Write an Efficient Defect Case & Save Money
How to Write an Efficient Defect Case & Save Money
 
How to break up epics (for Product Managers)
How to break up epics (for Product Managers)How to break up epics (for Product Managers)
How to break up epics (for Product Managers)
 
WordCamp Denmark Keynote
WordCamp Denmark KeynoteWordCamp Denmark Keynote
WordCamp Denmark Keynote
 
Build an App with JavaScript & jQuery
Build an App with JavaScript & jQuery Build an App with JavaScript & jQuery
Build an App with JavaScript & jQuery
 
Webinar - Accessibility: The journey.
Webinar - Accessibility: The journey.Webinar - Accessibility: The journey.
Webinar - Accessibility: The journey.
 
AMP up Your WordPress Site
AMP up Your WordPress SiteAMP up Your WordPress Site
AMP up Your WordPress Site
 
Agile Issue Types and Decomposition
Agile Issue Types and DecompositionAgile Issue Types and Decomposition
Agile Issue Types and Decomposition
 

Similar to 5 unspoken rules of contributing to open source software v2

Working effectively with legacy codes
Working effectively with legacy codesWorking effectively with legacy codes
Working effectively with legacy codesAli Shariat
 
Simplifying the Web Accessibility Test Lab
Simplifying the Web Accessibility Test LabSimplifying the Web Accessibility Test Lab
Simplifying the Web Accessibility Test Labmitchellevan
 
What is WordPress and Why Is Everyone Talking About it
What is WordPress and Why Is Everyone Talking About itWhat is WordPress and Why Is Everyone Talking About it
What is WordPress and Why Is Everyone Talking About itBobWP.com
 
Reno WordPress Meetup: Gershwin
Reno WordPress Meetup: GershwinReno WordPress Meetup: Gershwin
Reno WordPress Meetup: GershwinSterling Hamilton
 
Avoiding Errors: Troubleshoot Wordpress like a Pro!
Avoiding Errors: Troubleshoot Wordpress like a Pro!Avoiding Errors: Troubleshoot Wordpress like a Pro!
Avoiding Errors: Troubleshoot Wordpress like a Pro!J_Cortes
 
Unrestricted plr advance word press mastery kit
Unrestricted plr advance word press mastery kitUnrestricted plr advance word press mastery kit
Unrestricted plr advance word press mastery kitjad tahouri
 
Preparing for the WebGeek DevCup
Preparing for the WebGeek DevCupPreparing for the WebGeek DevCup
Preparing for the WebGeek DevCupbryanbibat
 
WordPress Optimisation Strategies
WordPress Optimisation StrategiesWordPress Optimisation Strategies
WordPress Optimisation Strategiesauexpo Conference
 
WordPress Optimisation - A4UExpo
WordPress Optimisation - A4UExpoWordPress Optimisation - A4UExpo
WordPress Optimisation - A4UExpoJoost de Valk
 
WordPress Upgrades: Read, Set, Go!
WordPress Upgrades: Read, Set, Go!WordPress Upgrades: Read, Set, Go!
WordPress Upgrades: Read, Set, Go!WP Engine UK
 
Rapid Prototyping and Usability Testing - HUXPA
Rapid Prototyping and Usability Testing - HUXPARapid Prototyping and Usability Testing - HUXPA
Rapid Prototyping and Usability Testing - HUXPADerrick Bowen
 
2.-IT-266_APDET-Module-2-of-3.pptx
2.-IT-266_APDET-Module-2-of-3.pptx2.-IT-266_APDET-Module-2-of-3.pptx
2.-IT-266_APDET-Module-2-of-3.pptxKENNEDYDONATO1
 
Aligning Product Strategy with Customer Feature Requests
Aligning Product Strategy with Customer Feature RequestsAligning Product Strategy with Customer Feature Requests
Aligning Product Strategy with Customer Feature RequestsProductPlan
 
Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...
Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...
Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...AgileNetwork
 
Emergency WordPress Troubleshooting
Emergency WordPress TroubleshootingEmergency WordPress Troubleshooting
Emergency WordPress TroubleshootingTiffany Bridge
 
Developers Best Practices
Developers Best PracticesDevelopers Best Practices
Developers Best Practicesaqib javaid
 
Seven Habits Of Highly Effective Asp Net Mvc D
Seven Habits Of Highly Effective Asp Net Mvc DSeven Habits Of Highly Effective Asp Net Mvc D
Seven Habits Of Highly Effective Asp Net Mvc Dcurtismitchell
 
AD - Developer communication and Technology
AD - Developer communication and TechnologyAD - Developer communication and Technology
AD - Developer communication and TechnologyEnplore AB
 

Similar to 5 unspoken rules of contributing to open source software v2 (20)

Working effectively with legacy codes
Working effectively with legacy codesWorking effectively with legacy codes
Working effectively with legacy codes
 
Simplifying the Web Accessibility Test Lab
Simplifying the Web Accessibility Test LabSimplifying the Web Accessibility Test Lab
Simplifying the Web Accessibility Test Lab
 
What is WordPress and Why Is Everyone Talking About it
What is WordPress and Why Is Everyone Talking About itWhat is WordPress and Why Is Everyone Talking About it
What is WordPress and Why Is Everyone Talking About it
 
Reno WordPress Meetup: Gershwin
Reno WordPress Meetup: GershwinReno WordPress Meetup: Gershwin
Reno WordPress Meetup: Gershwin
 
Avoiding Errors: Troubleshoot Wordpress like a Pro!
Avoiding Errors: Troubleshoot Wordpress like a Pro!Avoiding Errors: Troubleshoot Wordpress like a Pro!
Avoiding Errors: Troubleshoot Wordpress like a Pro!
 
Unrestricted plr advance word press mastery kit
Unrestricted plr advance word press mastery kitUnrestricted plr advance word press mastery kit
Unrestricted plr advance word press mastery kit
 
Preparing for the WebGeek DevCup
Preparing for the WebGeek DevCupPreparing for the WebGeek DevCup
Preparing for the WebGeek DevCup
 
WordPress Optimisation Strategies
WordPress Optimisation StrategiesWordPress Optimisation Strategies
WordPress Optimisation Strategies
 
WordPress Optimisation - A4UExpo
WordPress Optimisation - A4UExpoWordPress Optimisation - A4UExpo
WordPress Optimisation - A4UExpo
 
WordPress Upgrades: Read, Set, Go!
WordPress Upgrades: Read, Set, Go!WordPress Upgrades: Read, Set, Go!
WordPress Upgrades: Read, Set, Go!
 
Git Makes Me Angry Inside
Git Makes Me Angry InsideGit Makes Me Angry Inside
Git Makes Me Angry Inside
 
Rapid Prototyping and Usability Testing - HUXPA
Rapid Prototyping and Usability Testing - HUXPARapid Prototyping and Usability Testing - HUXPA
Rapid Prototyping and Usability Testing - HUXPA
 
2.-IT-266_APDET-Module-2-of-3.pptx
2.-IT-266_APDET-Module-2-of-3.pptx2.-IT-266_APDET-Module-2-of-3.pptx
2.-IT-266_APDET-Module-2-of-3.pptx
 
Aligning Product Strategy with Customer Feature Requests
Aligning Product Strategy with Customer Feature RequestsAligning Product Strategy with Customer Feature Requests
Aligning Product Strategy with Customer Feature Requests
 
Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...
Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...
Agile Gurgaon 2016 | Thinking Beyond :: Marry Agile and DevOps for Phenomenal...
 
Emergency WordPress Troubleshooting
Emergency WordPress TroubleshootingEmergency WordPress Troubleshooting
Emergency WordPress Troubleshooting
 
Developers Best Practices
Developers Best PracticesDevelopers Best Practices
Developers Best Practices
 
Quality Software Development
Quality Software DevelopmentQuality Software Development
Quality Software Development
 
Seven Habits Of Highly Effective Asp Net Mvc D
Seven Habits Of Highly Effective Asp Net Mvc DSeven Habits Of Highly Effective Asp Net Mvc D
Seven Habits Of Highly Effective Asp Net Mvc D
 
AD - Developer communication and Technology
AD - Developer communication and TechnologyAD - Developer communication and Technology
AD - Developer communication and Technology
 

Recently uploaded

Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 

Recently uploaded (20)

Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 

5 unspoken rules of contributing to open source software v2

  • 1. 5 Unspoken Rules of Contributing to Open Source Software Michael Nelson cmljnelson cmljnelson.wordpress.com
  • 2. Quick Survey Created a Pull Request? Submitted a Patch? Written code to work with WordPress? Participated in a Developer Chat? Use WordPress? Reportsed an issue?
  • 4. My First Pull Request DisasterMy First Pull Request Disaster Customizing BuddyPress Docs
  • 5. My First Pull Request Disaster Customizing BuddyPress Docs
  • 6. My First Pull Request Disaster Customizing BuddyPress Docs
  • 7. My First Pull Request Disaster Customizing BuddyPress Docs Video: You Can't Just Open a Pull Request and Run
  • 8. My First Pull Request Disaster Post Mortem Pull Request Rejected Client Couldn't Update the Plugin
  • 9. What's The Big Difference? Closed Source vs Open Source
  • 10. What's The Big Difference? Closed Source vs Open Source Client Site BuddyPress Docs WordPressClient Site BuddyPress Docs WordPress Sites 1 8,000 276,000,000 Client Site BuddyPress Docs WordPress Sites 1 8,000 276,000,000 PHP Versions 5.5 5.2 - 7.1 5.2 – 7.1 Client Site BuddyPress Docs WordPress Sites 1 8,000 276,000,000 PHP Versions 5.5 5.2 - 7.1 5.2 – 7.1 Plugins ~10 52,000 52,000 Client Site BuddyPress Docs WordPress Sites 1 8,000 276,000,000 PHP Versions 5.5 5.2 - 7.1 5.2 – 7.1 Plugins ~10 52,000 52,000 Collaborators 0 40 500 Client Site BuddyPress Docs WordPress Sites 1 8,000 276,000,000 PHP Versions 5.5 5.2 - 7.1 5.2 – 7.1 Plugins ~10 52,000 52,000 Collaborators 0 40 500 Hackers Few A Few More A TON!
  • 11. What's The Big Difference? Should You Take the Plunge into Open Source Software? ● Learn from World Class Professionals ● Support Software you Depend On ● Build Reputation
  • 12. Rule 1: Justify Your Changes My Hand-Made Sweater Analogy
  • 13. Rule 1: Justify Your Changes Pitfalls of Patches ● Bugs ● Incompatible with PHP, MySQL or webserver ● Conflicts with Plugins and Customizations ● Obstructs Other Features ● Performance ● Unused ● Complicates the UI ● Hard to Understand ● Maintenance Burden What could go wrong with a patch?
  • 14. Rule 1: Justify Your Changes ● Describe the feature ● Your use-case What to Mention An Improved Pull Request ● Prior art ● Why this implementation
  • 15. Rule 2: Be Willing to Discuss & Revise A More Typical Pull Request's Discussion ● JJJ involved since 2008, main BuddyPress developer ● 7 code revisions ● 11 months
  • 16. Rule 2: Be Willing to Discuss & Revise An Improved Pull Request Discussion How would you respond?
  • 17. Rule 3: Be Positive and Grateful We're Humans, not Laptops To have healthy open source communities, we need to learn how to be smart about our emotions... Your community is made of humans not laptops. Always communicate in a friendly way regardless of your current emotions. -Flavio Percoco, Red Hat
  • 18. Rule 3: Be Positive and Grateful WordPress "Big Names" Always Keep It Positive
  • 19. Rule 3: Be Positive and Grateful Show Your Gratitude for Free Software What is your favourite WordPress plugin? Have you done anything to support it?
  • 20. Rule 4: Small Changes Are Easier Less Code Means Less Discussion Not all maintainers are keen on accepting massive change sets from new contributors. -Radek Pazdera
  • 21. Rule 4: Small Changes Are Easier How to Keep Patches Small ● STOP if it's getting big! ● Make separate patches ● Focus the patch's purpose and avoid unnecessary improvements ● Don't Repeat Yourself
  • 22. Rule 4: Small Changes Are Easier How to Achieve Big Features with Small Patches Snippet from my Original Pull Request
  • 23. Rule 4: Small Changes Are Easier Alternative Change ...the rest in my own plugin How to Achieve Big Features with Small Patches
  • 24. Rule 5: Companion Software is Easiest Make Your Own Project Instead of Complicating Someone Else's Should your favourite WordPress plugin be added to core?
  • 25. Rule 5: Companion Software is Easiest The Benefits of Companion Software over Creating a Patch ● Bug free! ● Better for non-users ● If popular, justifies later merge ● Can be developed faster ● You get a plugin-owner badge!
  • 26. Rule 5: Companion Software is Easiest WordPress' Companion Software Policies Core should provide features that 80% or more of end users will actually use. If the next version of WordPress comes with a feature that the majority of users immediately want to turn off... then we’ve blown it. https://wordpress.org/about/philosophy/#clean
  • 27. Rule 5: Companion Software is Easiest What Will Your Own Plugin Make You?
  • 28. Summary 1. Justify your Changes 2. Be Willing to Discuss and Revise 3. Be Gracious and Positive 4. Small Changes are Easier 5. Companion Software is the Easiest
  • 29. How to Fulfill Your Destiny ● use open source software, and rate it ● suggest an improvements ● open pull requests ● create a plugin, put it on WordPress.org & GitHub ● participate in WordPress dev on Trac and Slack
  • 30. Questions and Suggestions? Michael Nelson cmljnelson cmljnelson.wordpress.com

Editor's Notes

  1. * Welcome, I'm Mike. * Glad you fell for the click-bait title * purpose: help benefit from contributing to open source * my blog has a post, slides, link to my social media stuff * seeing how we're here in person, will make this a bit interactive. Learn from everyone
  2. Event Espresso $100,000, 000 annual ticket sales, running on 40,000 websites EventSmart is multisite site running EE, has 20,000 sites
  3. Story of my first pull request. * Where I was, * the company I worked for, * the client, * their needs.
  4. * BuddyPress Docs met needs * customized it quite easily * thought I'd share my improvement
  5. * Pull request was afterthought * no discussion ahead of time * no description of changes * no discussion.
  6. Video exagerates what went wrong. -Alt 2, Alt Enter, Ctr P Moral of the story
  7. * I was good at “closed source” (or at least private code, technically it was still open source) * But open source was a whole other ballgame
  8. Let's compare some facts
  9. * if open source is so much harder, why bother? - * let's look at the first rule I broke
  10. * no justification why Boone should take risk * because I thought my code was great, but it actually wasn't, and it had bugs
  11. Why do you need to justify it?
  12. How I would have done it differently
  13. Rule 3: be positive and grateful
  14. * Rule 4: reduce discussion by reducing code
  15. *Don't Rely on an existing project, help out with your own!