SlideShare ist ein Scribd-Unternehmen logo
1 von 17
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

Weitere ähnliche Inhalte

Andere mochten auch

Why use version control software
Why use version control softwareWhy use version control software
Why use version control softwareJon Spriggs
 
Resources For Floss Projects
Resources For Floss ProjectsResources For Floss Projects
Resources For Floss ProjectsJon 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 projectJon Spriggs
 
An introduction to µBlogging
An introduction to µBloggingAn introduction to µBlogging
An introduction to µBloggingJon Spriggs
 
Identity On The Internet
Identity On The InternetIdentity On The Internet
Identity On The InternetJon Spriggs
 

Andere mochten auch (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
 

Ähnlich wie 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 intentoFacultad 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 CerveauTheFamily
 
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 companyEric 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 MicrosoftChristian 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 IntroductionAkash Tandon
 
05 DIGI CREATIVE people&process
05 DIGI CREATIVE people&process05 DIGI CREATIVE people&process
05 DIGI CREATIVE people&processSheSaysCREATIVE
 
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 ItAll 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 SuccessStephen 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 platformJordi Cabot
 
Agile Software Development
Agile Software DevelopmentAgile Software Development
Agile Software DevelopmentAhmet Bulut
 
Dfinity Vietnam presentation -Final-1701.pptx
Dfinity Vietnam presentation -Final-1701.pptxDfinity Vietnam presentation -Final-1701.pptx
Dfinity Vietnam presentation -Final-1701.pptxTamHoan1
 
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 101POSSCON
 
Write code and find a job
Write code and find a jobWrite code and find a job
Write code and find a jobYung-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 IIArti Parab Academics
 
Michael Widenius
Michael WideniusMichael Widenius
Michael WideniusCodeFest
 

Ähnlich wie 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
 

Kürzlich hochgeladen

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 

Kürzlich hochgeladen (20)

2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

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