The developer advocate role is part teacher, part listener, part problem-solver and part programmer.
A good way to think about the position is to ask: What problems does a developer advocate solve? After all, if the business reason for the role is not fulfilled, no amount of teaching, listening and problem-solving is going to make much difference. So, let's examine the developer advocate's responsibilities and the methods that can help them achieve results.
Developer advocate roles and responsibilities
The developer advocate's mission is to help create widespread adoption and strong peer support. The support element means that people outside the company use the software. They love the software. They blog, speak and participate in support forums.
While it might make a developer advocate feel important to be the person with all the answers, a single person cannot possibly scale to support every customer. That's why teaching, coaching, mentoring and explaining are important. It gets other people to not only adopt the tool, but to support others.
Let's look at a few ways to do this:
Develop a support community. This is essential. Find a place online where customers can learn about the product by interacting with other customers. Some companies go so far as to create entire social media sites, with reputation points. Some have partner programs with consultants, where those points could lead to funded projects with customers. A developer-days style conference enables people who work in the ecosystem to spend time together. Applitools went even further and created Test Automation University to lead customers to adopt their products.
Influence tool-agnostic communities. There are plenty of places on the internet, and even in the real world, where craftspeople get together to talk about their work, disconnected from a brand. Companies can buy their way into such events through sponsorship and booths. A developer advocate should demonstrate expertise in the places where technical staff gather. This is much more likely to lead customers to the brand's tools, which is the business value of the role. This can be as simple as posting comments on internet message boards about how to solve common problems, regardless of which product they use. In testing, this might be how to manage test data or how to safely store passwords for automated tools.
Write tutorials and proofs of concept. Going from technical manual to working software can be harder than it looks. A good tutorial can get people to use the software. Make the example something that saves the user time. Link that with a free trial, and suddenly there might be a great deal of interest in the tool itself.
Create video walk-throughs. A video that shows the full install allows the user to type along, pause, rewind and watch again. Five-minute, "it-just-works" video demos are one thing; helping the customer create a full database-backed application by watching a video twice is another.
Blogs, podcasts, books and conferences. All of these are opportunities for the developer advocate to interact with the world. More than presenting the brand's story, this allows the developer advocate to listen to the customer, gather ideas for features and hear feedback that can be shared with management.
How the developer advocate can solve business problems
The work of a developer advocate presents information to a technical audience differently -- and perhaps better -- than websites and technical documentation. It also creates a communication layer between the end-customer and management. If a blog post that discusses what might be coming is full of negative comments, the advocate can take that information to the product owner and senior management. While there are formal channels for this, developer advocates are typically seen as more neutral, dispassionate parties who can advocate for developers and lobby to get a feature change if it is rejected by the community.
The developer advocate role typically reports through the marketing department, yet the person doing the work should have reasonable technical knowledge, i.e., be able to both perform the work and teach others to do it.
Do you need a developer advocate?
If there is confusion in the marketplace about your product, especially if it is a product aimed at programmers and technical staff, developer advocates might be especially helpful. They can help close gaps in the marketing strategy and story and make the message sound more authentic. They can advocate for the product in the marketplace and for the customer to line management.
That doesn't mean the company needs to give someone the developer advocate role as a full-time job. When someone, or a small team, takes up those tasks, and does them well, a company can boost its reputation. Done poorly, the result will be confusion, maybe a little spark, but not much fire. The difference is the quality of the person selected, their guidance and direction, and, finally, the value of the product itself.