Building Software Communities
A framework for building engaged networks
This past week I had the privilege to guest lecture a computer science course at my alma mater of La Salle University on how technical product strategy works in healthcare and life science. For myself, it was an honor to educate these students as I came into technology later in life after college. I never studied CS formally, but it was thanks to a community of technologists in Philadelphia that helped me pass technical online courses, explain deep architectural demos at meetups, conferences and learning from mentors along the way to get a grasp of this information.
After describing what I do in my day-to-day schedule to the class, a student posed an intriguing question,
”Since we are all remote, not able to meet others as easily in-person due to COVID-19, at conferences or at events to meet people for mentorship, what are ways I can find people to connect with to understand industries I am not familiar with?”
The simple answer I wanted to say at first was to join a Meetup, Slack, Discord, Telegram or a community chat platform to connect with others likeminded in industries or technologies that peaked their interest. I paused and I have since thought of an adequate challenge on how the students can think for themselves on how to create technical communities or learn from others more easily. To think about the key roles in driving the adoption of technology and how it differs from creating specific products or solutions of relevance, as that is easily confused. Here is my collection on the topic.
Community (Platform) vs. Product
There are distinct differences between building a community and building a product.
Community building in software is valuable when you are in the business of building a platform, where developers and many users of your solution are the ones who determine your value. When your solution is dependent on hitting a net promoter score (NPS), the likelihood of customers recommending your service to a friend or colleague, then a community is vital to your success. It is all about community member satisfaction. When a community member feels engaged in activities, receives social and moral rewards, accomplishes educational goals and potential financial incentives, a community is officially born.
A community is an ecosystem with a monetizable core asset while a product works on the community platform and helps in monetizing the platform’s core asset. Features of the product are its core assets.
A platform is used by a community designed to keep both producers and consumers in mind while a product is designed keep a specific consumers in mind. In a community-based business, value is created through the interactions between users and third parties. Companies can charge platform users for accessing the platform. Hence, platform creates an ecosystem value. Products on the other hand create value by charging money for certain features/items based on customer needs. Products, thus create customer value.
In products, a customer pays for a solution as they are the one who consumes the value created. Community economies are more complex. One or more parties are responsible in the interactions. For example, a platform may charge for API (Application Programming Interface) access, based on usage or a platform may incentivize a producer for participation. Similarly, the platform may monetize consumer attention.
Products have a single revenue stream while platforms have many. Enterprises and end users drive the product’s business while consumers and partners drive a communities business.
People Needed To Build A Community
Software communities are built with people, taking on specific roles on a team, sometimes even having one person accomplishing all of these tasks. Volunteers, representatives and developers are highly sought after to help foster and grow these communities in some of the largest companies. An easy way to think of these stakeholders is by thinking data modeling in relational theory of one-to-one or one-to-many in relationships as the stakeholders. Here are the ideal players:
Advocates (one-to-many)- Supporters of the platform or service who create content, articles, marketing material to inspire developers or users of your platform. Can be hired in-house or created externally. Provides valuable community feedback. The voice of your community for presentations.
Partnership Engineering (one-to-one)- Relationship building with top clients, developers or community members who may be less technical, yet can generate direct collaboration to enhance your platform or service. Provides valuable business/strategy feedback.
Enterprise Architects (one-to-one)- Connect to technical experts to understand what you are building. Provides technical product feedback
Content Writers (one-to-many)- Ability to connect with lay readers and developers on the platform or service you have created. Provides valuable community feedback. Becomes the voice of the platform or service via text.
How to Grow Your Community
Once you have the functional members building your community, these steps help build the community you are seeking:
- Education: process of detailing your solution (demo, tutorials, lectures)
- Enablement: giving members the ability to use your solution (SDK, API, de-bugging tools)
- Activity: ability for your community to interact (conferences, events, virtual syncs, journal clubs, watch parties, Slack/Discord/Telegram channels etc)
- Feedback: creating forums to discuss why your solution is great and where it needs improvement (surveys, community chats, comment sections, etc)
- Engagement: measure community activity and solutions, not with just registrations to platforms, but with active engagement (buttons clicked, chat engagement, downloads, useful active tokens, impressions, created content, KPIs, OKRs)
- King or Queen Making: Choose partners to co-develop or help distribute the usability of what your community is using (word of mouth, co-development presentations, press releases)
This list isn’t the bible on building community, and there are others ways to do so, but this is a fair model to abide by that can help you learn about an industry along with helping to build a community.
The best thing we can do for future generations is to give them the skills and frameworks that have helped us all become successful, rather than having them become solely consumers on the communities we have created. They can start their own to expand these networks, partner in creative ways and grow new communities.
I want to be clear in that this isn’t to shun how others build communities. These suggestions can help raise up others and bring people together. That in itself is one of the most helpful lessons anyone can learn to be successful.