I found myself in Hershey, PA for a few hours after my flight was delayed longer than I slept that night and decided to kill time at The Hershey Story Museum. My attempt to avoid screaming children failed when I realized it was Father's Day and families could bring their Dads for free. Everyone survived and we eventually boarded a flight home.
I didn't really know anything about Milton S. Hershey beyond his very okay chocolate and chocolate themed theme park in Central Pennsylvania, which I avoided on this day because of my lack of patience and knowing the theme parks attract screaming. I wasn't entirely sure if Hershey, PA was named after him in a post-mortem sense. And I genuinely had no idea if he could have even fathomed a theme park in the town. Turns out, the theme park was his idea, baked into the design for the entire town.
Mr. Hershey founded his own company town, but focused on the people aspect. He encouraged people to own their own homes, visit the theater, enjoy Hersheypark, and other things to increase their quality of life outside of work hours. Other company towns simply didn't. You rented your home, made a wage that was hopefully livable, and maybe your neighbors were tolerable.
That's where this brings me to community building and developer enablement.
Just because you have an API reference doesn't mean you've enabled developers. It does mean you have an audience or community that will include developers.
Just because you have an active community forum doesn't mean you have a thriving community. What's stopping it from becoming a free support platform? Who is posting?
So am I setting this up to introduce myself as the Milton S. Hershey of tech? No. But I have thought a ton about Mr. Hershey when thinking about the strategy of Developer Experience at Camunda.
Camunda has a rich history in open source, so we continue to support that with things like the Camunda Community Hub and enhancing our contributor experience.
Is it easy for beginners to contribute to projects in the Camunda ecosystem? Honestly? It could probably be easier. If it is easier will that cultivate a thriving community? Well it certainly wouldn't hurt. So we are looking at formalizing things like "first timer" issues and PRs all the way through connecting our experienced contributors to other experienced contributors to increase collaboration.
In terms of docs, we've spent quite a bit of time making assumptions and defining opinionated approaches to our documentation, but we are collecting data about how developers are actually using our documentation. This is showing us the gaps, areas for improvement, and areas of interest. So while our API reference exists, could we package it in a way that's not just text on a page? Could we make it interactive? Beginners aren't the only one's who need guides! What about some more advanced content for advanced features?
Everyone likes to talk about what developer experience is and isn't, but maybe we just need a better analogy than "developer experience is to developers are user experience is to users". People don't seem to get that either.
If chocolate is the product, Mr. Hershey's well-rounded, people-oriented foundation for Hershey, PA is the developer experience.
It's intentional, it's inclusive, and it doesn't end at 5pm or 6pm.
Of course it would be wonderful if we could provide an artisanal experience, but this is 2022 and we need to scale like the SaaS-product we support, or in Hershey's case making cheaper chocolate for everyone to enjoy some luxury.
Developer experience doesn't end with conversion. It doesn't end with onboarding. It's the overall experience a developer takes and the interactions along the way from beginning to end. How painful was it to offboard? That's also part of the developer experience and possibly still not the end.
Building community-oriented, scalable approaches takes you much further than "if you build it they will come" or "the code is self-documenting". Your API could benefit from a well-crafted API reference and a community of users able to assist each other.
How are you thinking about developer experience? Do you have a favorite analogy? Or do you just want some chocolate?