This document discusses levelling up in open source projects from one coder to working in a group. It notes that most solo projects go nowhere but some succeed if they have influence, serve a niche, or have the right design. When a second person joins, the solo coder must adapt to things like version control, documentation, and coding standards. As a project grows, infrastructure like mailing lists, issue tracking, and version control repositories become necessary to manage communications and development. Proper use of these services can help projects scale up from small teams to larger groups.
How to write maintainable code - Peter Hilton - Codemotion Amsterdam 2017Codemotion
The problem that new technology doesn’t fix is unmaintainable code. Clean code with good tests is essential, but not enough. This talk introduces techniques like getting better at naming, explaining code with tests, the few code comments you actually need, README-driven development and writing Minimum Viable Documentation. After the excitement of adopting new technology and software craftsmanship comes the horror of your next software maintenance project. As Jean-Paul Sartre said*, ‘Hell is other people’s code’. Whatever your level, your future happiness depends on maintainable code.
Documentation avoidance for developersPeter Hilton
However good your code, other people never seem to get it. Instead they ruin your day (and your productivity) by asking questions and expecting documentation. You need to know how to explain code without getting stuck in meetings or spending half your time on the only thing you hate more than meetings: writing documentation. Instead, you aim for constructive laziness: tactics that give you more time to write code.
This talk teaches you how to avoid writing documentation, by making it unnecessary or delegating the work to someone else. You will also learn how to deal with the awkward situation when you can’t get away with avoidance or delegation, and have to write the documentation yourself.
This talk explores what we talk about when we talk about code, how we do it, and the tools we use. You can often find a better tool than documentation, but not always. Not everyone writes detailed specifications these days, but remote working and distributed teams make written explanations more valuable than ever. Talking face to face requires less effort, but you rarely or never meet the authors of most of the code you see. Software craftsmanship has failed to make written documentation unnecessary. Instead we shall turn to README-Driven Development, comments evasion, documentation-avoidance, just-in-time documentation and the art of not writing it in the first place.
I Wrote an FFV1 Decoder in Go for Fun: What I Learned Going from Spec to Impl...Derek Buitenhuis
hy write an FFV1 decoder when two already exists? Because it’s fun, and I wanted to see how writing a decoder solely from a spec works out. This is the story.
Meeting-avoidance for self-managing developersPeter Hilton
How and when to avoid meetings and have more time to write code
Meetings are a problem for any organisations, because they dull the attention-span of otherwise intelligent people, and prevent otherwise productive people from getting any work done. Software developers suffer more than most, because they can’t even pretend that they’re getting any work done when they’re sitting in meetings. After all, getting your laptop out and writing code during a meeting is (rightly) considered rude.
This presentation introduces various approaches that software developers can use to reduce the number of meetings in their organisation, so they have more time to write code. In particular, developer contributions to project management can drastically reduce the number of meetings.
How to write maintainable code - Peter Hilton - Codemotion Amsterdam 2017Codemotion
The problem that new technology doesn’t fix is unmaintainable code. Clean code with good tests is essential, but not enough. This talk introduces techniques like getting better at naming, explaining code with tests, the few code comments you actually need, README-driven development and writing Minimum Viable Documentation. After the excitement of adopting new technology and software craftsmanship comes the horror of your next software maintenance project. As Jean-Paul Sartre said*, ‘Hell is other people’s code’. Whatever your level, your future happiness depends on maintainable code.
Documentation avoidance for developersPeter Hilton
However good your code, other people never seem to get it. Instead they ruin your day (and your productivity) by asking questions and expecting documentation. You need to know how to explain code without getting stuck in meetings or spending half your time on the only thing you hate more than meetings: writing documentation. Instead, you aim for constructive laziness: tactics that give you more time to write code.
This talk teaches you how to avoid writing documentation, by making it unnecessary or delegating the work to someone else. You will also learn how to deal with the awkward situation when you can’t get away with avoidance or delegation, and have to write the documentation yourself.
This talk explores what we talk about when we talk about code, how we do it, and the tools we use. You can often find a better tool than documentation, but not always. Not everyone writes detailed specifications these days, but remote working and distributed teams make written explanations more valuable than ever. Talking face to face requires less effort, but you rarely or never meet the authors of most of the code you see. Software craftsmanship has failed to make written documentation unnecessary. Instead we shall turn to README-Driven Development, comments evasion, documentation-avoidance, just-in-time documentation and the art of not writing it in the first place.
I Wrote an FFV1 Decoder in Go for Fun: What I Learned Going from Spec to Impl...Derek Buitenhuis
hy write an FFV1 decoder when two already exists? Because it’s fun, and I wanted to see how writing a decoder solely from a spec works out. This is the story.
Meeting-avoidance for self-managing developersPeter Hilton
How and when to avoid meetings and have more time to write code
Meetings are a problem for any organisations, because they dull the attention-span of otherwise intelligent people, and prevent otherwise productive people from getting any work done. Software developers suffer more than most, because they can’t even pretend that they’re getting any work done when they’re sitting in meetings. After all, getting your laptop out and writing code during a meeting is (rightly) considered rude.
This presentation introduces various approaches that software developers can use to reduce the number of meetings in their organisation, so they have more time to write code. In particular, developer contributions to project management can drastically reduce the number of meetings.
A few brief slides as presented at Barcamp Manchester explaining how to install GPG. It's only as I'm uploading this presentation now, I realise that I didn't include "how to use it", although many of the linked URLs do.
A brief introduction to "How The Internet Works", from how your LAN uses MAC addresses to talk nic-to-nic, through to what a proxy is, and how that operates, plus a little bit of everything in between. Consider this the leypersons guide to the Internet.
I gave this talk at Barcamp Liverpool, which was to briefly explain how I worked out how to send and receive SMS messages from a PC using a mobile phone, a Bluetooth adaptor and a piece of software for Linux called ser2net.
This talk was presented to Manchester Free Software, explaining very loosely what the differences are between various µBlogging platforms.
This talk was recorded and is available at http://www.archive.org/details/Manchester.Free.Software.Jon.Spriggs
This is the presentation I gave at OggCamp 2009. It is a high level overview of various methods of producing trust and then using them on untrustworthy connections. It was mostly recorded (up to the last slide) at http://qik.ly/m6Be
I gave this talk again on the main stage at BarCamp Manchester 2
I gave this talk on IEEE Day (October 7, 2014). I covered Introduction to Open Source, Various Projects and Products in Open Source, What students can get from Open Source and various different aspects of Open Source during this talk.
Please feel free to download, modify and use the slides for your talks. Lets keep rocking the Free Web ! :)
Los chatbots son un elemento clave en la transformación digital de nuestra sociedad. Están por todas partes: eCommerce, salud digital, asistencia a clientes, turismo,... Pero si habéis usado alguno, probablemente os habrá decepcionado. Lo confieso, la mayoría de los chatbots que existen son muy malos. Y es que no es nada fácil hacer un chatbot que sea realmente útil e inteligente. Un chatbot combina toda la complejidad de la ingeniería de software con la del procesamiento de lenguaje natural. Pensad que muchos chatbots hay que desplegarlos en varios canales (web, telegram, slack,...) y a menudo tienen que utilizar APIs y servicios externos, acceder a bases de datos internas o integrar modelos de lenguaje preentrenados (por ej. detectores de toxicidad), etc. Y el problema no es sólo crear el bot, si no también probarlo y evolucionarlo. En esta charla veremos los mayores desafíos a los que hay que enfrentarse cuando nos encargan un proyecto de desarrollo que incluye un chatbot y qué técnicas y estrategias podemos ir aplicando en función de las necesidades del proyecto, para conseguir, esta vez sí un chatbot que sepa de lo que habla.
When going into the development of a software product, a possible source of mistake is the incorrect evaluation of the complexity that lies behind an idea , as well as a clutter coming from the massive amounts of technologies enabled. This presentation explains a possible way to deal with such issues.
InnerSource - Using open source best practices to help your companyEric Caron
Once a company has more than 1 department developing code, a problem inevitably arises: How do you share source code that's mutually used? There are many different thoughts on the matter, but one that's starting to gain a significant amount of attention is "InnerSource". PayPal defines InnerSource as:
"InnerSource takes the lessons learned from developing open source software and applies them to the way companies develop software internally. As developers have become accustomed to working on world class open source software, there is a strong desire to bring those practices back inside the firewall and apply them to software that companies may be reluctant to release. For companies building mostly closed source software, InnerSource can be a great tool to help break down silos, encourage internal collaboration, accelerate new engineer on-boarding, and identify opportunities to contribute software back to the open source world."
In this talk I cover how to get from where you are ("Hey, we've got some source code that multiple people find useful!"), where you're going ("Look, we're more popular than ReactJS"), and some hurdles along the way ("Oh shoot, it looks like there is already a library to convert FLAC to MP3s..."). I give real-world examples of doing it right, and leave with some takeaways that people can immediately implement at their own companies.
Kamon Ayeva Antipatterns, Patterns, And Rules Of Thumb For Successful Plone...Vincenzo Barone
Plone is cool, powerful and does what it promises. But any ambitious Plone project is difficult if you don't pay attention to some prerequisites and follow some rules, both general and specific to the Plone world. This presentation hopes to help people involved in Plone projects to stop worrying and experience bad or unproductive communication we see sometimes, and adopt a new mantra : "Let's deliver that project and move on to the next one !" Based on the experience of the community at large, we are going to review the traps, the requirements, and how to approach problems if you want your project to succeed. In the tradition of "reuse what already works", you can apply already known project management patterns and antipatterns to your Plone project. You will be surprised to see that it works ! More importantly, the session will bring advices to the different parties of a project (the Company/User and the Consultant/Developer/Provider), and investigate how they can work together for a better outcome for the end-user.
How to Talk About Your Open Source Project So People Get ItAll Things Open
Title: How to Talk About Your Open Source Project So People Get It
Presented at All Things Open 2022
Presented by Emily Omier
Abstract: Do your colleagues seem confused when you talk about your open source project? Are you struggling to get traction for your project and worried that a lack of contributors could threaten the project’s long-term viability? In this talk, Emily Omier will show how maintainers can apply the principles of positioning to open source projects so that they’ll attract more of the right kind of users who will become a lasting part of the community. Maintainers will learn how to describe their project in a way that will make sense to other engineers immediately, how to articulate why anyone should care about their project and how to figure out who their ideal community members are. Emily will also cover what concrete actions to take to tell the world the project exists after clarifying or changing positioning.
Scale14x Patterns and Practices for Open Source Project SuccessStephen Walli
There are two parts to the “success” of an open source software project:
Deployment growth: One publishes software to see it used. As the software is used, it reflects the dynamic nature of software, and is used in new ways to solve new problems. This leads to the second part of the success formula -- contributions.
Contribution flow: A free or open source software project is at it’s simplest a discussion in software, and without contributions the conversation fades and fails. From a more complex community perspective, a FOSS project is about the economics of collaborative innovation and development. Without a continuous contribution flow, the dynamic aspect of a software project will become static and brittle and lose its relevancy.
There are three on ramps to be built to drive the success of an open source project: Bringing new users to the project, enabling developers, and encouraging contributors. This talk looks at how these on ramps can be organized to drive growth and adoption, and to grow a successful and vibrant community around an open source project.
The talk was delivered at SCaLE 14x: https://www.socallinuxexpo.org/scale/14x/presentations/patterns-and-practices-open-source-project-success
A few brief slides as presented at Barcamp Manchester explaining how to install GPG. It's only as I'm uploading this presentation now, I realise that I didn't include "how to use it", although many of the linked URLs do.
A brief introduction to "How The Internet Works", from how your LAN uses MAC addresses to talk nic-to-nic, through to what a proxy is, and how that operates, plus a little bit of everything in between. Consider this the leypersons guide to the Internet.
I gave this talk at Barcamp Liverpool, which was to briefly explain how I worked out how to send and receive SMS messages from a PC using a mobile phone, a Bluetooth adaptor and a piece of software for Linux called ser2net.
This talk was presented to Manchester Free Software, explaining very loosely what the differences are between various µBlogging platforms.
This talk was recorded and is available at http://www.archive.org/details/Manchester.Free.Software.Jon.Spriggs
This is the presentation I gave at OggCamp 2009. It is a high level overview of various methods of producing trust and then using them on untrustworthy connections. It was mostly recorded (up to the last slide) at http://qik.ly/m6Be
I gave this talk again on the main stage at BarCamp Manchester 2
I gave this talk on IEEE Day (October 7, 2014). I covered Introduction to Open Source, Various Projects and Products in Open Source, What students can get from Open Source and various different aspects of Open Source during this talk.
Please feel free to download, modify and use the slides for your talks. Lets keep rocking the Free Web ! :)
Los chatbots son un elemento clave en la transformación digital de nuestra sociedad. Están por todas partes: eCommerce, salud digital, asistencia a clientes, turismo,... Pero si habéis usado alguno, probablemente os habrá decepcionado. Lo confieso, la mayoría de los chatbots que existen son muy malos. Y es que no es nada fácil hacer un chatbot que sea realmente útil e inteligente. Un chatbot combina toda la complejidad de la ingeniería de software con la del procesamiento de lenguaje natural. Pensad que muchos chatbots hay que desplegarlos en varios canales (web, telegram, slack,...) y a menudo tienen que utilizar APIs y servicios externos, acceder a bases de datos internas o integrar modelos de lenguaje preentrenados (por ej. detectores de toxicidad), etc. Y el problema no es sólo crear el bot, si no también probarlo y evolucionarlo. En esta charla veremos los mayores desafíos a los que hay que enfrentarse cuando nos encargan un proyecto de desarrollo que incluye un chatbot y qué técnicas y estrategias podemos ir aplicando en función de las necesidades del proyecto, para conseguir, esta vez sí un chatbot que sepa de lo que habla.
When going into the development of a software product, a possible source of mistake is the incorrect evaluation of the complexity that lies behind an idea , as well as a clutter coming from the massive amounts of technologies enabled. This presentation explains a possible way to deal with such issues.
InnerSource - Using open source best practices to help your companyEric Caron
Once a company has more than 1 department developing code, a problem inevitably arises: How do you share source code that's mutually used? There are many different thoughts on the matter, but one that's starting to gain a significant amount of attention is "InnerSource". PayPal defines InnerSource as:
"InnerSource takes the lessons learned from developing open source software and applies them to the way companies develop software internally. As developers have become accustomed to working on world class open source software, there is a strong desire to bring those practices back inside the firewall and apply them to software that companies may be reluctant to release. For companies building mostly closed source software, InnerSource can be a great tool to help break down silos, encourage internal collaboration, accelerate new engineer on-boarding, and identify opportunities to contribute software back to the open source world."
In this talk I cover how to get from where you are ("Hey, we've got some source code that multiple people find useful!"), where you're going ("Look, we're more popular than ReactJS"), and some hurdles along the way ("Oh shoot, it looks like there is already a library to convert FLAC to MP3s..."). I give real-world examples of doing it right, and leave with some takeaways that people can immediately implement at their own companies.
Kamon Ayeva Antipatterns, Patterns, And Rules Of Thumb For Successful Plone...Vincenzo Barone
Plone is cool, powerful and does what it promises. But any ambitious Plone project is difficult if you don't pay attention to some prerequisites and follow some rules, both general and specific to the Plone world. This presentation hopes to help people involved in Plone projects to stop worrying and experience bad or unproductive communication we see sometimes, and adopt a new mantra : "Let's deliver that project and move on to the next one !" Based on the experience of the community at large, we are going to review the traps, the requirements, and how to approach problems if you want your project to succeed. In the tradition of "reuse what already works", you can apply already known project management patterns and antipatterns to your Plone project. You will be surprised to see that it works ! More importantly, the session will bring advices to the different parties of a project (the Company/User and the Consultant/Developer/Provider), and investigate how they can work together for a better outcome for the end-user.
How to Talk About Your Open Source Project So People Get ItAll Things Open
Title: How to Talk About Your Open Source Project So People Get It
Presented at All Things Open 2022
Presented by Emily Omier
Abstract: Do your colleagues seem confused when you talk about your open source project? Are you struggling to get traction for your project and worried that a lack of contributors could threaten the project’s long-term viability? In this talk, Emily Omier will show how maintainers can apply the principles of positioning to open source projects so that they’ll attract more of the right kind of users who will become a lasting part of the community. Maintainers will learn how to describe their project in a way that will make sense to other engineers immediately, how to articulate why anyone should care about their project and how to figure out who their ideal community members are. Emily will also cover what concrete actions to take to tell the world the project exists after clarifying or changing positioning.
Scale14x Patterns and Practices for Open Source Project SuccessStephen Walli
There are two parts to the “success” of an open source software project:
Deployment growth: One publishes software to see it used. As the software is used, it reflects the dynamic nature of software, and is used in new ways to solve new problems. This leads to the second part of the success formula -- contributions.
Contribution flow: A free or open source software project is at it’s simplest a discussion in software, and without contributions the conversation fades and fails. From a more complex community perspective, a FOSS project is about the economics of collaborative innovation and development. Without a continuous contribution flow, the dynamic aspect of a software project will become static and brittle and lose its relevancy.
There are three on ramps to be built to drive the success of an open source project: Bringing new users to the project, enabling developers, and encouraging contributors. This talk looks at how these on ramps can be organized to drive growth and adoption, and to grow a successful and vibrant community around an open source project.
The talk was delivered at SCaLE 14x: https://www.socallinuxexpo.org/scale/14x/presentations/patterns-and-practices-open-source-project-success
Software development is not exactly the same as computer programming. When it comes to a career, development for productization introduces many more things than simply coding. It is important to learn how to accomplish tasks, sharpen skills, develop the career and enjoy it. And last but not the least, how to start?
Thinking About Prototyping: Sketching, Familiarity, Costs versus Ease of Prototyping, Prototypes and Production, Changing Embedded Platform, Physical Prototypes and Mass Personalisation, Climbing into the Cloud, Open Source versus Closed Source, Why Closed? Why Open? Mixing Open and Closed Source, Closed Source for Mass Market Projects, Tapping into the Community. Prototyping Embedded Devices: Electronics, Sensors, Actuators, Scaling Up the Electronics, Embedded Computing Basics, Microcontrollers, System-on-Chips, Choosing Your Platform, Arduino, Developing on the Arduino, Some Notes on the Hardware, Openness, Raspberry Pi, Cases and Extension Boards, Developing on the Raspberry Pi, Some Notes on the Hardware, Openness.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
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!