How Community Helps Developers Grow
Tim Lehnen started tinkering with web design back in high school, playing with early versions of WordPress and Drupal, the open source content management system (CMS).
At Reed College, where he studied English literature and philosophy, he worked at the college’s user services department and picked up freelance web design gigs to help pay his tuition.
After graduation in 2008, his computer skills proved useful in paying the bills. For the past nine years, he’s been at the Drupal Foundation and is currently its CTO.
You might hear Lehnen’s story and call him a self-taught developer. But you wouldn’t be right, he told The New Stack. Self-taught, he said, “kind of means community taught.”
As a budding developer, he often brought his questions and thorniest problems to online forums, including those on Drupal.org. In doing so, he said, “Gradually, you build up a technical skill. But gradually, you also build up a sort of rapport with the community, and you begin to understand who some of the mentors are.”
When he started at the Drupal Foundation as an engineering manager, colleagues asked him how he got interested in the CMS.
He replied, “Well, actually, I asked you a question when I was a junior in high school. And you helped me figure out how to get my very first site up.”
“There’s some people who are still in our community today who were, back then, not formal ambassadors or formal advocates, but just people who are mentors and people who are willing to kind of share their knowledge. And I think those exist in all software disciplines.”
‘Development Is a Team Sport’
From the very first time you Google for answers and code snippets, you’re looking for a developer community.
Whether it’s contributors and maintainers of a long-lived open source project like Drupal (which receives anywhere from 7,000 to 10,000 contributors annually) — or newbies posing questions to Stack Overflow, GitLab, or other dev-focused forums — you can’t get far without learning from other developers.
“Development is a team sport,” said Emilio Salvador, vice president of developer relations and community at GitLab, told The New Stack. “And eventually, you can only be as good as your teammates, right? Hence, the importance of having a strong community.”
Today’s dev communities differ from those that emerged a couple of decades ago. “You think about the explosions of different technologies, the cloud that didn’t even exist before, developer languages, etc.,” said Salvador. “Communities have become more specialized.”
And developers often participate in several communities at once, whereas in the past, they were committed to only one or two.
There are also more options for participation, too — online and in-person. The global Covid pandemic forced dev meetups and conferences to reimagine themselves for the 2020-2022 stay-at-home era.
“An unintended positive consequence of Covid, is the possibility of giving everyone access to communities and people they could have only connected with if they lived in the same location,” Salvador said.
However, only meeting other developers online leaves out a lot of valuable information such as being able to read another person’s body language.
“Post-pandemic, we are getting to a place where we’re getting the best of both worlds,” he said. “So we don’t need to have those meetups every week or every month because we can maintain those relationships online.”
But with the world beginning to mix and mingle again in real life, he added, there’s now also the opportunity to foster connections in person.
Salvador offered a strategy for bridging the gap between participating online and in-person, such as at a conference. A developer could start by “working with the community online, just reviewing code, suggesting things, providing feedback.”
“And then, by the time you have the opportunity to go and meet those people face-to-face, they will know who you are. And that makes the icebreaking process much, much easier for everyone.”
Supporting Developer Communities
On a monthly basis, GitLab interacts with thousands of people with varying degrees of participation. Some contribute directly to projects, some participate in the organization’s forums and some attend meetups or connect on Discord.
Salvador’s developer relations team operates at the intersection of technology and advocacy, connecting GitLab and the wider user community. The team’s core mission revolves around nurturing and sustaining an engaged community of developers, contributors and users. This involves creating educational content, organizing events and workshops, developing programs and providing forums for knowledge exchange and collaboration.
The engineers behind the developer relations team, Salvador said, are dedicated to helping developers become engaged members of the GitLab community through coaching, organizing community contributors into teams to help ensure their success, and recognizing their impactful contributions.
A need for community drove Nils Brock and his colleagues at DW Academie to seek GitLab’s help. DW Academie, an organization that helps develop free media systems around the world, found that the community radio journalists it worked with, especially those in developing countries, were struggling to serve their listeners during the Covid lockdowns.
Brock told The New Stack that DW Academie partners told the organization, “‘We cannot inform our community, they have closed for the local lockdowns, we cannot go outside, we don’t have the tools at home to work.’ And so that’s how I started to say, OK, let’s work on a solution for especially this target group.”
A journalist, Brock became project director for Colmena, a software platform that helps users collaborate, record and edit audio and text, and create podcasts. Colmena — Spanish for “beehive”— is designed to work well on mobile and to function offline, in recognition of how many creators in various parts of the world only have access to mobile devices instead of desktop computers and grapple with weak internet access.
Finding developers to work on Colmena during the Covid pandemic proved a challenge, Brock said. “When COVID was peaking, not many developers were available,” he said. “They were already hired or asking for very high daily rates.“
The project found devs in Brazil, in Tunisia, and ultimately connected with a cooperative in Argentina. “Many of them worked on public infrastructure before or had interest in open source, and held an attraction to do something for communities. And then to onboard the communities was an added challenge.”
The developer community around Colmena pitched GitLab as the best place to house the project’s open source repositories, Brock said. GitLab easily enables collaboration among not only the developers but also Colmena users across the globe who offer suggestions or report bugs. It also provides a wiki feature, which helps the team keep its documentation updated and organized.
Documentation proved to be a challenge for the project in the beginning, Brock said. An early version of the project worked well, but it was fragile and couldn’t scale easily. When new developers joined Colmena, they couldn’t figure out why the previous devs built the platform the way they did.
The new developers, Brock said, told the organizers that they were so perplexed that they would have to rebuild parts of the platform from scratch. It was a hard lesson, he said, and one that made the team embrace GitLab’s wiki: “We could at this point have been more more efficient with, with more insistence also, on the documentation.”
Colmena is in beta now, with plans for general availability in April. The team, Brock said, is happy with the developer community it’s growing through GitLab. “It’s much more like the internet as we would like to have the internet to be … a way that you look together for solutions. Not make it [so] there is always a business aspect. That should not be center stage all the time.”
So You Want to Join a Dev Community …
How do you find a developer community? Perhaps the best way, the one most likely to result in deep, long-lived connections, is by contributing to an open source project. But which one?
There are no shortages of meetups happening around the world, Salvador noted. Getting started is basically a two-step process, he said.
“First, find a technology that you’re interested in,” he said. “Community relationships take time to build; if you’re not fascinated by the tech itself, you won’t stay involved with the project long.”
“Second, identify individuals that are good advocates of that technology within your community,” Salvador said. “Find someone local. Especially at the beginning, establishing and building those personal connections is really important.”
Be strategic about looking for projects. For instance, GitLab maintains a directory of open source projects ripe for exploration. But other factors besides fascinating technology should drive your choice, Salvador said.
He advised you to check the status wall for the projects you’re interested in. “If your project has thousands of developers trying to contribute to that, it’s going to be super tough for you to get engaged with the right people at the right time.”
Instead, start small — but not too small. “Find a project that has some traction, but not too much,” he said. “Do a little research regarding the project and the maintainers behind it.”
Now that tech conferences are a thing again, post-pandemic, consider attending. Even small events focused on a single technology can offer opportunities to make valuable in-person contact with the community you’re trying to join.
Developer Community Etiquette
As with any group of human beings, dev communities have their own social codes and their own etiquette. Here are some do’s and don’ts:
Be honest about your time commitment, and stick to it.
“You have to ask yourself, how much you’re willing to give in terms of time versus just trying something for a day or two and then go away and do something else,” Salvador said.
“Coming and going is not good because it doesn’t help build relationships within the community.”
Your actions will speak loudly, he cautioned. “Communities, especially large communities, see a ton of people coming and going. It’s important for you to show commitment and then make a name for yourself within that community.“
Be patient and steady. Especially patient.
Like any other relationship, it’s a journey, Salvador said. “You can’t become a strong member of a community overnight. You need to start building trust by identifying the right people who are willing to help to do more than receive help. And then, eventually, it will happen naturally.”
Be a fountain, not a drain.
Travis Kelce, the veteran tight end for the NFL’s Kansas City Chiefs, frequently talks about the perspective-shifting advice he was once given by his college football coach. The people you meet in life are either fountains or drains, the coach said. Be a fountain, not a drain. In other words, be a generous source of nourishment rather than an energy-sucking hole of need.
The same sage advice applies to developer communities. “It’s about being open, honest, and willing to help others more than that you seek for your own benefit,” Salvador said.
He added, “Eventually, people see you as someone who is there to be another member of the community, someone open and generous.” If you don’t build that reputation, Salvador said, you could find yourself excluded from the community.
Read the documentation. And add to it.
“Search for your issue before you post it,” advised Lehnen of the Drupal Foundation. “Make sure it hasn’t already been handled. And actually, fill out all the information in a bug report that someone needs.”
Any community, Lehnen noted, “is going to have some etiquette and some norms. And some of those are about how you use the tools that you have — the right formats and labels for your bugs and all these kinds of things.”
Ask for help with humility.
As Lehnen put it, ensure you “exhaust your self-service” before you ask for help. “Just so you can demonstrate that you’re committed to trying.”
And when you do ask, he added, “Don’t ask for an answer; ask for a method. It’s not: Can you do this for me? It’s: Can you show me?”
Be considerate of other peoples’ time, he advised. “Don’t assume that a maintainer for a huge open source software project can stop to help you with your one problem with your lawn care website.”
On the other hand, Lehnen added, if you’ve built a reputation as a stand-up individual, “if you’ve been in that community and helping write documentation, they probably will, they’ll probably be like, cool, you’re awesome. Yeah, I’ll help you with your one little site.”
Offer help with humility.
“Engineers in particular are very prone to the fallacy of, if you have the right answer, your tone doesn’t matter,” Lehnen noted.
Developing empathy and other social skills should be as important to technologists as learning new programming languages or mastering new tools, he said.
He offered a tip for approaching interactions in a dev community.
“The easiest way to think of it is to go into every conversation thinking, What can I give to this conversation?
“Maybe you want to get closer to contributing to an open source project, and there’s a maintainer in the room. Your best first interaction is probably not, ‘Hey, I found this bug, can you fix it?’ But a good one is, ‘Hey, I found this bug and I fixed it.’”
This article has been updated to indicate when the Colmena platform will be released in general availability.