As Product Manager for Twitch Developer Experience, Tarun Gangwani helps developers engage with ever larger audiences on the streaming platform. In this talk from DevRelCon San Francisco 2019, Tarun runs through the reasoning and practicalities of embracing the hobbyists in your developer community.
I’m Tarun Gangwani. I’m a Product Manager at Twitch, Developer Experience. “Product manager, dev rel, really?” Yes. I’m kind of the interface. I speak for the developers, I speak for the trees, right?
And I try and bridge the gap between the people who are using our products and developing on Twitch every day, to those who are actually coding the products themselves, and trying to advocate and champion our developers. That’s what I think a product manager does in dev rel. And I think it’s an important function, and maybe we should hire more people in that space.
So if you’re interested in learning more about what we create on Twitch, our extensions, API drops, all that fun stuff, you may have seen Katie’s talk earlier today and got some of that. But if you’re interested in that, check out dev.twitch.tv. I’m not going to dwell on that too much.
What I want to dwell on today is talking about this particular persona that we’ve developed based on data and kind of observation that we think is really important to, not just Twitch, but I think any dev rel platform or organization, and it’s called the hobbyist.
Amara kinda touched on this person too, and I’m going to take it from a slightly kind of different perspective, and you’ll see how in a second.
But first, obviously, we should define it. Who is a hobbyist? Now, the interesting thing about dev rel, and I think especially about Twitch is while you all are used to people coming to your platform, and have embraced an anonymity, you know, this idea that you don’t really know about them, we were molded by it.
Twitch is anonymous. They have no idea who you are. You can go sign up for an account, get an email, and boom, you can go ahead and start streaming. You just need an API key.
Well, with developers it’s the same thing. We actually don’t know a whole lot about them when they come to the platform. All we know is that they signed a developer service agreement, and we can kill their app if they do something nefarious, which they usually don’t, but if they do, we can do that.
So that’s interesting because we have this unique challenge where we can’t really define this persona in the traditional way. Like, I have no idea if they’re 20 to 50, or female or male, or what language they use. I think that’s a feature that’s actually not, like, a bug where I could go get more information, but it turns out developers don’t like to give a whole lot of information.
Funny story, one time, we did this thing, it’s called Extensions, it’s still out there today, and in order to actually ship an extension, we asked people for their Social Security Number because they had to go to a tax interview, and this was like an Amazon thing. And of course, we got no traction. Nobody would do it. They would just be like, “Forget you, I’m going to go somewhere else.”
So we’ve lobbied and fought really hard to change that because of this exact thing. How are you going to go from “We don’t know anything about you,” to “Can you give me your Social Security Number?” It’s ridiculous.
So just like on Twitch, you see this across the board as a result, and that’s what we did with our developer platforms and developer tools, and everything we did when we talk to developers, we maintain that anonymity. We wanted that.
So, how do you define a hobbyist, then? Well, what pops in your head? Probably something like this, someone who’s spending a lot of time laboring, thinking about how to paint something, just because they want to, they’re interested in it, or a woodworker who’s spending a lot of time in their craft perfecting that exact angle to carve that duck or whatever they’re making, right? This is what you think of.
And at Twitch, what we realized is there are four different vectors and motivations for why someone comes to a platform, and this is why I think this is also relevant to any developer experience function. They are these four.
Fame, which is basically the kudos, the likes, the tweets, the retweets, etc., the thing that gives them that currency that they’re doing the right thing and it’s that external motivation that they’re doing the right thing.
Money, should be straightforward, do they earn dollars or not on the platform?
Love, which is basically the intrinsic sort of, “Thank you for coding on this platform,” “We thank you for being here,” or “That was really helpful, person, thank you for doing that.” Just getting and accruing that is often a reason for people to come, and that’s another vector.
And then learning, so this idea that I’m constantly learning a new craft, I’m learning a new discipline, whatever that might be, that’s why they’re here.
Now, if you were to take a guess as to what a hobbyist would score, if you gave these like a 1 to 10, just arbitrarily, what would a hobbyist be? Think about it for a second.
Did you think of this? They are here because they are intrinsically motivated to be here. They wanted to come and be a part of something, be a part of a community, give back to the overall product, whatever that might be. But they’re not here necessarily to build a business right away. They’re just here to come in and get some love, learn something new, and be a part of something, and ultimately give back to the platform that they love.
Now, what’s great is, just like the woodworker and the artist picture that you saw and kind of you think, if you do really well at it, and you stick with it, you could begin building a business. We want people to do this. We want people to start building more, getting excited about the platform, wanting to earn fame and money because that means it’s sustained. They’re going to stay around.
It turns out, these folks, which we call the ecosystem developer at Twitch, they are motivated by everything, and they stick around longer.
They’re motivated to stay, but the challenging thing is they’re your biggest critic. They want everything, and they want it now. “I want money now, I want love now, I want learning now.” This is something that we’re still struggling with and tackling how to prioritize this when they want a little bit of everything. Not going to dwell on that, but I think it’s an interesting prompt is, like, when you have someone who’s just all across the board, no compromising, what you do?
But this does contrast clearly with the other side, and this is our game developer, basically, someone who, at the end of the day, is coming to Twitch because they want to build a business. It’s not so much that they really care if people love exactly what they make at the end of the day or that they’re trying to learn something.
It’s a job to be done. It’s a means to an end that they come on Twitch. Twitch is this place with a lot of eyeballs, “How do I get those eyeballs and convert them into my game?”
And if you are in a developer experience organization and you have a core platform that doesn’t really have anything to do with developers, it’s like a B2C kind of thing, you’re going to have the same person who’s there as a means to an end.
So you can certainly attract them, and in fact, you want to attract them to grow, but the former persona, that hobbyist, is going to stick around and be there, and they’re going to be your champions. And this is why I think we need to start embracing them.
Because the question that comes up is, why build for users that don’t care to make money, don’t care to generate revenue? This is a question we get from Amazon all the time it’s like, “Great, you guys have, you know, millions of people building apps, that’s great. But they’re not the people earning revenue.” So that’s the question, right, that we’re faced with.
So I’ll tell you why. First, their love conquers all. They will push through, they will be your number one advocate, they’ll do whatever to push through, because they just love building what they build.
I’ll give you some examples. Shout-out to the Discord person I met earlier. We built a Discord, you know, kind of community there, and it’s been really great. So everything you see here now is on our Discord channel, actually.
I was just doing some research and I found a couple of these snippets that are exemplifying why they stick around and why they have such a love for the platform.
For example, “One thing I suck at is coming up with things to build, any suggestions on extensions to get start with?” So when you read into this for a second, they don’t really even know what they want to make. They have no idea. They just think, “This is cool. Extensions, this is the future. Live apps on stream. I can click on things instead of chat. This is great. So, how do I get started?”
We’ve already won. Now, we just need to give them education, and give them documentation to get them started, or give them ideas on how to build. And that’s where your community comes in, that’s where our staff comes in, and we help them get over that hump.
Another one, you’ve probably heard this before, “I suck at webdev, but it’s fun to learn.” So this is this person who normally doesn’t do this. It’s not even their day job. But they’ve come anyway because they believe in the platform. They’re going to conquer and cross that bridge, and say, “I think this is cool enough for me to learn something that I don’t typically learn.”
Here’s a third reason, and this one really hurts, because as the product manager, I really try to prioritize and fix these things, but I see this all the time.
The one on the top says, “Oh, they finally clarified in the docs that the limit for authorized tokens is per user? I haven’t looked in a while, but two to three months it definitely wasn’t there.” Okay, so first of all, they’ve been checking repeatedly that our docs are broken. That’s unfortunate. And second of all, “They finally clarified it,” so this was something critical to them, and they’ve been waiting.
We see this all the time, and turns out, this person just waited and waited and asked for feedback. I went back and looked at their history, they kept asking this question. No one would respond. They kept going anyway. There is no other persona but the hobbyist that would do this.
The one on the bottom, “Well, you can be declined multiple times.” So when you submit an extension, you have to go through a review process, because we’re technically hosting arbitrary code on our website, and so we want to be protective of our viewers and streamers, etc.
“My extension got declined several times until everything was fine.” So first of all, this person tried over and over to submit something, and second of all, we were obtuse, and didn’t really explain what was broken. So first of all, this prompts us to think, “We got to fix that.” But second of all, they pushed through anyway.
So this persona will stick by you, and finding them is critical because they’re the people who will champion and be also the people who point out the things that you need to improve and make better.
The second reason is they’re full of questions. They’re always wanting to learn, going on that fourth vector I mentioned earlier.
Here’s an example, “Hey, I’m new here. I made some basic Twitch extensions just learning how the whole process works. I do have one question, is there a tutorial doc for making Twitch using React?” So first of all, they couldn’t find something, second of all, they’re a React developer, so I know a little bit more on the kind of thing I need to make, and third of all, they bothered to ask.
They think this is cool, again, and they bothered to ask. So this is not only a question that is worth responding to, but it also is a product prompt and it’s telling ourselves, “We should probably think about this person, this person building in React.” And you would only get that again if you were, you know, building that community for hobbyists.
Now, this can backfire, and you can have folks who spam, ask a lot of questions over and over. And this is where your community comes in or the hobbyist community can help you scale how you communicate to hobbyists.
“You posted this in #extension-help also. Please don’t spam multiple channels with your query. I already responded in that channel.” So this, actually, the person before asked a question about extensions in five different channels on our Discord.
Okay, you know, we tried. We can’t get there all the time, but that’s where your community comes in. If you empower your community, which for those of you who don’t know, this blue indicator means they’re a higher moderation level than the other kind of colors you’ll see. So we gave this person kind of moderator, kind of superuser rights to help us triage some of this feedback.
So not only, therefore, hobbyists are going to ask questions, but they’ll also be the first line of defense to answering them as well.
The last thing is they’re your biggest fans. They will come to meetups, they’ll come to hackathons, as much as we shit on them, they’ll come to your conferences, they’ll come to your talks. It’s because they just love the platform, and they love the community, and they want to learn something new.
And so if you’re going to run something, these are the first people to invite, because they’re not only going to show up, but they’re going to invite their friends too. And thus, you’ll grow your community.
So that leads me to how to embrace them. First is you got to build a great product.
Anyone know this guy, Randall Hunt, Randy Hunt? Very, very awesome AWS developer evangelist, a dev rel guy. He basically started this tweet thread which was like, “If you want to build a dev rel thing, I think you should just write. You should just write what you’re doing, write what you know, put it out there, start a blog, and people will come.”
And kind of underneath that was basically saying, “I think you should just build something great.” And I agree. If your core product isn’t great, and I specifically mean from a developer perspective, if your APIs aren’t well-documented, if your docs aren’t easy to use, if you don’t have an SDK, etc., you won’t have anybody coming in the first place. So you’ll always be in that trough of suck as we learned earlier.
So definitely, get over that hump. Once you do that, find people who are building cool stuff with your product, right, pretty straightforward.
I know, again, some of us believe in hackathons, some of us don’t. We did a challenge over 30 to 60 days, and we called it a hackathon, which is basically you can build whatever you want on our platform, go. And so we opened this up to everybody, we told our hobbyists about it first, they came in, and they built some crazy stuff. The keynote thing didn’t work.
But what you see on the right is if you do any streaming or know about it, basics is, you’ve got this client running on your product. You got this client running on your computer, and you’ve got this web app running on Twitch. And so, basically, what it’s doing is it’s reading what’s going on on your computer. And on Twitch, when viewers are watching, they can click and play a minigame alongside the viewer and streamer at the same time. So they’re trying to knock off these little Pikmin.
So this is a very complex app. It was done by two people in Germany. Just totally randomly, they ended up winning the challenge. And we knew nothing about them, but it was because actually some people in our community went and found them was what made the difference.
Join their communities, you all know this. There’s some stickers in the back for this company called Glitch. Glitch is a really, really great community. Glitch is where people just come together and kind of collaboratively code and show off stuff that’s related to whatever their product or their community or ecosystem might be.
We created a team on Glitch, TwitchDev, and we put up a couple extension examples there. And the reason why this is great is because it’s open, it’s easy to fork, it’s easy to connect with GitHub. We’re not reinventing the wheel.
So if you can take the time, definitely create a Glitch account and join them there, or join them on Stack Overflow, or wherever your developers hang out, or on Discord, or what have you.
The last thing I’ll point out is making communication frictionless. This is super important to people who have questions, want to learn, get that feedback, build trust with you.
On the left there is our Discord, and Barry asked, “Hey, there’s this bug here.” What we built was a webhook integration that, basically, when someone puts something, and as a staff member, I react to it and say, “Slack low or slack high.” It triggers an integration to our internal slack and posts it there.
Not everyone is watching Discord, but all of us staff in our community and our superheroes in our community can add that reaction. And then we can triage it from there. A fun tip is if you add these react sheet, it helps the team know that you’re actually addressing the feedback internally, and it helps you triage it back to enclose that loop. This is very important to build that trust.
So in summary, hobbyists come from all walks of life, but the point is they’re there to intrinsically build. This is a feature. We don’t know anything about them. We like that. It’s an inclusive, it’s an inviting platform. We appreciate that. Their love for the product conquers all. Their knowledge can help meaningfully drive your roadmap.
And if you embrace them by recognizing them being where they are, you can keep open communication, and you can make the world and your platform a better place.
Thank you.