SlideShare a Scribd company logo
Levelling Up In
     Open Source
 Going from one coder in their bedroom to
working in a group.

                         Jon "The Nice Guy" Spriggs
            First given at OggCamp '12 - 2012-08-18
Levelling Up... Who am I
•   I am Jon "The Nice Guy" Spriggs.
•   I am a firewall engineer for a major IT
    company.
•   I write rubbish PHP in scratch-my-own-itch
    projects.
•   I created and run CCHits.net.
•   I created CampFireManager.
•   I have organised open source events.
•   When on a stage, I have been told that I
    channel Eddie Izzard. Sorry.
Levelling Up... At the start
Let's say...
• You have an idea.
• You code the solution to that idea.
• You decide that someone else might like
  that idea.
• You create a project on SourceForge Google
  Code Launchpad Github (whew!) and upload
  your code.
What happens next?
Levelling Up... What's next?
Honestly? 99% of projects.... Nothing will
happen.
• In 2010, I found over 400,000 projects
  between just Sourceforge and Google Code.
• GitHub has 1,795,906 non-forked public
  repositories.
• The chances of your software being found is
  slim.
• However.........
Levelling Up... What if?
•   What if you know someone with influence
    who mentions your project?
•   What if you serve a niche market?
•   What if you aren't in a niche market but you
    have the right license/design/architecture?

Then..... maybe you'll attract another person
to your project?
Levelling Up... Person 2 - The
Pitfalls
•   Until now, you can do things "your own way"
    o   Your own coding standard?
    o   Your own naming convention?
    o   Who needs documentation?
    o   What do you mean it doesn't run on your system?
    o   Why bother with ticket trackers and release notes?
    o   Version control? What's version control?
•   But now...
    o   Why are you using X when Y is better?
    o   What does this function do?
    o   How do I get this to work?
Levelling Up... Person 2 - The +ves
•   Getting used to using any VCS means you're
    already in a better place.
•   Documenting how to get the code to work
    means that the users who aren't coming
    forward to join the project stand a chance
    of getting it working.
•   You now each have someone to pass ideas
    with, and get feedback on important
    decisions.
Levelling Up... Person 2 - Comms
•   When there's two of you, it's easy to send e-
    mails, chat on XMPP/MSN/YIM/ICQ or
    (potentially) have a meet up somewhere
    sociable.
•   You will probably not be discussing direction
    in public, it probably won't be documented,
    but it's OK, there's only two of you.
Levelling Up... Person 3
•   Do you give this person direct VCS access as
    well?
•   Do you start to mail both person 1 and
    person 2?
•   What happens with IM?

At person 3, you start to need to think about
making your infrastructure more public, which
leads to more participation, and potentially
more people.
Levelling Up... Services - Mail
•   If you're using a code hosting platform
    which has a mailing list service - turn it on,
    and use it.
•   All discussions around code should occur on
    that list. If it's not on the list, and it's not a
    dispute, it shouldn't help form the direction
    of the project.
•   If you have the ability to set up a split list
    for tickets/check-ins and discussions, do so.
•   Consider ML policies (anti-spam, mods, etc)
Levelling Up... Services - IRC
•   IRC is a text-only chat service.
•   It lets you bring back the participant chat
    you had with IM, but in a public way.
•   You can arrange for channel logging to
    make your discussions public and
    archivable.
•   If you make any decisions about direction,
    create tickets in your issue tracker or send
    emails to the mailing list.
•   IM/IRC is timezone relevant. Consider using
Levelling Up... Services - Tickets
•   Use tickets for everything, whether you're
    just about to apply the code or had a
    brainwave.
•   This is a public way of documenting why
    each line of code went in.
•   It also means that you'll get used to
    handling tickets for non-internal issues and
    developments.
•   Make use of milestones if you've got a
    release or date you're working towards.
Levelling Up... Services - VCS
•   If you can use a distributed VCS, do it.
•   Make sure your code can easily self-build
    (one liner or short script).
•   Branch per-issue, merge when it's fixed or
    when you have working code part way to
    the solution.
•   Tag at key milestones.
•   Try not to have one developer "own" the
    main branch - instead develop on their own
    branch and merge into a core branch.
Levelling Up... Services - Docs
•   If someone is prepared to write about your
    project, set up a blog BUT only if they are
    committed. Nothing worse than seeing 2
    years of silence - especially on a busy VCS
    tree.
•   If not, document in-code or on a wiki. It
    must be clear why and where decisions are
    made.
•   If possible, add ticket references to code
    documentation or check-ins.
Levelling Up... Why do I know this?
•   CampFireManager was my first project with
    4 contributors.
•   I went from 1, to 2, to 5 (including a
    project manager).
•   UCubed was a collaboration between 7
    organisers with different strengths with
    rare opportunity to meet face to face.
•   Many of my projects have fallen into the
    mistakes listed early on!
•   Some of them are still doing them!
Levelling Up In
 Open Source
   Any Questions?
Thank you


SN: @JonTheNiceGuy@jon.sprig.gs
    Twitter: @JonTheNiceGuy
    G+: http://jon.sprig.gs/+
 EMail/XMPP/GTalk: jon@sprig.gs
              CC-0

More Related Content

Viewers also liked

Why use version control software
Why use version control softwareWhy use version control software
Why use version control softwareJon Spriggs
 
Installing Gpg
Installing GpgInstalling Gpg
Installing Gpg
Jon Spriggs
 
Resources For Floss Projects
Resources For Floss ProjectsResources For Floss Projects
Resources For Floss Projects
Jon Spriggs
 
Routers Firewalls And Proxies - OH MY!
Routers Firewalls And Proxies - OH MY!Routers Firewalls And Proxies - OH MY!
Routers Firewalls And Proxies - OH MY!
Jon Spriggs
 
Using SMS in your personal project
Using SMS in your personal projectUsing SMS in your personal project
Using SMS in your personal project
Jon Spriggs
 
An introduction to µBlogging
An introduction to µBloggingAn introduction to µBlogging
An introduction to µBlogging
Jon Spriggs
 
Identity On The Internet
Identity On The InternetIdentity On The Internet
Identity On The Internet
Jon Spriggs
 

Viewers also liked (7)

Why use version control software
Why use version control softwareWhy use version control software
Why use version control software
 
Installing Gpg
Installing GpgInstalling Gpg
Installing Gpg
 
Resources For Floss Projects
Resources For Floss ProjectsResources For Floss Projects
Resources For Floss Projects
 
Routers Firewalls And Proxies - OH MY!
Routers Firewalls And Proxies - OH MY!Routers Firewalls And Proxies - OH MY!
Routers Firewalls And Proxies - OH MY!
 
Using SMS in your personal project
Using SMS in your personal projectUsing SMS in your personal project
Using SMS in your personal project
 
An introduction to µBlogging
An introduction to µBloggingAn introduction to µBlogging
An introduction to µBlogging
 
Identity On The Internet
Identity On The InternetIdentity On The Internet
Identity On The Internet
 

Similar to Levelling up in open source

How to get started in Open Source!
How to get started in Open Source!How to get started in Open Source!
How to get started in Open Source!
Pradeep Singh
 
Cómo construir un chatbot inteligente sin morir en el intento
Cómo construir un chatbot inteligente sin morir en el intentoCómo construir un chatbot inteligente sin morir en el intento
Cómo construir un chatbot inteligente sin morir en el intento
Facultad de Informática UCM
 
Open Collaboration and Peer Production: Technical Infrastructure and Communit...
Open Collaboration and Peer Production: Technical Infrastructure and Communit...Open Collaboration and Peer Production: Technical Infrastructure and Communit...
Open Collaboration and Peer Production: Technical Infrastructure and Communit...
Sebastian Benthall
 
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
TheFamily
 
Binary crosswords
Binary crosswordsBinary crosswords
Binary crosswords
Laurent Cerveau
 
InnerSource - Using open source best practices to help your company
InnerSource - Using open source best practices to help your companyInnerSource - Using open source best practices to help your company
InnerSource - Using open source best practices to help your company
Eric Caron
 
Turning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and MicrosoftTurning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and Microsoft
Christian Heilmann
 
Kamon Ayeva Antipatterns, Patterns, And Rules Of Thumb For Successful Plone...
Kamon Ayeva   Antipatterns, Patterns, And Rules Of Thumb For Successful Plone...Kamon Ayeva   Antipatterns, Patterns, And Rules Of Thumb For Successful Plone...
Kamon Ayeva Antipatterns, Patterns, And Rules Of Thumb For Successful Plone...
Vincenzo Barone
 
Open source and then some: An Introduction
Open source and then some: An IntroductionOpen source and then some: An Introduction
Open source and then some: An Introduction
Akash Tandon
 
From 1 to 100
From 1 to 100From 1 to 100
From 1 to 100
Eric Schultz
 
05 DIGI CREATIVE people&process
05 DIGI CREATIVE people&process05 DIGI CREATIVE people&process
05 DIGI CREATIVE people&process
SheSaysCREATIVE
 
How to Talk About Your Open Source Project So People Get It
How to Talk About Your Open Source Project So People Get ItHow to Talk About Your Open Source Project So People Get It
How to Talk About Your Open Source Project So People Get It
All Things Open
 
Scale14x Patterns and Practices for Open Source Project Success
Scale14x Patterns and Practices for Open Source Project SuccessScale14x Patterns and Practices for Open Source Project Success
Scale14x Patterns and Practices for Open Source Project Success
Stephen Walli
 
Lessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platformLessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platform
Jordi Cabot
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
Ahmet Bulut
 
Dfinity Vietnam presentation -Final-1701.pptx
Dfinity Vietnam presentation -Final-1701.pptxDfinity Vietnam presentation -Final-1701.pptx
Dfinity Vietnam presentation -Final-1701.pptx
TamHoan1
 
Contributing to an Open Source Project 101
Contributing to an Open Source Project 101Contributing to an Open Source Project 101
Contributing to an Open Source Project 101
POSSCON
 
Write code and find a job
Write code and find a jobWrite code and find a job
Write code and find a job
Yung-Yu Chen
 
Internet of Things, TYBSC IT, Semester 5, Unit II
Internet of Things, TYBSC IT, Semester 5, Unit IIInternet of Things, TYBSC IT, Semester 5, Unit II
Internet of Things, TYBSC IT, Semester 5, Unit II
Arti Parab Academics
 
Michael Widenius
Michael WideniusMichael Widenius
Michael Widenius
CodeFest
 

Similar to Levelling up in open source (20)

How to get started in Open Source!
How to get started in Open Source!How to get started in Open Source!
How to get started in Open Source!
 
Cómo construir un chatbot inteligente sin morir en el intento
Cómo construir un chatbot inteligente sin morir en el intentoCómo construir un chatbot inteligente sin morir en el intento
Cómo construir un chatbot inteligente sin morir en el intento
 
Open Collaboration and Peer Production: Technical Infrastructure and Communit...
Open Collaboration and Peer Production: Technical Infrastructure and Communit...Open Collaboration and Peer Production: Technical Infrastructure and Communit...
Open Collaboration and Peer Production: Technical Infrastructure and Communit...
 
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
"Startups, comment gérer une équipe de développeurs" par Laurent Cerveau
 
Binary crosswords
Binary crosswordsBinary crosswords
Binary crosswords
 
InnerSource - Using open source best practices to help your company
InnerSource - Using open source best practices to help your companyInnerSource - Using open source best practices to help your company
InnerSource - Using open source best practices to help your company
 
Turning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and MicrosoftTurning huge ships - Open Source and Microsoft
Turning huge ships - Open Source and Microsoft
 
Kamon Ayeva Antipatterns, Patterns, And Rules Of Thumb For Successful Plone...
Kamon Ayeva   Antipatterns, Patterns, And Rules Of Thumb For Successful Plone...Kamon Ayeva   Antipatterns, Patterns, And Rules Of Thumb For Successful Plone...
Kamon Ayeva Antipatterns, Patterns, And Rules Of Thumb For Successful Plone...
 
Open source and then some: An Introduction
Open source and then some: An IntroductionOpen source and then some: An Introduction
Open source and then some: An Introduction
 
From 1 to 100
From 1 to 100From 1 to 100
From 1 to 100
 
05 DIGI CREATIVE people&process
05 DIGI CREATIVE people&process05 DIGI CREATIVE people&process
05 DIGI CREATIVE people&process
 
How to Talk About Your Open Source Project So People Get It
How to Talk About Your Open Source Project So People Get ItHow to Talk About Your Open Source Project So People Get It
How to Talk About Your Open Source Project So People Get It
 
Scale14x Patterns and Practices for Open Source Project Success
Scale14x Patterns and Practices for Open Source Project SuccessScale14x Patterns and Practices for Open Source Project Success
Scale14x Patterns and Practices for Open Source Project Success
 
Lessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platformLessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platform
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software Development
 
Dfinity Vietnam presentation -Final-1701.pptx
Dfinity Vietnam presentation -Final-1701.pptxDfinity Vietnam presentation -Final-1701.pptx
Dfinity Vietnam presentation -Final-1701.pptx
 
Contributing to an Open Source Project 101
Contributing to an Open Source Project 101Contributing to an Open Source Project 101
Contributing to an Open Source Project 101
 
Write code and find a job
Write code and find a jobWrite code and find a job
Write code and find a job
 
Internet of Things, TYBSC IT, Semester 5, Unit II
Internet of Things, TYBSC IT, Semester 5, Unit IIInternet of Things, TYBSC IT, Semester 5, Unit II
Internet of Things, TYBSC IT, Semester 5, Unit II
 
Michael Widenius
Michael WideniusMichael Widenius
Michael Widenius
 

Recently uploaded

PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Product School
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 

Recently uploaded (20)

PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 

Levelling up in open source

  • 1. Levelling Up In Open Source Going from one coder in their bedroom to working in a group. Jon "The Nice Guy" Spriggs First given at OggCamp '12 - 2012-08-18
  • 2. Levelling Up... Who am I • I am Jon "The Nice Guy" Spriggs. • I am a firewall engineer for a major IT company. • I write rubbish PHP in scratch-my-own-itch projects. • I created and run CCHits.net. • I created CampFireManager. • I have organised open source events. • When on a stage, I have been told that I channel Eddie Izzard. Sorry.
  • 3. Levelling Up... At the start Let's say... • You have an idea. • You code the solution to that idea. • You decide that someone else might like that idea. • You create a project on SourceForge Google Code Launchpad Github (whew!) and upload your code. What happens next?
  • 4. Levelling Up... What's next? Honestly? 99% of projects.... Nothing will happen. • In 2010, I found over 400,000 projects between just Sourceforge and Google Code. • GitHub has 1,795,906 non-forked public repositories. • The chances of your software being found is slim. • However.........
  • 5. Levelling Up... What if? • What if you know someone with influence who mentions your project? • What if you serve a niche market? • What if you aren't in a niche market but you have the right license/design/architecture? Then..... maybe you'll attract another person to your project?
  • 6. Levelling Up... Person 2 - The Pitfalls • Until now, you can do things "your own way" o Your own coding standard? o Your own naming convention? o Who needs documentation? o What do you mean it doesn't run on your system? o Why bother with ticket trackers and release notes? o Version control? What's version control? • But now... o Why are you using X when Y is better? o What does this function do? o How do I get this to work?
  • 7. Levelling Up... Person 2 - The +ves • Getting used to using any VCS means you're already in a better place. • Documenting how to get the code to work means that the users who aren't coming forward to join the project stand a chance of getting it working. • You now each have someone to pass ideas with, and get feedback on important decisions.
  • 8. Levelling Up... Person 2 - Comms • When there's two of you, it's easy to send e- mails, chat on XMPP/MSN/YIM/ICQ or (potentially) have a meet up somewhere sociable. • You will probably not be discussing direction in public, it probably won't be documented, but it's OK, there's only two of you.
  • 9. Levelling Up... Person 3 • Do you give this person direct VCS access as well? • Do you start to mail both person 1 and person 2? • What happens with IM? At person 3, you start to need to think about making your infrastructure more public, which leads to more participation, and potentially more people.
  • 10. Levelling Up... Services - Mail • If you're using a code hosting platform which has a mailing list service - turn it on, and use it. • All discussions around code should occur on that list. If it's not on the list, and it's not a dispute, it shouldn't help form the direction of the project. • If you have the ability to set up a split list for tickets/check-ins and discussions, do so. • Consider ML policies (anti-spam, mods, etc)
  • 11. Levelling Up... Services - IRC • IRC is a text-only chat service. • It lets you bring back the participant chat you had with IM, but in a public way. • You can arrange for channel logging to make your discussions public and archivable. • If you make any decisions about direction, create tickets in your issue tracker or send emails to the mailing list. • IM/IRC is timezone relevant. Consider using
  • 12. Levelling Up... Services - Tickets • Use tickets for everything, whether you're just about to apply the code or had a brainwave. • This is a public way of documenting why each line of code went in. • It also means that you'll get used to handling tickets for non-internal issues and developments. • Make use of milestones if you've got a release or date you're working towards.
  • 13. Levelling Up... Services - VCS • If you can use a distributed VCS, do it. • Make sure your code can easily self-build (one liner or short script). • Branch per-issue, merge when it's fixed or when you have working code part way to the solution. • Tag at key milestones. • Try not to have one developer "own" the main branch - instead develop on their own branch and merge into a core branch.
  • 14. Levelling Up... Services - Docs • If someone is prepared to write about your project, set up a blog BUT only if they are committed. Nothing worse than seeing 2 years of silence - especially on a busy VCS tree. • If not, document in-code or on a wiki. It must be clear why and where decisions are made. • If possible, add ticket references to code documentation or check-ins.
  • 15. Levelling Up... Why do I know this? • CampFireManager was my first project with 4 contributors. • I went from 1, to 2, to 5 (including a project manager). • UCubed was a collaboration between 7 organisers with different strengths with rare opportunity to meet face to face. • Many of my projects have fallen into the mistakes listed early on! • Some of them are still doing them!
  • 16. Levelling Up In Open Source Any Questions?
  • 17. Thank you SN: @JonTheNiceGuy@jon.sprig.gs Twitter: @JonTheNiceGuy G+: http://jon.sprig.gs/+ EMail/XMPP/GTalk: jon@sprig.gs CC-0