Core Team vs. Contributors
Growing the Novu community started with an objective to “gather” a community around solving a common problem of lacking multi-channel notification infrastructure for products. This means that people were already familiar with the product because they had a the same problem, and Novu stepped in to provide a solution. So essentially, we gave our community a platform to work on solving problems they experienced in their work.
Just a quick background about us
Novu is the first open-source notification infrastructure.
We basically help to manage all the product notifications.
It can be In-App (the bell icon like you have on Facebook), Emails, SMSs, and so on.
Can and star us on Github ⭐️🚀
https://github.com/novuhq/novu
Validation
At Novu, we quickly realized that we needed quick validation from the engineering community to see if they understood the problem and the solution we were building. This was a necessary process because keep in mind that notification infrastructure exists in almost every product, but usually, the developer had to program it from scratch every time.
Community Bump
When we started building Novu as open-source, we saw a steady increase in community engagement, People joining our Discord channel, more stars on Github, the community willingly creating issues and making pull requests, and much more. Another observation we made was the community had both junior and senior engineers. Junior engineers were mainly looking for an open-source community and senior engineers who had the task of implementing notifications in their platform.
Create a Solution That Solves Problems That Both Junior and Senior Engineers Experience
The engineering world had evolved rapidly since the 1970s when the idea of software engineering started. Now, it’s estimated that the number of developers is doubling every 5-7 years, and the transition from junior engineer to senior engineer roughly takes five years. So at any given time, 50-60% of developers are not seniors. So when building a solution, it’s necessary to consider these factors and create a solution for junior and senior developers.
Makin’ it easy
We have decided that Javascript is one of the easiest languages to get into. We have decided to build a solution with both frontend and backend frameworks that are trendy right now (Node.js, React), so we can attract many juniors looking for a community to learn these tech stacks.
Ultimately, as Novu grows, more senior developers will join our community, especially when issues become more complex and require professional experience to solve.
Include Your Community in the Software Development Process
Another reason why growing a community through open communication is essential is that it gives your community context to what you’re building. It can be easy to assume that everyone has the same context as a company owner over a product. So, developers and potential users get an opportunity to be part of the development process.
Troubles in paradise
Open communication also comes with challenges, especially when tackling issues. Some issues require more experience to resolve, but because we are open source, you may find a junior developer picking a topic that may be too difficult for them to handle. So we end up with unresolved problems or issues that take too much time to resolve. To overcome this challenge, we do the following:
Create an onboarding process for contributors, where we assign issues to developers who’ve demonstrated they have ample knowledge of a particular issue we’ve posted.
We provide a generic onboarding manual to guide contributors on how to install our software, test it, create issues on Github, the pull request process, and so on.
We also get to understand our member’s skills and competencies, so we can, in turn, provide a better community experience by guiding them through the onboarding stage and including developers in the development process.
Working Together
In Novu, our core team communicates and engages with the community on the same channel – We have only one channel for engineering, and it’s public.
Our team also possesses soft skills (not just technical skills) to mentor new community members and be mentored.
Recognize Contributor Effort Publicly
Appreciating your contributors boosts morale and recognizes their effort. In addition, contributors give us their time and effort for free, so respecting them fosters a strong community.
To achieve this, we created a page on our website to showcase our contributors. We categorize their contributions according to the number of contributions they make and award medals (bronze, silver, and gold medals.) Developers can then use that information to demonstrate their skills to future employers, friends, and family.
You can find the page here:
https://novu.co/contributors/
Instill Open Communication Policies
We decided to move our engineering teams to a public discord channel. This move fostered more trust and open communication within the community, leading to members sharing their expertise, helping each other, and improving Novu’s software.
Furthermore, having an open communication policy lets people see the full range of questions posed in the discord channel. Again, our team is always on standby to help members by answering questions, providing feedback, giving advice, sharing resources, and so forth. This open communication creates a safe space for our community members to interact with each other without the fear of ridicule.
The Future of The Novu Community
Our vision is to have a “team connected to the community” instead of a “team separated from the community,” meaning we operate as a cohesive unit where we interact with each other openly and can solve problems together.
Novu is a solution built for developers by developers. We value external contributors because they see new perspectives we may not be exposed to internally. At the same time, having a strong internal team gives the community structure and direction. With that in mind, we strive daily to align different ideas and skillsets to build the same product and community.
We are trying to make our core team and community one.
What should we do to become more transparent, helpful, and fun to work with? 🙂
Happy to hear about it in the comments.