Back in 2014, I worked at the XPRIZE Foundation, and we launched the Global Learning XPRIZE. This $15 million competition, funded by Elon Musk among others, challenged teams to build an Android tablet application that teaches kids how to read, write, and perform arithmetic, all without the aid of a teacher within 18 months. The competition showed the potential of how technology can help to bring education to 250million+ kids around the world.
Fast forward to 2019 and the prize was awarded to Team onebillion and Team KitKit School, with all entries showing incredible results in learning across literacy, maths, and beyond. What’s more, all the entries have been open sourced on GitHub.
Emily Musil Church is the director of the prize, and was involved at every step of the way from shaping the competition, to running the field trials in Tanzania, and more. She is one of the most incredible people I have ever worked with.
In this episode of Conversations With Bacon we get into the nature of the competition, the logistics of running field trials with thousands of Google Pixel tablets across hundreds of remote villages, how the teams competed and collaborated together, the broader impact of education beyond merely learning, the open sourcing of the entries, and much more. This is a really fascinating and inspiring conversation!
Kate Drane is a bit of an enigma. She helped launch hundreds of crowdfunding projects at Indiegogo (in fact, I worked with her on the Ubuntu Edge and Global Learning XPRIZE campaigns). She has helped connect hundreds of startups to expertise, capital, and customers at Techstars, and is a beer fan who co-founded a canning business called The Can Van.
There is one clear thread through her career: providing more efficient and better access for innovators, no matter what background they come from or what they want to create. Oh, and drinking great beer. She is fantastic and does great work.
In this episode of Conversations With Bacon we unpack her experiences of getting started in this work, her work facilitating broader access to information, funding, and people, what it was like to be at Indiegogo through the teenage years of crowdfunding, how she works to support startups, the experience of entrepreneurship from different backgrounds, and more.
Today I am excited to launch my brand new podcast, Conversations With Bacon!
The idea is simple: when I think back over my career, the times I have learned the most, and had the most fun learning, has been getting into detailed, interesting discussions with interesting people from all walks of life. This exchange of ideas and experience is often fascinating, and presents new ways for me to think about my own work and projects.
My aim with Conversations With Bacon is to bring on a wide range of people to explore the ideas and experiences that have shaped their work and lives. I don’t just want to discuss what they work on, I want to get into the driving forces behind their thinking and approach. The aim of all of this is to give you an interesting discussion for you to be a fly on the wall listening to, and hopefully glean some new ideas for yourself. There will be new shows about every three weeks.
For this first show, I am thrilled to bring on Todd Lewis, who created the All Things Open conference in Raleigh in 2012. He has gone on to grow the event from 600 attendees in their first year to over 4000 attendees last year. Todd is a bit of a renaissance man when it comes to events, and in this first episode of the podcast we explore what goes into great events, how to get the right balance of content and taking care of sponsors, building an open marketplace of (often contrasting ideas), and what Todd has learned over the years as he has refined his craft.
Listen to the show below, and I would love to hear your feedback for how I can improve it, and which guests you think would be interesting to bring on. Like anything, this is a learning experience, and it will take time to get the show format and content perfected: your help will help me get there faster!
Back in 2014 I worked at the XPRIZE Foundation. One of the major reasons I joined was to help launch the Global Learning XPRIZE. This was a $15 million competition, largely funded by Elon Musk, that challenged teams to build an Android app that teaches kids basic reading, writing, and arithmetic, without the aid of a teacher, within 18 months.
When we launched this prize we were astonished by the response. At the time I launched our Global Learning XPRIZE crowdfunding campaign (which raised just under $1 million with a $500k goal) and the new XPRIZE community, and the excitement was palatable. Over 180 teams submitted entries.
These teams were narrowed down to five finalists and extensive field testing trials happened in Tanzania. This in itself was a behemoth task to get tablets and electricity out to such remote areas. This video provides a good overview of this work:
Well, this week the competition came to a close. On Wednesday I flew to Los Angeles to join the awards ceremony at the Spruce Goose Hanger at Google. Peter Diamandis kicked the event off, Emily Church introduced the teams, Levar Burton (yep, the guy from Star Trek) did a short speech, and Elon Musk swung by to award the teams before jetting off (no pun intended) to do a rocket launch.
It was a fabulous evening and it was wonderful to meet all the teams and see the energy and passion from everyone there. Here are some pictures from the ceremony.
Also, here is the live stream of the event:
Just The Beginning
Now, while it was fantastic to see the awards being delivered, what was most interesting to me was the overall impact of these entries across reading, writing, and numeracy:
Clearly the teams have developed software that really does meet the goals of the challenge: to provide a marked improvement in education for kids who don’t have access to teachers. This is an incredibly encouraging start.
The good news is that all five finalist’s code has now been uploaded to GitHub. You can find the repos by clicking here. All the technology that is driving these educational gains is built for Android is now available under an Apache open source license and the general open source community is welcome to participate.
In addition to this, the XPRIZE team have set up a discussion forum. This is brand new, but I would encourage those of you who are interested in this project to go and check it out.
Now, as you can imagine, these are five pretty significant codebases, and each has unique attributes. For example, Team CCI has built an authoring platform where you can produce content without coding (similar to Flash). RoboTutor have built an AI-powered voice recognition platform so kids can read the words on the screen, it will listen, and then read back the correct word.
I really want to see this code as the beginning of a new era of educational software that can impact the 250 million+ kids that need access to high quality education delivered via tablets. I can’t think of a better opportunity to built a community around a more meaningful mission
For these projects to succeed though I believe we need to focus on the following key areas, all of which need volunteers (wink wink!):
#1. Get more people involved
With the code now available, I want to encourage you all to go and download these projects, play with them, and start participating.
File issues with bugs and feature ideas, submit pull requests, and reach out to the teams. Feel free to share your ideas and offers of help on the community forum.
#2. Modularize the best elements of the different codebase
I don’t think it is realistic to expect all five of these projects to converge under a single initiative, they are likely too different. I do though think we should try to modularize some of the key tech (such as the examples I gave above) into individual projects.
I am going to reach out to the teams to see what kind of appetite they have for this: from my discussions yesterday, it seems like there is interest in doing this. This will make it easier to collaborate and expand the contributor base.
If we can modularize these pieces and get more of the projects using the same common pieces, it will grow those foundational elements faster as more devs can contribute. As an example, TeamCCI has already offered to fund $100,000 worth of educational content development for the other teams if they use their core Pubbly platform (which is now open source in GitHub.)
#3. Increase localization
Each of these projects is available in English and Swahili, with some of the teams also being localized into Hindi.
There is an enormous opportunity to expand the translations base for these projects. When I was at Canonical, one my proudest memories was how localized Ubuntu was and continues to be: we should do the same for these projects.
These projects should be available in multiple languages, not just the strings, but the content too. With every new language there is the possibility of this software impacting kids in those regions too.
#4. Create documentation for the community and project
With five big new codebases, we could benefit from docs writers to build and maintain a wiki for the project. How to build the projects, join the community, submit pull requests, submit art/design assets…this all needs documenting. Do you want to make an impact on education around the world and do you like writing? Roll them sleeves up and get involved!
So, if you are interested in getting involved, head to the community forum, sign up, and weigh in. There is enormous opportunity here to have an impact: let’s make it happen.
When I am working with clients with community management, one of the first things I want to understand is how they, not me, define success. What metrics are they tracking?
One of the common metrics for success in communities is people who register, sign up, or otherwise provide some kind of identity to a community
Now, this is important, but we need to look at what it really means. For most public communities, I generally recommend they make their community platform open for reading and consuming without requiring an account. This provides an opportunity for people to “try before they buy”. It also means though, that these faceless strangers may get significant value out of the community (such as finding answers to their questions), without ever needing to sign up.
Now, as part of their community management dashboard (see my other pieces on ‘How To Track Community Growth In Forums‘ and ‘Measuring Community Health‘), I still want to track sign-ups, and here is an example of a client I am working with (they gave me permission to share this, anonymously):
What this graph tells me is that their community management is offering more and more personalized value to their members. Given that their forum is open to the public to read, people need a reason to sign up for an account. Most people don’t sign up for a community unless (a) they are required to, or (b) they want to feed in in some way, such as asking a question or voting in a poll. Sadly, they won’t sign up just because they like you.
As such, when we see a growth in sign ups, it tells me that more and more people are consuming value in the community and they are inspired to feed in and participate, which is a good sign. If this graph was flatlined, it wouldn’t merely just suck, it would tell me the opposite: we need to provide a clearer way for them to understand the value of participating and how they see their reflection in the community.
Now, many communities will track sign-ups as a key metric and often ignore the anonymous views of the community. But, let’s look at the same community’s data when it comes to people browsing the forum without being logged in:
Yeah, baby! This is looking almost like a hockey stick curve. What this tells me is that the value encompassed in their community forum is seeping out more broadly and pulling people in to browse the value there.
This is a critical metric. If we don’t see this graph growing, it means that either (a) the community is boring and doesn’t offer enough value, (b) people don’t know about it, or (c) both. :-/
As such, always focus on getting this anonymous traffic graph up. Here are a few recommendations:
#1. Optimize your SEO
Sure, I get it. A lot of people who waffle on about SEO seem to be talking bollocks, but it is essential. There are bags of tutorials, books, and videos about how to do SEO well. As part of your community management, focus on how you can optimize how your community web pages perform publicly and how they are indexed.
#2. Integrate into your other infrastructure
Far too many communities are not accessible from the other trappings of a project or product. Ensure people can know about your community and link to it easily from:
- Your website (ideally in the top-level nav.)
- Social media accounts.
- Blogs and other publishing mediums.
- GitHub/GitLab repositories, and
- Email messaging, newsletters, and other outreach.
- Event presentation slides, handouts, and other materials.
Don’t just do this once: keep your community in the consciousness of your users and customers week in, week out.
#3. Regularly feature community management work on social media
If you have rich, interesting content in your community, you need to post about it every week on your social media networks. Social media is a significant driver of traffic to websites, so ensure you are utilizing it as a tool to get people to your community.
Don’t just broadcast, invite participation in your community. Have calls for feedback, input, and other engagement: it all drives participation.
#4. Regularly think about how to pull people in
There always needs to be a reason for people to go to your community. What is it?
Sure, providing support is useful, but that will only bring people in when they have questions. As such, think of other ways to get them in your clubhouse.
Publish tutorials, guides, demos, and feature/release updates to your community. Promote these on social media and beyond. Give people a reason to check the community every day.
As such, many people (myself included) regularly check the community to discover these new features, learn how to use them, and more.
These are just a few suggestions scratching the surface of how you build this anonymous traffic. What recommendations do you have to grow it? I am always eager to learn new approaches and methods, so get them in the comments – thanks!
Open source community can be a tricky business, but today I want to share a quick example of the kind of open source community engagement I try to encourage more generally, and with clients. This one comes from a client of mine, Zeppelin, who builds tools for decentralized systems and smart contracts.
Well, a few days back this post appeared in their community:
@martriay works for the company and is my primary point of contact for leading their community development. Clearly the company is busy with other projects but wants Ethernaut to keep moving forward, and the community expressed an interest in helping.
When @martriay asked if people would be interested, a number of hands went up:
Given the community interest, he followed through on his promise and kicked off a new topic:
Here he tagged the individual people who had expressed interest (so it appears in their forum notifications), and provided some pragmatic next steps for ways in which the community can play a practical role.
Importantly, @martriay also made it clear that the community are welcome to come up with their own creative ideas for how to participate (instead of forcing them into a specific box of tasks). This is critical: communities thrive when they are a creative meeting of minds, but with a clear method for how people practically work together.
What followed was a discussion for different ideas for tasks and where people would like to participate:
Here @martriay continued to be responsive, playing a supporting role to help those interested community members get started (such as opening up and adding to the project’s board in GitHub.)
This is another subtle, but important point: here @martriay is working to encourage participation but to try to consolidate these contributions into the same “view”, and provide an opportunity for some community members (namely, @scammi and @paulinablaszk) to play a key role as contributors:
As things stand right now, a clear list of work assignments is forming, all based on this creative discussion and input:
Part of why I think this is a good example is that it demonstrates (a) what is possible when a company is open to contributions, (b) how the community can play a key role in adding additional value to a shared project, (c) the importance of facilitation, and (d) how this energy can be consolidated into a central way of working.
If we peel away the covers, there are 5 key principles operating here.
#1. Be Open to Contributions
When companies are building open source projects, there is typically a line drawn in the sand between where the community can contribute and influence a project and where they can’t. Some companies will be reluctant for contributions, even for projects that are unmaintained, often due to various fears (liability, trademark issues, losing control, etc.)
Ethernaut is a great candidate for community contribution: the company has other pressing priorities, and the community loves Ethernaut. Being open to contributions demonstrates (a) the maturity of the company, and (b) that the community is a valuable relationship to the company.
#2. Foster Creativity
Community members don’t want to be walled into a box. They don’t want to be given a limited set of tasks. They are not task-rabbits.
Community members want to use their creativity to explore ways to make a project better. They want to express ideas, and have an open dialog about which of those ideas have legs and which don’t.
The very best open source projects have an open, creative environment, but a clear method in which work gets done, reviewed, and integrated. As you try to build a simple, clear workflow, don’t gut this creative input.
#3. Openly Facilitate Contributor Success
Few open source communities with a primary single commercial sponsor operate entirely autonomously. You will always need someone from the company to help facilitate the overall success of your community contributors.
Doing this well requires open engagement in the community, helping to foster their creativity, and working to zone in on specific tasks that are assigned to specific individuals. If you don’t have this you will likely get a lot of, “Wouldn’t it be cool if…” ideas, but no pragmatic results.
#4. Simplify and Centralize Team Workflow
While you want to foster creativity, the way in which the team works should be as clear, simple, and as accessible as possible.
For many projects, they have an online repo (e.g. GitHub), an online issue tracker, and code contributions are made via pull requests. They will also have a central place where the project is discussed, such as a forum.
#5. Be Accessible and Engaging
Finally, the tone and way in which you engage with your contributors is enormously important. Your community members are not robots, and don’t want to be treated like robots.
They are human beings, so be human with them: be loose, engaging, and fun. Validate great contributions, provide friendly constructive criticism, make jokes, and smile both in-person and online. It sounds simple, but this is critical: build an environment people want to be a part of.
This is really important for two reasons:
- People like working in more social, fun, and engaging environments.
- Human beings mimic each other and especially their leaders. As such, if you are fun and engaging, they are likely to be so too.
So, that’s it. I just wanted to share this little example, primarily so it can illustrate what I mean when I talk about what good, collaborative, open source engagement looks like. If you have other examples, be sure to share them!
Bonus points for those of you who can guess where the main image for this post is from.
One of the interesting elements of working with a range of different companies is being able to better understand the dynamics that influence how well a community will succeed or fail. These dynamics are many and broad, and include having a solid strategy, the right balance of transparency, executive and frontline and support, simple and sensible tooling, and more. Sadly, the availability of gin plays no concrete role in this success. Bah humbug.
Within the context of companies building a community around a product, one of the most critical influences of this success, frankly, is having a product that (a) people actually want, and (b) that they can wrap their heads around it.
This may seem obvious, but it is more complex than it may seem. If you look at the rich tapestry of open source, you have some very popular projects that serve broad needs such as Kubernetes, Node.js, Git, Docker, Angular, and others. But then, you have projects that serve very niche needs such as OpenMRS, SymPy, Astropy, and eht-imaging. All of these projects are thriving open source communities.
Now, for some companies watching these projects growing in adoption and market recognition, it can generate a seemingly logical conclusion:
“Surely if we open source our struggling project on GitHub or GitLab we will attract an audience of users and developers, and therefore help our broader market success, right?”
Well, Danger, Will Robinson.
A Balanced View
While there is little doubt that open source can have a heck of an impact on projects, products, and companies, the way in which you accomplish this impact needs to pull together four key components:
- Product – firstly, you need to have a product that the market wants, that can add value for your target audience, and maps well to your chosen open source model.
- Product/Engineering Workflow – secondly, if you are going to run a public open source project, you need to ensure your product and engineering teams can operate with an open, asynchronous workflow and can interface with public contributors.
- Community Strategy – thirdly, you are going to need a clear, unambiguous strategy for how you structure your community, hire the right team members, target the right audiences, build growth, and more.
- Internal Capabilities – finally, you are going to need to develop the skills in your company to accomplish all of the above. This will require staff training, support, mentoring, and leadership.
Now, often when I am brought into a company, the client is typically very interested in focusing on points 2 – 4. After all, this is what a lot of people associate with the work I do.
My first questions though almost always focus on (1). Is the product you have suitable for open sourcing, and will open sourcing it bring you and your prospective community the value you and they want?
Open source is not a panacea. It is not a solution that will revive an uninteresting or poorly built product. I never recommend anyone goes down the open source road until they have assessed this important product suitability consideration first. Otherwise, they risk doing a lot of work for very limited benefit for anyone.
Essential Questions To Ask
Here’s the deal: open source requires a careful balance of open workflow, community/contributor management, and a clear delineation of where the lines are drawn between your open source and non-open source projects (and which teams work on what.)
To put it rather glibly, open source is not as simple as chucking some code into a public repository and blogging about it. It requires a careful balance of internal and public workflow, and needs a significant investment of time and energy to do well. As such, you want to be sure that this time and energy is not just worth it, but has a realistic chance of success for both you and your community.
When you are considering this, I recommend asking yourself 4 key questions:
#1. Is there a market need/fit for your product?
Open source has become increasingly interesting to companies who want to get developers using their product or platform. Developers are increasingly influential decision-makers in modern tech firms, and often prefer open source platforms.
Put the open source element to one side though and ask yourself the objective question, “Does your project serve a clear need and deliver enough value for your target audience?”
The #1 thing your audience are looking for is clear, valuable functionality. Does the software do something that pragmatically make your audience’s lives better? If it doesn’t deliver this, no amount of open source will save it.
So, try to understand what your core audience want and ensure your project can deliver it. If this is a new project, publish a roadmap for these key target features and focus on staffing the delivery of them. A compelling 1.0 is essential to interest both users and potential contributors.
#2. What is the on-boarding experience like for new users?
On a related note, how easy is it to get started using your project? Can a new user get up and running and experience tangible value within 10 minutes? No? Then you you need optimize your on-boarding experience.
I have seen some bloody horror stories here: projects that make users jump through endless hoops, require complicated configuration (with little to no documentation), have dependencies on obscure or unavailable services, and other dents in the experience.
This is the model I have developed over the years for thinking about building a clear onramp:
Your audience should be able to proceed simply and logically from one step to the next ultimately getting to the star, which is a piece of tangible value for them (e.g. completing a task, solving a problem, etc.).
Now, while every project will use a slightly different set of steps, an onramp generally breaks down into understanding value, setting up tools, learning skills, and using the tools and skills to produce something valuable. (1) and (6) are highlighted in the above graph because they should be on every onramp: you always need to communicate the value of your project (such as via websites, social media, etc) and validate the people who use it successfully (such as with rewards, engagement, and opportunities). The latter is especially important for building lasting relationships with your community.
Think about how to simplify the overall onramp (you should explore how muntzing can help here). Then, ensure that each transition from one step to the next step is logical and try to understand and resolve where people get stuck.
If you don’t do this, you will struggle to build a userbase for your project, which is a critical requirement before you can consider developing a contributor-base.
#3. What are your primary goals for open sourcing it?
The next question is why are you are open sourcing your project in the first place? From a company perspective this can vary and will often include one or more of the following:
- We want to increase market awareness and adoption.
- We want to increase engineering contributions to the project.
- We want people to build on top of the project (e.g. plugins or modules.)
- We want to increase the company’s brand recognition.
- . . .
This is where things can get complex: open source projects can often lead to many of the benefits listed above, but it is not just the nature of being open source that will drive these benefits, it is the focused strategy efforts you put in place that will.
For example, if your goal is “increasing engineering contributions”, putting code in a repo will not merely lead to this. Clear developer on-boarding, solid documentation, building meaningful community relationships with developers, developer focused content and outreach, and other efforts will help drive this growth.
The risk some companies face here is that they think of the value of open source primarily from their own perspective, but don’t focus enough on what value their users want to experience too. How can you build an open source community that gives your users greater information, flexibility, and communication with the project and your team? How can your users play a more meaningful role in the project? If you build an environment with your users’ needs in mind, you will build a a far more engaging and valuable community in general.
#4. What new skills and resources do you need to build in your company to do this work well?
It took me far too long to realize that a significant determining factor of community success is not just making the right strategic choices, but also baking those skills effectively into an organization.
For many companies, switching to an open source model is a significant change of workflow, policy, and how you incentivize your team. Aside from picking the right set of open source strategic steps (such as how you publish code, manage issues, build community engagement and growth etc.), you should also plan for how to bake these skills and expertise into your teams.
An an example, one key element of being an open source project is receiving and responding to pull requests with new features and fixes. This requires your team members to be able to review those PRs, test them, provide constructive feedback, and approve or reject the contribution based on merit. It requires calm and constructive feedback, often with people you don’t know and trust yet. It requires the overall code review process to happen end-to-end out in the open. Overall this needs a nuanced set of skills such as peer review, technical collaboration, open build management, and other pieces.
For companies less familiar with open source, this is all going to seem a bit weird and uncomfortable. Your team members are going to hesitant to engage, not only because it is new, but they also don’t want to put a foot wrong and get in trouble. This is entirely normal.
As such, think about how to break these skills down into simple pieces, provide the right level of training and support, and how to mentor and support people through this transition. Help them to build a habit around participation, and develop incentives, rewards, and other mechanisms to help them naturally orient to an open workflow and enjoy engaging in it.
Open source is an enormously powerful model, but focusing on these core product questions is an important part of the process. What other considerations should companies be making? Share them in the comments…
Last month I was invited to go and speak at a school careers event. My audience was a collection of young people stuck at that tough intersection between being at school and starting to think about what they want to do for a career. I don’t envy them.
While I was asked to talk about my career and the various trappings of consulting, speaking, and writing, I told them I didn’t think this was the most important thing for us to talk about. Instead, I wanted to share how the path we often take to our careers is important, but there are so many things outside that path that can play a critical role in our broader success and overall happiness.
When I was 16 myself, I had a vague idea about what I wanted to do, but had no concrete idea of where I was going, and how I would get wherever I needed to be. Today I want to share my own path and how some critical things outside of my education played a formative role in the career I have today. My hope is that some young people may read this and find it both informative and reassuring.
Somewhat amusingly, I found my National Record Of Achievement, which includes reports from my teachers around the time I was 16-years-old. I found it pretty amusing, so I am some including a few samples for you to poke fun at me over.
When I was growing up in England, the map to your career was pretty consistently shared by parents and teachers alike. You go to school, work hard, and get good GCSEs. Then, you do your A-Levels for two years, work hard, and get more good grades. This earns you enough points to get into a decent university. You then slog through your degree over the next four years (while drinking copious amounts of cheap lager), and then go out and get a job. If you are a glutton for punishment, you bolt on a masters degree.
This path posed a small problem for me. While I was a well-behaved, attentive, courteous student at school, I wasn’t particularly motivated by the subjects there. Some topics, such as English, IT, and Physics captured my interest, but I was bored to tears by hours of dreary Geography, German, Biology, and Maths. Oh, and don’t even get me started on PE. Weirdly, for someone about as religious as a small chicken, I was fascinated with religious studies, less about the mystical stories effused in biblical tales, but more for the anthropology of how human societies form.
The outcome here was somewhat unsurprising. I got pretty average grades, mainly Cs, for the subjects I studied. For the ones I was interested in, I got a smattering of Bs, and for the ones I didn’t care about I got Ds and Es. I don’t think I got a single A in my entire school career.
Now, this is not to suggest I didn’t understand the importance of school or that I didn’t enjoy it. I took school seriously and I generally had a good time going. Similarly, for any young people reading this, school is really important and you should give it your best. My parents were, and have always been, unbelievable supportive. They echoed this mantra, “All we want you to do is to try your best and put as much effort in as you can”.
Now, while all this was happening, I had two significant things going on outside of school.
Firstly, I was delving more and more into the music rabbit-hole. I was discovering different styles of music, grabbing anything I could, from the Rolling Stones, to Iron Maiden, to Metallica, and beyond. I was learning and playing guitar, and I started my own band at school. My mind was obsessed with music, discovering new bands, learning how to be a better player, and playing with other musicians.
Secondly, I was fascinated by technology, and I was lucky enough to have access to the Internet at home. Back in the dark ages in the UK, we had to pay 10p/minute to connect online. I had a genius idea: for every minute I spend online, I will pop one crisp 10p piece into a box next to the computer. My parents agreed to this optimistic arrangement, fully supporting their son discovering and exploring this new technology landscape. The bill came in: £280 of charges, six quid in the box. My 16-year-old self was in for a throaty bollocking, and rightly so.
As I descended into A-Levels, which are a notable step up in work and complexity from GCSEs, my interest in music and tech outside of school also escalated. My evenings were dominated by rehearsing and playing gigs in my first metal band, Conspiracy, and twice a week I attended night school to learn C programming with my brother, Simon.
When I completed my A-Levels, my grades were…well, nothing to boast about. Two Cs, a D, and an N. Curious what an N is? I think it means I spelled my bloody name wrong on the exam paper. I was disappointed. I genuinely worked hard, but I struggled to get the results I wanted.
Interestingly though, my IT teacher took me aside one day and told me he saw a lot of potential in me. He offered to teach me some more advanced topics after school, which I eagerly jumped at. Slowly I was starting to see where my interest and potential was coalescing.
My A-Levels performance limited my options for University. Given my interest in tech, I ended up picking Interactive Multimedia Communication at Wolverhampton University. While a relatively bog-standard university, the course was founded by a well respected professor in the field. It focused on the (at the time) new era of multimedia, incorporating digital video, audio, and optical media.
The Game Changer
Shortly before I packed up and went to university, my brother Simon introduced me to Linux and open source. It might sound hyperbolic, but it completely flipped my world upside down. Here was a technology, produced and powered by people who work together openly to improve it, and anyone could roll their sleeves up and get involved. This didn’t just fascinate me, it gave me a real sense of purpose.
The next four years were a blur. I started a website to bring the UK Linux community together, went to university, and started the Wolverhampton Linux Users Group. I met new and interesting people, and started contributing to projects such as KDE and GNOME. I wrote little bits of code and put them online. I organized conference booths, wrote documentation, and started speaking at events. I was fueled by this work because it had meaning, and that meaning was bolstered by a global community all wired up with the same vision.
At a conference in London, I had a non-zero number of beers with two editors who were launching a new Linux magazine called Linux Format. I plucked up the courage to ask if I could write an article and they said, “Yes, but if it is shit, we won’t publish it”. This seemed like a fair arrangement.
The article passed muster and it went into the magazine. I started writing more and more and when I completed university, I decided to be a full time writer. It didn’t pay much, but I loved what I did, and it earned enough money to support the relatively frugal life my girlfriend and I lived. This is when I got the first taste of being able to devote my career to something I loved, and it was an amazing feeling.
One of the articles I wrote was about a newly minted organization in Birmingham called OpenAdvantage. They were focused on training people in the West Midlands in Open Source; especially focused on manual laborers re-skilling in technology as more and more factories moved out of the area. After the article was published I was invited to lunch by one of the founders, Paul Cooper, where he somewhat surprisingly offered me a job to be a consultant there.
I took the job and spent two years doing a range of things I had never done: consulting, training, learning new technologies, and more. While nerve-wracking at first, it gave me a taste for jumping in the deep end and figuring things out as I went. What followed were careers at Canonical, XPRIZE, GitHub, and then onto my current consulting business.
When I reflect back on my career, it had the key elements of the ascribed career path from GCSEs to university, but what I didn’t know was that so much of what we do outside of that path plays such a key role in our forward momentum. I am thankful that my parents were so supportive in both these interests inside and outside of school.
This made me realize that a career is really a series of fortuitous events glued together and the more events you can introduce, the more opportunities can manifest. If my brother had not introduced me to Linux, I would have never have started participating in open source, and would have never been at the conference where I met the editors. This means I would have never have written the article about OpenAdvantage, and never led to meeting Paul Cooper and taking the role there.
When I shared this story to the kids at the career day, I summarized much of this hindsight as five key patterns that I wish I had known about at their age.
1. Do what you love
It may seem obvious, but our motivation is fueled by what we love. If we focus on building a career out of the things that interest and motivate us, we can chart an ultimately fulfilling and happy life.
For example, I have always loved working with people, writing, and speaking. I love technology and how it can enable people to work together. I am passionate about the power of communities and figuring out the blueprint for how we build and sustain them.
Now, figuring out what you love is easier said than done when you are 16. Take some time to really think about what you enjoy, what motivates you, and what you look forward to doing. While your career will never be a total bed of roses, if you can wire it up to focus on the things you love, you will be much more fulfilled in your work.
2. Always push yourself, and find room to grow and improve
I think one of the challenges so many young people face is that they assess their capabilities on a binary scale: either I am good or bad at that skill or activity. Life doesn’t really work that way: our capabilities are more a sliding scale, and when we learn, practice, and evolve, the scale slides in the right direction.
This happens with everything. Whether you are learning how to code, play the guitar, how to collaborate in teams, be a manager, manage your finances, get fit, or anything else. When we see every new activity as a sliding scale where we start near the bottom and gradually push ourselves further and further up the scale as we practice, it gives us a sense of confidence and accomplish. To do this we need to know that the journey starts at the beginning and progress as we invest more time and practice into it.
Fitness instructors like to get their students into a state of feeling “comfortably uncomfortable”. Being on the edge of what you can accomplish and what is new and different is where this growth tends to happen. Always be proud of your accomplishments while also seeing how much further you can go.
3. Don’t get beaten down by yourself or others
It is easy to dwell on our failures. We all get it wrong sometimes. What’s more, elements such as Imposter Syndrome (see my article about it and how to manage it) can further exacerbate our self-criticism.
Take it easy on yourself. We are all eternal students and it doesn’t matter whether you have been in your career for 50 minutes or 50 years, we are all learning. Similarly, you see all those CEOs, COOs, CTOs, VPs, Founders, Presidents, and Board Members? They are all still learning and self-conscious about their performance too.
See every day as an opportunity for learning and growth, and an opportunity for an objective view of your progress. Acknowledge your capabilities and flaws, and then explore ways to keep growing. Letting yourself or others get your down doesn’t help anyone.
4. Your life is dictated by your vision of the future
When you are younger there are a lot of questions about, “What do you want to be?”
Sometimes it can be difficult to see a vision of your future while also figuring out what is realistically possible. You can probably easily see a vision of a restaurant waiter, but what about an actor, a founder, a professional musician, or a writer? Those can often seem like much further away realities.
Here’s my take: go big or go home. If you shoot for the moon and don’t quite make it, you will (a) get further than you thought you would, and (b) you will stretch yourself and your potential further too. It sounds like a cliche, but dream big, and it will give you the excitement and potential to get there.
5. The world is full of mentors, if you look for them
I learned this too late in life. We are surrounded by people who have enormous expertise and experience and who are often quite happy to share it.
Just look at your friends, families, teachers, and parents. Just look at the huge array of books, YouTube videos, training courses, and articles online. Just look at online communities, forums, and message boards.
There is so much insight out there. If you don’t have the answers to something you can find it quicker and more easily than ever before. Similarly, if you don’t know how to get started or want a gut check on your thinking, there are so many people who can help.
Here’s the key: we need to open our minds to always learning, always striving to grow and evolve, and being comfortable asking questions. When I was younger I didn’t ask enough questions and I think it inhibited my progress. Asking questions isn’t a sign of weakness or incapabilities, it is a sign of growth, and that is awesome.
So, good look on your journey. When I met these young people at the school careers day, I was inspired by their enthusiasm, interest, and questions. It can be a scary time figuring out what your career is going to be, but the good news is that there is enormous opportunity out there.
What guidance would you give to a young person evaluating their career choices? Share your tips in the comments!
When I work with clients, one of the key things they want to understand is how they track community growth and react to the data they are seeing. This can be a complex business: community platforms provide bazillions of metrics. Which ones should you track? Or, should you track them all?
Definitely don’t track everything. That is a fast-track to driving yourself bonkers.
Much to the chagrin of metrics nerds, tracking too many things can be a distraction. A better approach is to decide on a key set of dimensions and track those things effectively. Focus less on the number of graphs and more what you want to learn from the data.
Today I want to recommend what some of these metrics should be. For the purpose of this article, I am using Discourse as an example; they are a platform I commonly I use with clients.
The graphs you will see below are from a client of mine who are running a fairly specialist niche technical community that pre-launched late last year (who gave me permission to anonymously share the graphs). This are early stages for the community, but I think they are making great traction and these these graphs are illustrative of what you might want to measure and how you evaluate the data.
#1. Consolidated Page Views
The first thing you should track is general activity. How many people are coming to your forum, and what kind of traffic are you seeing?
In Discourse, Consolidated Page Views are helpful here. It shows the breakdown between logged in members (dark blue), anonymous non-logged-in users (light blue), and crawlers (red).
Most community members are window shoppers at first. They start browsing a forum (often to find answers to their questions or researching a product before they use it) before ever signing up. Your forum will likely crop up when they search for this information on Google.
As such, you want to track general traffic to the forum (to see how much utility the forum provides more generally), as well as track logged-in users to determine if your contributor base is regularly showing up.
If your general traffic is flatlining, you need to raise better awareness of your community: integrate it into your website, promote it on social media, mention it in content, etc.
In the early stages of a community the most critical thing is to ensure that every member has a great experience. Don’t worry too much about growth: focus on delivering a great community experience. We will discuss this a little later.
It is though important to track sign-ups as they give us a good sense of people coming into the community:
As a general rule, you want to see this at least consistent, but preferably growing. Bear in mind that sign-ups do not exist in a vacuum: people need a reason to sign up, otherwise they will just browse anonymously.
As such, brainstorm how you incentivize people to join. How are you pulling them in? How are you engaging and rewarding them? Try new ways of incentivizing people and track your impact with the above graph: if you see spikes, you know you are doing something right.
While we are on the subject of tracking activity, a useful metric to track how much people are posting. While least critical, it gives us a general sense of the growth (or lack thereof) of discussion:
Just like the stock market, this is a graph that can be spiky depending on a given week or month, so don’t take it too literally.
What you want to look for is a general community growth pattern in discussion. If you have lots of people registering signing-up and logging in (our previous two graphs) but your posts are flatlined, your forum is simply not interesting/engaging enough. If you have a growth in posts and flatlined member sign-ups, it means you have a very engaging forum that no-one knows about or where many people struggle to find a way to participate.
One of the hardest but most critical metrics to track is member “stickiness”. That is, how many of your members are sticking around, participating, and actively engaging. We don’t just want lots of members, we want them having an awesome experience.
The most critical metric here is the Daily Active Users/Monthly Active Users graph:
The formula here is simple: the graph presents a percentage score calculated by the number of members that logged in in the last day divided by the number of members that logged in in the last month. It gives us a good sense of overall repeated engagement and as a general rule, you want to shoot for over 30% stickiness.
As you can see in the above example, we had a bump around initial pre-launch, and then the engagement has flattened and is growing gradually. This is a pretty common pattern.
Our goal is to get this consistently up above 30% (which requires a combination of a diverse range of discussions to pull people in, constant encouragement of member participation, incentivizing and rewarding great contributions, and always adding more and more value for members to justify their time and participation.)
A common tool to get this figure up is rewarding active contributors. Just remember the The Risks Of Over-Rewarding Communities.
#5. Daily Engaged Users
While DAU/MAU is useful, it also fights crime with the the Daily Engaged Users graph, which is the number of members who have liked or posted in the last day:
This gives us a useful community growth curve for general member engagement. For a small early-stage community like this, the above graph is where I want to see it: consistent growth.
This graph is useful for determining the general growth curve for overall engagement. If you see this graph flattening out, it typically means there is not enough value for members (or a nervousness to engage.)
#6. Trust Level Growth
Finally, Discourse has the concept of Trust Levels. This is a powerful way to score members based on their active participation. It provides a great way to see which members are most active and then be able to reach out and engage with them. For example, with many communities I work on, we will work with the higher trust level members to provide mentoring and training.
This is enormously powerful. In this community I am referencing in this post, we have 92 people in Trust Level 0 (which means they haven’t done very much), 92 people in Trust Level 1, and 11 people in Trust Level 2. I am working with the client to start working with those 11 people in Trust Level 2 to engage as much as possible, give them additional opportunities and responsibilities, and make them feel part of the team.
The answers to how we build great communities live in the heads of your members. Identifying these people via trust levels is a great way to build real community and team spirit.
If you found this interesting, you may also want to check out my video on Measuring Community Health and The Importance of Validation and Decay In Community Reputation Metrics.
Of course, these graphs are just scratching the surface, but they are a place to get started. What other metrics do you track? What am I missing out here? Let me know in the comments….
On Tuesday last week I drove down to Half Moon Bay with Jeremy and Ilan for the Open Source Leadership Summit. I always enjoy this event: it is smaller and more focused than the bigger conferences, which helps facilitate some great discussion. Angela’s team at the Linux Foundation do a fabulous job running it.
As those of you who follow me on social media may have picked up, I was knocked down by some kind of weaponized fully-automatic navy-strength flu. I spent the entire event holed up in my room feeling thoroughly sorry for myself and living off room service. Over a week later, I am finally about to shake it. I am not quite sure how this happened, but I blame Stuart while he was at SCALE: he must be patient zero.
Anyway, before this all kicked in, I sat in the CommunityBridge announcement by Jim Zemlin after lunch on the Tuesday. I wanted to sketch some thoughts about CommunityBridge, what it is, and what I think of it but because of the flu-related downtime, I have been delayed in writing up some thoughts.
Now, a caveat: I have a close relationship with the Linux Foundation. They are a client of mine, and I consider Jim a good friend. As is always the case though, I formulate my own opinions, and my opinions here are my own and not that of the Linux Foundation.
For those who didn’t see the news, the Linux Foundation announced a new platform called CommunityBridge. In a nutshell, this is a platform that provides a set of services designed to serve open source projects and developers. The first set of services announced include:
- Funding – provides a place where people can donate to projects, and policies can be defined about how the money is used. For example, what proportion of donations can go to hardware, events, travel, etc.
- Security – provides an overview of vulnerabilities that relate to a project, links directly with the CVE database, and is able to identify vulnerabilities across the dependency chain.
- People – provides a dashboard to connect together mentors and mentees to streamline how mentoring initiatives are structured and run.
The Linux Foundation just took the wraps off this, so it is early days, but they are eager for people to start using it and provide feedback. They have also been providing donations matching to help build up the available funds in the platform.
For a number of years now, I have been talking about how code is one artifact of a strong community. Successful communities don’t just forge great code: they are able to build healthy teams with workflow and tools that are simple and tightly integrated.
As one such example, GitHub have over 96 million repositories that serve over 31 million developers. The most successful projects that live in GitHub integrate their engineering workflow (such as issue management and pull requests) with a raft of other elements, including but not limited to:
- Open communication, code, build services, and planning.
- Efficient code review and release management.
- Simple onboarding to get new developers from piqued interest to pull request in next to no time.
- Designing security policy, managing bugs, and maintaining security across binary distributions and dependencies.
- Regular meetings to review plans, discuss architectural decisions, resolve problems, and more.
- Soliciting donations and managing how that money is distributed, as well as the tax paperwork that is associated with it.
- Measuring contributions to the project and optimizing and improving developer workflow based on this data.
- Effective incentives and rewards for great work contributed in the community.
- Building growth and participation to keep the community growing.
- Building awareness of the project via a website, social media, campaigns, and more.
- Providing support to users, managing feature requests, and setting expectations.
- Speaking at conferences and events, building out a network, and opening up new opportunities for the project.
These are an amalgamation of workflow, policy, engagement, and growth. The problem is that weaving together this diverse range of ingredients in a successful open source project requires having people with the skills and experience to put them in place. Sadly, there are relatively few people who actually have this experience.
This puts notable pressure on the sustainability of open source. To keep open source growing, we need to be able to systematize and integrate these components into platforms more efficiently while also continuing to grow skills and expertise in these areas.
The platform piece is critical. We should have platforms that tell us what are the most effective dimensions for tracking projects, and have those metrics integrated. We should have platforms that represent an optimal fundraising workflow, and connect together donors and projects who use the money. We should have platforms that help people book and coordinate meetings, track meeting notes, and more.
From what I can tell, this is the sandbox in which CommunityBridge is playing: to provide a simple and extensible set of tools that help to fill in these gaps for a broader range of open source projects.
There is enormous potential if the Linux Foundation get this right. Sourceforge had a transformative impact on open source by making free, simple, and ubiquitous tools available to developers. GitHub took this to a radical new level. CommunityBridge has the potential to augment tools such as GitHub in a way that layers on functionality needed for these projects to be successful.
I also think the Linux Foundation is a good home for this work. They have quite a heritage in forging an ecosystem that invests in open source, bringing in many companies who historically would have been reluctant to throw their resources into the open source hat. We shouldn’t underestimate this accomplishment: open source is culturally alien to many different companies, and the Linux Foundation helped to forge a path forward in which these firms could dip their toes in, safely and securely, and build up their understanding and capabilities of how open source works. Now many of these companies are not just participating, but paying thousands of developers to work on open source and maintaining hundreds of projects.
As such, the Linux Foundation has produced an environment across their projects and events in which independent discussion and development can happen. Is it perfect, no, but nothing is. What I do know is that we wouldn’t be where we are today with open source if the Linux Foundation hadn’t helped facilitate a lot of this.
As such, CommunityBridge seems like an entirely logical next step. The only way we can grow to serve the broader ecosystem is to not just help the big-ticket projects like Kubernetes, but also the long-tail of projects too. A clear, featureful platform will pay dividends here in the broader success of open source.
Now, this isn’t going to be a walk in the park. For CommunityBridge to succeed, it needs to be informed and guided by the broader community. The Linux Foundation can’t possibly have all the answers, none of us do. They are have been open in expressing their receptiveness to feedback, and it is important that projects provide it. This will ensure that CommunityBridge shapes the most critical needs in the open source ecosystem.