I’ve been considering pivoting my career toward developer advocacy. I’m a decent developer with great customer service skills, and I can see myself doing well in such a position. In order to do that, I need to have a stronger idea of what I believe the role will entail. When I’ve established that, I’ll know which jobs to apply for.
In this post, I am attempting to answer two questions: what do developers actually do, and how can an advocate help them do that?
What is the point of a developer?
In previous blog posts I have discussed the role of Knowledge Management in an organization. That role is the consistent application of the organization’s ideology. Put it another way, the organization has a certain way it needs to run, and to think about things, and Knowledge Management helps with that process.
So, what is the role of the developer? When we start talking about developers, we quickly move from a very general business context to a much more specific one. Software can do many things, but in a lot of ways a developer is a developer. The offhand answer is, of course, that a developer develops software. This is a pat answer, and doesn’t get at the heart of a developer’s contribution to an organization.
Whether a piece of software is intended for internal or external use, that piece of software is symptomatic of the ideology to which a company subjects itself, and the ideology that the organization wishes to be perceived as espousing.
Let’s dig deeper.
Consider a company, Company X. Company X is on the forefront of the Web3 movement. They’re developing products that leverage blockchain, or NFTs, or cryptocurrency. The product they put out likely markets itself as being on that cutting edge; by utilizing these technologies, Company X commits to supporting some of the tenets of the ideology (such as decentralizing finance) that come with the technology.
At the same time, the software directly represents the company’s internal ideology. Is the software fully tested? Did it ship on time? Does Company X have a culture of Crunch, and overwork, and is that apparent in the product that they produce?
In this way, a developer may produce a product that attempts to meet the demands of two (or more) ideological influences. Ultimately, the quality of a piece of software is directly symptomatic of the internal institutional ideology under which a developer works.
How can an advocate support developers?
A developer advocate can assist by helping a developer to reconcile competing ideologies. A developer advocate at Company X might act as mediator between the development team, the executive suite, and the client base. In this way, developer advocates are not merely teaching the client-base how to use the software, or informing the development team which features the clients might like to see. The developer advocate helps to shape that ideology by acting as an interpreter. They provide an assessment, and in this way provide an opportunity for Company X to step outside itself and consider the message it is sending with the software it produces.
Developers generally have a very clear mandate: develop software. Assessing the needs of the client base and interpreting the message that Company X should be sending, is not their prerogative. Instead that is the prerogative of a person who can advocate for both sides, and ultimately help the development team to weave the desired ideology into the product that is shipped.