A developer journey is the route between a developer with no knowledge of a technology and the same developer that feels confident to use it in production and actively share the expertise acquired. Offering a clear and gratifying journey is the key for fostering adoption of a technology. How can online and in-person communities help along the way?
What are the typical steps of a developer journey?
First, it’s important to define what are the main steps of the journey. Christian Betta points to four main moments: Exploration, Getting Started, Guidance and Reference. While Adam Seligman defines four similar steps: Connect, Engage, Adopt and Advocate. I like the latter more as they seem more generalist and the advocacy step beautifully closes the loop, so I’ll use those as reference.
Generate awareness and interest, get in touch with the technology for the first time
In-person communities are great to discover new technologies. It’s true that today “knowledge is at our fingertips”, but it doesn’t mean developers have the time, motivation or will to explore by themselves. Tech meetup events organized by communities help the discovery process, offering occasions to get in touch with something new with a low effort bar: just go to the event, sit down and listen. In addition, follow-up conversations during the event boost serendipity, as like-minded people generally love to talk about their passions.
In online communities, on the other hand, often developer joins because of their interest on specific topics (Q&A, product forums etc), so it’s more difficult to attract their attention about something new. However, if users are well profiled on the platform, it’s possible to reach them with targeted material regarding news and topics connected with their primary interests. Content able to add value from a dev point of view, to avoid being perceived it as spammy.
Gain hands-on experience, what follows the “Hello world” example
In-person communities can help in this step organizing specific hands-on events like hackathons, workshops, codelabs etc, where attendees can “get the hands dirty” with the technology and create a (first) working prototype. On average, communities organize way more tech talk-style events than these initiatives, so brands could provide specific support or global frameworks to influence the ecosystem to run more hands-on events. The Google Assistant Developer Community, IBM Call for Code, Intel Code for Good, Google Study Jams are good examples.
Online communities can help in the form of open source projects, thanks to a big code base to analyze to understand what’s after the “Hello World”, without starting from scratch. They also offers immediate and intrinsic rewards, like fixing a bug or implementing a new feature. Unfortunately, we all know the common Achilles heel of open source projects: lack of “onboarding” guidelines, poor documentation, few active mentors for the newcomers. All together, they raise a lot the difficulty bar, and not all developers are willing to learn this way.
Drive daily use of a technology, in production
Once a dev knows the basics of a tech, the main need is to find answers to specific problems and learn advanced topics that could prevent future issues, like a well-done project architecture, a good testing infrastructure etc. Information that, generally, are not present in the reference doc.
In-person communities can organize events to share best practices and real-life experiences on technologies / tools / libraries / dev workflows, assuming the topic doesn’t have an overly niche audience. Peer-to-peer recommendation during networking moments are generally very welcome and more able to influence than a blogpost on the same topic. In-depth, follow-up conversations happening after the event can solve doubts.
In a complementary way, online communities are the most effective free place to find such answers. We all know the success of StackOverflow and similar services, and several major tech brands have an online presences based on the “Customer Support / Success” area of the SPACE model. The potential risk is that the place where this knowledge exchange happens is more a group than a community. Searchability of the content is another crucial aspect to solve: developers don’t search on StackOverflow, they search on Google that directs them to SO. Another issue is that discussions happening on Twitter have a very short time span.
Similar to the engage phase, open source online communities can offer a training gym outside the main job for experienced users of a technology, with more community-oriented dynamics.
Empower and enable
Advocates are crucial to scale the knowledge sharing process thanks to user-generated contents (UGC) they create and erogate. But they need an audience to share them with. Both online and in-person communities offer that crucial audience element, closing the loop and creating new “connect” and “engage” moments in the developer journey of new people.
Likewise, online and in-person communities offer a fertile and informal ground to get in touch with existing advocates, be inspired by their role-models and, with the help of the community leads or even by themselves, become one of them.
Altruism is the top motivator for advocates, followed by intrinsic enjoyment: communities allow this give-back attitude to be satisfied.
So, community is really a powerful tool intersecting and contributing to the developer journey along all its steps. Not a surprise, in the end :)