Working as an educator in tech is very much an exercise in branding. If you define yourself as a trainer then clients assume you don’t really know what you’re talking about. But present yourself as a nerdy developer and they will assume you can’t teach. So you learn to strike a balance between the extremes with good humour and a healthy dose of humility.
It doesn’t help that there was never a term for the role. But a few years back the Developer Advocate label popped into existence, and has steadily grown in popularity. Senior folk much smarter than myself have started using the term Developer Relations in anger, and a quick Google search tells you that DR is an official thing in the business world.
What interests me, and motivated this article, is why the role emerged now. After all we managed perfectly well for several decades without Developer Advocates, so why should they matter today? After some consideration I believe the advent of Developer Advocacy is a direct result of the fall of Consultancy and the rise of Mentoring.
The Fall of Consultancy
When I started as a developer back in the 1990’s the Consultancy role was essential to the industry. Simply put Consultants were the custodians of magic knowledge.
Let’s take a typical 1990’s enterprise vendor called MegaCorp, who produce a major database, transaction manager or server product. Everything they do is closed source and made available only on a commercial basis. Documentation is solely available via subscription within a partnership programme and training is only provided from authorised suppliers at a hefty price.
This restricted access to knowledge and expertise created a gap where consultancy could flourish. Consultants were typically ex-MegaCorp staff, or employed by MegaCorp satellite companies. They had years of insider knowledge gained from private conversations. They had been on the original standards committees or helped with early proofs of concept. Frequently they had written their own libraries of diagnostic tools, which gave them a head start when troubleshooting.
Fast forward twenty years and everything has changed. Community editions of products are the norm. Documentation is online and universally accessible. Vendors encourage senior staff to address esoteric bugs on forums like StackOverflow. Extensions to products are typically exposed as open source projects, if not out of altruism, then in hope of conference workshops and book deals. All of this has eroded what makes the consultancy role special.
This is not to deny that there are still world-class individuals, who make a living advising clients in their specialist subject. But these are the best of the best. The hordes of consultants that once dominated the industry are long gone and show no signs of returning.
The Rise of Mentoring
From my description above you might think that all is well in developer land, but of course this is not entirely the case. From being starved of information developers today risk being overwhelmed. Googling for tutorials on any moderately popular language or framework will give you the phone book. You will find a plethora of Medium articles, blog posts, e-learning tutorials, academic courses etc…
The vast majority of these resources will go back over the same ground, frequently staying on the happy path and away from the pain points. As someone who has written dozens of Getting Started tutorials it’s easy to spot when an author takes a shortcut and sidesteps an issue that will bite anyone trying to use the technology in anger.
The situation is worse when you have frameworks and languages that are going through a rapid evolution and updating their best practices at high speed. The worst offender here is JavaScript Frameworks, but Cloud Providers aren’t far behind. Even established languages like Java and Scala are retooling their feature set to stay current.
Today it is easy to become overwhelmed, bewildered and lost. So the ability to access mentors becomes vitally important. We can all benefit from having a tour guide when we start out, or when switching platforms or job roles. Your mentor doesn’t need to be a world class authority, they just need the expertise to help you move further and faster than you could by yourself - ideally with a lot less stress. If you subscribe to the Dreyfus model of learning it’s actually more beneficial for your mentor to be close to your level of expertise.
Welcome to the World of Tomorrow
In an environment where consultancy matters less and mentoring matters more, it becomes important for companies to reach out and engage with the developers that make up their target audience. Whereas in the past it was enough to have some online documentation or an introductory article it now becomes important to create a path of least resistance toward your product.
Vendors of developer tools have always been engaged in a Darwinian arms race, but these days it has taken on an added dimension. Survival of the friendliest if you will. Hence companies need a new kind of advocate, who can skilfully manage the outreach for them. These folk need to be developers, but also authors, trainers, presenters, mentors and (whisper it softly) salespeople.
Of course some of us are already in this role. In my case not by good judgement but by a combination of fate, circumstance and personality quirks. We can but hope, that having a name for the trade makes us feel a little less isolated, and enables us to work closer together and make the software industry less foreboding and more accessible to everyone.