I always hear a lot about companies being developer focused. Maybe it's a bit of cynicism but I never expect much from this goal. Few companies have been effectively developer focused, they just dream of it. I asked myself recently, and would love others' feedback. What exactly does it even mean to be developer focused?
When I think of developer focused organizations, the first organizations I think which actually have some type of grasp and effectively work toward this are open source software projects. Not particularly foundations or companies related to the projects, but the projects and the people involved with the core project themselves. These come to mind for several specific reasons.
- Open Source Projects are easily identified as being developer focused since it is usually a group of developers building a project for others, usually developers, to use to build software for others, usually not developers, to use.
- Open Source Projects have a self-determination among the group of developers writing the source code for it to be in a readable, usable state for other developers. This definitely fits into something I'd think of as developer focused.
- When these projects get big enough they're usually documented, written about on blogs and in articles from tech media, and talked about in many forums. By association of this process, this again first into my idea of what developer focused is.
- At a certain time the developers and developer users of said projects often become advocates - sometimes staunch advocates - for their respective projects. This combined with the availability of source code truly makes a project developer focused.
The idea years ago that developers are the king makers of the industry has held true, and in large part this I'm confident is in correlation and partial causation of why open source software has become a prominent defacto approach to building solutions, for individuals and organizations.
With that said it makes logical sense that developers have gained this power, and that open source has become this defacto way to approach building solutions. However there are exceptions, let's expand on this a bit and then refocus on this particular core association and get to a focal definition of what developer focused really means.
From what I've ascertained so far developer focused I largely associate with effective open source projects. But this isn't the only type of organization that can create solutions, projects, and related efforts that I think of as developer focused.
Let's take Microsoft as an example. Love em' or hate em' as an entitiy, over the years they've focused heavily on various types of developers. For a time they almost killed off Apple entirely (if you don't recall, Apple exists today because Microsoft saved them from going bankrupt!) by bing more dev focused and getting more apps built by devs for Windows. At least, that's one aspect of the whole situation.
Microsoft has had, and continues today to focus on documentation and products that center around developers building applications; in yesteryear more around Windows OS and today mostly around building web applications like every other entitiy on the planet! Their focus includes things like IDE's, helper libraries, entire frameworks, SDK's, tons of documentation, and teams working continuously to refine and determine what would help developers the most in creating tomorrows applications and maintaining and improving todays applications.
Other companies, to various degrees have done this too. For a small company size example, check out HashiCorp. The company started at its origin from various open source projects and has expanded to make solutions for developers and systems operators easier to use. These include things like Terraform, Consul, Packer, and a number of others.
Thinking back on all these things, here's what I've put together to define the ideal characteristics of a developer focused organization.
A developer focused organization has a priority to focus content, tooling, and related materials around the work developers to build, maintain, and operate software solutions. Key features of a developer focused organization.
- Marketing, developer relations, engineering, documentation, education, sales, and other arms of the company all focus on making communications easy with the developers of enterprises, small business, consumer, or related markets that the company wants to work with.
- Engineering (Part 1), or engineering groups have a focal place and priority within the organization to help marketing shape messaging, developer relations to provide effective and accurate content, documentation to be maintained and updated with accurate details, education to have effective means of knowledge transfer, sales to speak intelligently about products and services, and other needs as necessary.
- Sales isn't, or shouldn't be, focused on the proverbial "golf course" sales routine. The polo shirt wearing, cisgendered white male of privilege that got made fun of by jocks in the 80's era is dying faster than a Wermacht SS Officer in the crosshairs of a GI Lead strapped with a tommy gun. Sales also needs to, which I've made ironic now, flip the appproach to things. Get rid of the war metaphors (yeah, sorry, not sorry this line is after all meant for sales!) and speak specifically to product like you actually care about it and care about what developers are attempting to get built. Know it, understand it, hell, even whack at those keys and write up a demo or two yourself! This is developer focused sales.
- Marketing, stop having campaigns and study, understand, and gain knowledge about the places developers meet, code, and discuss solutions they need. Marketing needs to, when developer focused because an ardent consumer of all messaging of the organization and in itself a learning organization. Message and talk to developers in the places they organize online, in real life, and otherwise. Because developers yourself to some degree, understand the products, know what it is you're actually messaging developers about. Refocus and come hang out with developers. If anything, communicate with, work, and coordinate specifically with developer relations as the lead and with senior or principal developer advocates for the go to market marketing messaging and such. Absolutely do not just work on marketing efforts in isolation! Communicate with the organization and with the community frequently!
- Engineering (Part 2) has a complex and often exhaustive, advanced, and intense communication with the rest of the company in a developer focused organization. After all, they're building all the things that everybody else is working toward making developer focused for others to use! Yes, that means engineering needs a way to effectively communicate, and in many ways needs it's own internal communications to manage the flow of status, product, services, and related information to all of the other departments. At the same time all regular development, maintenance, and operational needs of engineering have to continue onward without interuption.
I'm currently, and continuing to define what should be in this list. I'd greatly appreciate your input; opinions, hot takes, or whatever you've got I'd like to know! So leave a comment, tweet at me @Adron, chat at me via Twitch @adronhall message me on LinkedIn, or whatever way you'd like I'm open for input!
My Blog! I have a personal blog at https://compositecode.blog/ that you can also subscribe to where I post additional collected material, thoughts, music, meetups, conferences, videos (like Twitch), open source projects, database work, data science, and much more.