With the pandemic lockdown and losing my job last fall, I am doing a lot more software development lately. I’m a software engineer at heart, but my most recent day jobs have been product manager roles, so until this happened I rarely had much time to do what I love most, which is writing code. I’m having a blast, and I’m making some cool stuff, but with a lot of the projects I worked on lately when I run into serious problems, it is really hard to get the help I need.
When working on a Flutter/Dart app, or a web app, when I run into a discrete problem, all it usually takes a quick search and I’ll find the answer I need — usually on Stack Overflow.
Many open source tools, libraries, and frameworks push developers to the community for help, usually via Stack Overflow, which makes sense since they’re not commercial offerings and therefore have limited or non-existent revenue to cover support costs. What I find, though, is that it’s often hard to get answers there.
Some developer-focused frameworks like Ionic and hardware platforms like M5Stack offer their own support forums, and it feels like this approach gets me more direct access to the development and/or evangelism team when I need help. Unfortunately, my experience is that there’s a 50/50 chance I’ll get someone to answer my questions there. It never feels like these companies invest the right amount of resources to ensure customers and users get the help they need. In Ionic’s case, I get it — they deliver both an open source and a commercial offering, so I understand why the community doesn’t get a lot of focus. But, when all of your users are paying users like at M5Stack, there’s no excuse for questions languishing for weeks or, in public repositories, pull requests or issues sitting for months without a response.
When wiring two services together, for example using Firebase Functions to talk to a Google Cloud SQL database, when you’re in trouble, the primary place where you’ll find help is still somewhere like Stack Overflow. I’m a paying customer for both services (yes, I understand that Firebase Functions is really Google Cloud Functions under the covers) but when I get an error in Firebase do I ask Firebase Support or Google Support for help? It’s likely Google, but sometimes it’s hard to know depending on what you’re doing. Getting help from the Community when stitching together multiple solutions is harder because anyone who helps you is going to have to have experience with each product you’re using.
What often happens to me is that I pick where I want to ask for help then ask my question. After waiting longer than I think I should, I begin a long and exasperating dialog with the support technician as he or she does their best to convince me that it’s the other product’s support team’s responsibility to help me solve the problem. Ugh!
Many companies with commercial products and/or services offer free support, but do their best to point you to Community Support first. This makes sense to a certain degree. Depending on how much resource investment (people) a company makes in developer support, it may actually be faster to get an answer from the community than from the support team. This happens because, I imagine, most commercial offerings under staff their support teams. Any customer support request that goes to the Community means less work for the Support team and saves the company money. It’s my guess that companies sending you to Community Support for a commercial or paid offering is done for purely financial reasons — it’s less expensive for the company if the Community answers the question. What companies don’t seem to understand is that if a question goes unanswered in the Community, then it could lead to lost revenue when the customer abandons your solution because they can’t get the help they need when they need it.
From a commercial offering standpoint, it really shouldn’t be one or the other (community or support). The company should make a reasonable or formidable investment in both. Send customers to the Community, but then make sure your Development and Support teams (yes, both of them) spend a percentage of their time on the Community site answering questions (for example: an hour per day). You must invest to ensure that every question gets a response.
When this happens, there are extra benefits. Not only do your customers or users get answers to their questions, your employees gain access to customers they wouldn’t have access to otherwise, and they learn more about how your products or services are actually being used plus where customers stumble or fail when using your product. That alone is worth the financial investment in actively staffing the Community.
As a Product Manager for a couple of different software products and services, I allocated time each week on Stack Overflow and other community sites reviewing the questions and answering the questions that I could. If I didn’t know the answer, I often asked the Engineering teams for help — thereby expanding my knowledge of the product while helping customers.
If your customers know they’ll get help, direct company help along with Community help, in the Community, they will willingly go there for help. Use dedicated support channels for obscure issues, or for issues that can’t be addressed by the Community. Make it easy for users — on the page where you list your support offerings, list the specific types of issues that the support team handles, then redirect accordingly. You still need to staff both forums (Community and Support) but the Community helps shoulder the load on the Community side.
The same applies to you if you’re a commercial entity offering an open source solution. Dedicate a percentage of your development and evangelism team’s time to work the forums (your product forum as well as places like Stack Overflow) answering questions and providing solutions. I know this is expensive, but unanswered forum questions looks bad for your solution.