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 software
Jon 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

Data Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining DataData Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining Data
Safe Software
 
(CISOPlatform Summit & SACON 2024) Regulation & Response In Banks.pdf
(CISOPlatform Summit & SACON 2024) Regulation & Response In Banks.pdf(CISOPlatform Summit & SACON 2024) Regulation & Response In Banks.pdf
(CISOPlatform Summit & SACON 2024) Regulation & Response In Banks.pdf
Priyanka Aash
 
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
bhumivarma35300
 
Semantic-Aware Code Model: Elevating the Future of Software Development
Semantic-Aware Code Model: Elevating the Future of Software DevelopmentSemantic-Aware Code Model: Elevating the Future of Software Development
Semantic-Aware Code Model: Elevating the Future of Software Development
Baishakhi Ray
 
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Muhammad Ali
 
Uncharted Together- Navigating AI's New Frontiers in Libraries
Uncharted Together- Navigating AI's New Frontiers in LibrariesUncharted Together- Navigating AI's New Frontiers in Libraries
Uncharted Together- Navigating AI's New Frontiers in Libraries
Brian Pichman
 
Connector Corner: Leveraging Snowflake Integration for Smarter Decision Making
Connector Corner: Leveraging Snowflake Integration for Smarter Decision MakingConnector Corner: Leveraging Snowflake Integration for Smarter Decision Making
Connector Corner: Leveraging Snowflake Integration for Smarter Decision Making
DianaGray10
 
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
alexjohnson7307
 
(CISOPlatform Summit & SACON 2024) Cyber Insurance & Risk Quantification.pdf
(CISOPlatform Summit & SACON 2024) Cyber Insurance & Risk Quantification.pdf(CISOPlatform Summit & SACON 2024) Cyber Insurance & Risk Quantification.pdf
(CISOPlatform Summit & SACON 2024) Cyber Insurance & Risk Quantification.pdf
Priyanka Aash
 
Using LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and MilvusUsing LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and Milvus
Zilliz
 
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
sunilverma7884
 
Feature sql server terbaru performance.pptx
Feature sql server terbaru performance.pptxFeature sql server terbaru performance.pptx
Feature sql server terbaru performance.pptx
ssuser1915fe1
 
Integrating Kafka with MuleSoft 4 and usecase
Integrating Kafka with MuleSoft 4 and usecaseIntegrating Kafka with MuleSoft 4 and usecase
Integrating Kafka with MuleSoft 4 and usecase
shyamraj55
 
Patch Tuesday de julio
Patch Tuesday de julioPatch Tuesday de julio
Patch Tuesday de julio
Ivanti
 
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
shanihomely
 
leewayhertz.com-Generative AI tech stack Frameworks infrastructure models and...
leewayhertz.com-Generative AI tech stack Frameworks infrastructure models and...leewayhertz.com-Generative AI tech stack Frameworks infrastructure models and...
leewayhertz.com-Generative AI tech stack Frameworks infrastructure models and...
alexjohnson7307
 
The Impact of the Internet of Things (IoT) on Smart Homes and Cities
The Impact of the Internet of Things (IoT) on Smart Homes and CitiesThe Impact of the Internet of Things (IoT) on Smart Homes and Cities
The Impact of the Internet of Things (IoT) on Smart Homes and Cities
Arpan Buwa
 
Vertex AI Agent Builder - GDG Alicante - Julio 2024
Vertex AI Agent Builder - GDG Alicante - Julio 2024Vertex AI Agent Builder - GDG Alicante - Julio 2024
Vertex AI Agent Builder - GDG Alicante - Julio 2024
Nicolás Lopéz
 
(CISOPlatform Summit & SACON 2024) Orientation by CISO Platform_ Using CISO P...
(CISOPlatform Summit & SACON 2024) Orientation by CISO Platform_ Using CISO P...(CISOPlatform Summit & SACON 2024) Orientation by CISO Platform_ Using CISO P...
(CISOPlatform Summit & SACON 2024) Orientation by CISO Platform_ Using CISO P...
Priyanka Aash
 
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptxIntroduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
313mohammedarshad
 

Recently uploaded (20)

Data Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining DataData Integration Basics: Merging & Joining Data
Data Integration Basics: Merging & Joining Data
 
(CISOPlatform Summit & SACON 2024) Regulation & Response In Banks.pdf
(CISOPlatform Summit & SACON 2024) Regulation & Response In Banks.pdf(CISOPlatform Summit & SACON 2024) Regulation & Response In Banks.pdf
(CISOPlatform Summit & SACON 2024) Regulation & Response In Banks.pdf
 
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
High Profile Girls call Service Pune 000XX00000 Provide Best And Top Girl Ser...
 
Semantic-Aware Code Model: Elevating the Future of Software Development
Semantic-Aware Code Model: Elevating the Future of Software DevelopmentSemantic-Aware Code Model: Elevating the Future of Software Development
Semantic-Aware Code Model: Elevating the Future of Software Development
 
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
Litestack talk at Brighton 2024 (Unleashing the power of SQLite for Ruby apps)
 
Uncharted Together- Navigating AI's New Frontiers in Libraries
Uncharted Together- Navigating AI's New Frontiers in LibrariesUncharted Together- Navigating AI's New Frontiers in Libraries
Uncharted Together- Navigating AI's New Frontiers in Libraries
 
Connector Corner: Leveraging Snowflake Integration for Smarter Decision Making
Connector Corner: Leveraging Snowflake Integration for Smarter Decision MakingConnector Corner: Leveraging Snowflake Integration for Smarter Decision Making
Connector Corner: Leveraging Snowflake Integration for Smarter Decision Making
 
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
leewayhertz.com-AI agents for healthcare Applications benefits and implementa...
 
(CISOPlatform Summit & SACON 2024) Cyber Insurance & Risk Quantification.pdf
(CISOPlatform Summit & SACON 2024) Cyber Insurance & Risk Quantification.pdf(CISOPlatform Summit & SACON 2024) Cyber Insurance & Risk Quantification.pdf
(CISOPlatform Summit & SACON 2024) Cyber Insurance & Risk Quantification.pdf
 
Using LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and MilvusUsing LLM Agents with Llama 3, LangGraph and Milvus
Using LLM Agents with Llama 3, LangGraph and Milvus
 
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
Girls call Kolkata 👀 XXXXXXXXXXX 👀 Rs.9.5 K Cash Payment With Room Delivery
 
Feature sql server terbaru performance.pptx
Feature sql server terbaru performance.pptxFeature sql server terbaru performance.pptx
Feature sql server terbaru performance.pptx
 
Integrating Kafka with MuleSoft 4 and usecase
Integrating Kafka with MuleSoft 4 and usecaseIntegrating Kafka with MuleSoft 4 and usecase
Integrating Kafka with MuleSoft 4 and usecase
 
Patch Tuesday de julio
Patch Tuesday de julioPatch Tuesday de julio
Patch Tuesday de julio
 
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
Premium Girls Call Mumbai 9920725232 Unlimited Short Providing Girls Service ...
 
leewayhertz.com-Generative AI tech stack Frameworks infrastructure models and...
leewayhertz.com-Generative AI tech stack Frameworks infrastructure models and...leewayhertz.com-Generative AI tech stack Frameworks infrastructure models and...
leewayhertz.com-Generative AI tech stack Frameworks infrastructure models and...
 
The Impact of the Internet of Things (IoT) on Smart Homes and Cities
The Impact of the Internet of Things (IoT) on Smart Homes and CitiesThe Impact of the Internet of Things (IoT) on Smart Homes and Cities
The Impact of the Internet of Things (IoT) on Smart Homes and Cities
 
Vertex AI Agent Builder - GDG Alicante - Julio 2024
Vertex AI Agent Builder - GDG Alicante - Julio 2024Vertex AI Agent Builder - GDG Alicante - Julio 2024
Vertex AI Agent Builder - GDG Alicante - Julio 2024
 
(CISOPlatform Summit & SACON 2024) Orientation by CISO Platform_ Using CISO P...
(CISOPlatform Summit & SACON 2024) Orientation by CISO Platform_ Using CISO P...(CISOPlatform Summit & SACON 2024) Orientation by CISO Platform_ Using CISO P...
(CISOPlatform Summit & SACON 2024) Orientation by CISO Platform_ Using CISO P...
 
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptxIntroduction-to-the-IAM-Platform-Implementation-Plan.pptx
Introduction-to-the-IAM-Platform-Implementation-Plan.pptx
 

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