What is Developer Advocacy?

Since joining Microsoft I’ve gotten a lot of questions about Developer Advocacy so I’d like to take a moment to explain what it is and why it’s important.

Developer Advocacy in a nutshell

Developer Advocacy has many names. You may have heard it referred to as Developer Relations or Evangelism, and while these roles vary company to company, we all essentially do the same thing — We represent software developers. I like to say that it’s my job to ask dumb questions so you don’t have to, but the real goal of a Developer Advocate is to become the voice of the user. We gather feedback in a way developers can’t (since they know the codebase too well), then use that feedback to shape the product to become what it needs to be.

One of the most common misconceptions about this job is that we’re not developers ourselves.

Most Developer Advocates have backgrounds in software development, most of us contribute to Open Source, and many of us are even maintainers, meaning that we know when a product is or isn’t easy to use and we also know how to fix it. This involves all of the usual development activities like architecture, design, implementation, testing, and debugging. Resulting in tools that make it easier to use your product like SDKs, code examples, CLI’s, and IDE plugins because making your products easy to use is the most important thing you can do to help your fellow developers.

We’re perpetual learners

Developer Advocates can spend anywhere from 20–50% of their time learning new things. Not only is it our job to learn at the conferences we attend, but we take experimentation seriously: from the obscure to the popular. We’re not only leveraging our network for answers, but we’re also learning right alongside you.

We love documentation

Developer Advocates not only love the docs, we also help write them.

Documentation can make or break your product. When a developer is using your product for the first time, they’re going to start with the docs. If your “Getting Started” guides are not clear, then you’ll likely lose that user. Remember that this is one of the first experiences a developer will have with your product and, if you want them to stick around, on-boarding needs to be painless. In order to ease that pain, we produce things like getting started guides, reference documentation, and detailed API docs.

We tend to offer a much needed fresh perspective, because when you’re building docs it’s easy to hyper focus on the details of the tech and lose sight of the very developers you’re building these products for in the first place. It’s our job to make sure the needs of the developer are kept in mind..

We’re not afraid of public speaking

“A Developer Advocate is just a professional conference goer.”

The above statement isn’t completely incorrect, it’s just kind of rude. As a Developer Advocate, public speaking is something you have to be comfortable with. There’s an art to explaining highly technical concepts in a way that anyone can understand and you need to be able to articulate why your product and its ecosystem are the best place for them to invest their time and energy. Personally, I like giving workshops because the best way to demonstrate a product’s ability is by getting your hands dirty and writing code, but they also enable me to squash bugs in real time.

We care deeply about community

Developer Advocates are always on — we engage with developer communities outside of conferences and do so by writing blog posts, leaving comments, videos, podcasts, participating in slack channels, google groups, or tweets. Then, of course, there are updates to GitHub, LinkedIn, and StackOverflow. However you choose to broadcast information, you need to have a reliable feedback loop. We need to be able to get feedback from developers on a consistent basis.

Developer Advocates often host/sponsor/attend community events like meet-ups, user groups, and hackathons, not to be confused with community management. This includes but is not limited to conferences, as smaller groups are much more intimate and you can deliver highly relevant information tailored to that group.

All of these activities help build a community around your product or platform. This is crucial because having an active community means there will be far more help to go around than you or your team could possibly provide. This will help you scale as your community achieves autonomy.

We help developers

Of course, making a product easy to use comes with challenges. There are going to be times when you don’t get it right the first time. One of the first indications of a problem will be users asking for help about some aspect of your product. You need to be subscribed to the right issue trackers, forums, and Q&A sites like StackOverflow to catch these questions. You don’t necessarily need to answer the question right away, give the community some space to help itself, but be sure to listen because questions often point to underlying issues.

When you’re stuck, truly stuck on something, where do you turn? To be a Developer Advocate means lending a helping hand when people need it most, or meeting someone halfway when a product is missing the mark. To be put in a position where you can facilitate this dialogue takes trust. A Developer Advocate’s job is to cultivate trust from both the product and the developers they represent by reaching across the table, listening, trying things for themselves, and understanding context and roadmaps. A Developer Advocate’s job is to enbolden this trust by being clear, highlighting things that might have otherwise gone unnoticed, and paving roads where there are none, this means being a true advocate for your community and sometimes that means you may have to upset people inside your own organization, and you can’t be afraid of that — because in the end, we’re on your side.

I could write about this all day because in truth a Developer Advocate touches every part of a business and at some point i’ll write a follow up post regarding metrics, reporting structures, etc…but hopefully, this 5 minute read gives you a better understanding of what it means to be a Developer Advocate. Have questions? Feel free to leave a comment or tweet at me.

Are you a Developer Advocate? We have a Slack channel for you!