Who and what is a Developer Advocate

I was fortunate to have worked with, and nurture developer communities. During my days of community organizing and public speaking, I was regularly interacting with developer advocates from different companies, primarily Google. At that time I never thought much about what the title meant, or what the job entailed. It was just about trying to deliver value to the community I was representing, whoever I interacted with from those companies, being an efficient bridge between the two.

In this post, I’ll try to explain what is a developer advocate, and what we do in developer advocacy.

Background

A few years into my initial years as a community speaker, when I became a developer advocate myself, I began realizing that explaining what I do, is not as straightforward for people, as it is for people coming from a community organizing background.

Part of the problem, I believe, are the two key words (developer and advocate) used to describe this profession and discipline, which are generally not associated together.

The funniest instances were when people thought I worked in the legal department, looking at the word “advocate” in my job title, and asked me if I am an advocate for software developers when they get into legal troubles 🤷🏻‍♂️.

It occurred to me that in some parts of the world, Lawyers are synonyms to  Advocates, so it’s natural for people to assume so.

Almost all the technical documentation, code samples, educating videos from software companies that you see, are perhaps written or prepared by a Developer Advocate

So are we lawyers? What do we do?

Without any hard feelings for lawyers – thankfully, we’re not 😃 .

The word advocacy implies you’re arguing in favour of a person, group, or cause.

Image: dictionary definition of the word advocacy

Anybody who does any kind of advocacy, is an advocate for that person, group or cause.

That way, Lawyers in fact do advocacy for their clients, and so they’re advocates of their clients.

Similarly a developer advocate argues in favour of, and represents, a developer community. A Developer Advocate is advocating in favour of developers, thus the name – Developer Advocate.

Lawyers = Advocating for their clients
Developer Advocates = Advocating for software developers and engineers

We make sure developers have a voice within our teams, and they have an engaging experience with the software products which we’re representing.

Who are the developers we advocate for

It depends on which capacity we’re working in, and who’s the target audience. In all the cases, you’re advocating for the software developers who are either working in the same organization, or are creating software with the products (APIs, SDKs etc.) that your organization builds.

Generally a Developer Advocate would be working for a Software company/organization. Then depending on the organizational needs, you can either be an advocate for internal or external developers.

I like to call internal developers as 1st Party developers; developers of the paying customers/partners of my employer as 2nd Party developers; and everybody else as 3rd Party developers.

Together, these developers form a community of developers who you’re trying to help. But more on developer communities later.

For example, if you’re working in the Android Developer Relations team at Google, the Play Store app engineering team could be called as 1st party developers, Google Partner app developers, OEM manufacturers etc., as 2nd party developers, and all other non-partner Android app developers as 3rd party developers.
(Of course, this is just an example and may not exactly be how Google refers to these people internally).

How do we typically do this

As Developer Advocates, or, as a part of a Developer Relations team, we try to touch base with developers on multiple points. We try to provide as much value as possible to these developers, and make them successful in whatever they’re trying to achieve.

We add value by making documentation easier and more useful, writing case studies, blogs, how-to guides, conducting workshops, webinars, or anything that can help our developer community become successful and more effective.

at GTUG Delhi DevFest
Image: at GTUG Delhi DevFest | c. 2012

As a passionate Developer Advocate, you’ll easily find yourself speaking very often at local tech meetups, about topics either directly related to the software products you advocate for, or about general tech stuff.

In the photo above, that’s me trying to explain how Twitter SSO works using OAuth, in 2012.

Aman Alam at JAX London
Image: at JAX London | c. 2019

We go wherever the developers are, and tell them about what we have to offer. It often takes us to different events like conferences, panel discussions, meetups etc., which are sometimes held in very interesting cities and places.

As a part of your charter to make developers successful, you often make or work with online and offline communities of the developers you target. I’ll talk about communities in a separate post.

Developer Advocates vs Developer Evangelists

These titles are often synonyms in practical sense, because essentially you’re doing the same thing whether you’re an Advocate or an Evangelist.

Evangelist, in literal terms, is supposed to only talk to outside developers with a goal to evangelize and popularize a software product.

Advocates, on the other hand, are supposed to be the bridge between the organization and the software developers outside of the organization.

Developer Advocacy is thus a two-way street. On one hand you take your software product to outside developers, and advocate for this product to these developers. At the same time, you’re also supposed to listen to the pains or experiences of these developers, take the feedback – positive and negative – from them, and advocate for these developers before the product, engineering or other appropriate teams.

Why can’t marketers to Developer Advocacy?

That’s a valid question, and in fact at a lot of places that is what happens. But there are some nuances that set marketers and Developer Advocates apart.

If you need to engage and interact with an audience which is very technical, on platforms which are specifically their turf (tech conferences, meet-ups, developer documentation etc.), you have to choose professionals which can speak a technical language. Traditional marketers will face a lot of challenges preparing a very technical (and hence, engaging) content and narrative for this audience, because traditional marketers are not trained for this, it’s not their forte.

Moreover, you need to be very good at empathizing with this audience and answer their questions. Every missed opportunity here makes you lose more ground in the hearts and minds of developers.

Thus, Developer Advocates, which know the pains of other developers, know how to answer questions and touch the right chords, are the perfect people for this job.

How Developer Advocacy looks from within an organization

Many organizations have a dedicated team called Developer Relations. Since what we do tends to look a lot like marketing, but to Software Developers, some companies like to call it Developer Marketing too.

Other organizations sometimes have independent Developer Advocates working for similar goals.

In all capacities, the work of a Developer Advocate is HIGHLY cross functional and multi disciplinary you work with various teams to get your job done. I’ll talk about this more in another post.

In some organizations, the functions of Developer Advocacy are a part of CTO organization, in some places it’s under Business Development, and it’s under Marketing at other places.

Whatever the org structure may look like, we work heavily with internal teams – product, sales, engineering, marketing, and sometimes legal too (yes!) – and then talk to developers to make their experience with the products we represent, better.


Hopefully you’re more aware of what we do the next time you get to meet a Developer Advocate. Come say hello – we are a friendly bunch! 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *