What exactly is "developer experience"?
DevEx: easy to define, but hard to get right.
I’m speaking at the SHIFT conference next week in Zadar, Croatia. Here’s some questions they asked me ahead of time for their ShiftMag outlet. I’m not sure why, but I didn’t send the third one in and saved it up for this here newsletter.
(1) Where do you stand in the DevOps vs. SRE vs. Platform Engineering debate?
I guess by stance you mean “are these things different, or all the same thing, really?” I go back and forth on this a lot. The sum total of both is helpful - they’re both giving helpful practices and changes that organizations can follow and make to get better at how they do software.
It’s fair to say that the first wave of platform engineer thought-leadering was harsh on DevOps, but I think that early “DevOps is Dead” take has dissipated.
The platform engineering community is doing a great job of promoting the idea of product managing platforms, the notion of a platform itself. What exactly platform engineering means isn’t exactly sorted out yet. It either means “everything” or it might mean building and maintaining up the developer tools and runtime environment (the platform).
I don’t think we really know yet since the concept of platform engineering is. It’s only like, what, two years old? We can predict what it will be using the old trick of “most things in the future are a continuation of the past.”
I don’t really know if I’m part of the core platform engineering community, so I’ve recently stopped myself from trying to define it. I’m too much of an outsider at this point.
(2) How do you define developer platforms?
I define it mostly as everything above IaaS - what we used to call PaaS. For whatever reason, people don’t like to use “PaaS” anymore, but it pretty much perfectly defines what a “platform” is. I mean, it’s right there in the name of Platform as a Service.
You could also throw in developer tooling like CI/CD piplelines and the collaborative sites/consoles/dashboards developer use (internal developer portals - another category figuring itself out). If those tools are tightly integrated with the platform to make building, deploying, and running the applications better, it’s probably worth including them in the definition of “platform.”
(3) Another hot topic, connected to developer platform is – developer experience. What would you say is good (internal) developer experience and what would some of the killers of DevEx be?
That’s easy to answer but hard to get right. In general, good DevEx is when your developers can get their code to production fast. Of course, it shouldn’t be bad code, insecure, and all of that. Good DevEx should be when developers don’t spend a lot of time on “toil” or work that can be automated instead. Bad DevEx is when they have to file tickets and wait for things.
On the other hand, sometimes you need to do these things for good reasons. You might have compliance and laws you need to conform to or get shutdown by the government. In those cases, you can likely improve DevEx if you know how to apply new tools and ways of thinking to old governance processes, but you might not ever get to the point where developers can deploy at will, multiple times a day. And, you know, I don’t know if I want my bank having that much innovation on a daily basis.
I know this is a kind of consultant-talk, airport book mystical answer to your question, but I’d say the best way to measure developer experience is to ask them “are you happy with how you’re do your job?” And if they say “yes,” you have good developer experience. If they say “no,” you should ask them what could make it better.
I’m not sure I really like the term “developer experience” very much anyway. “Developer productivity” is a little better, but “productivity” is more of a business metric than, like, a human metric. Businesses care about productivity because it means they increase their profit (literally and metaphorically): we can do the same amount of work with less effort than we used to. It used to take the developers and IT four weeks to deploy a new application, now it takes one week.
You can see why productivity can turn into the enemy of an individual: if I’m a profit-hungry business, instead of giving the IT staff three weeks off now, the business ask them to fill those weeks with even more work. And you also probably don’t give them three more weeks worth of pay: you probably still pay them the same thing.
Productivity can certainty help the individual feel like they’re doing a good job, and get a sense of fulfillment. I feel great when I’ve done a lot of work that I know matters. But at some point, whatever effort and change-stress an individual puts into being more productive doesn’t get them much, if any, reward.
But, developer productivity metrics are probably good for measuring if things are in good working order.
(4) And, why do you say they have been a thing for at least 10 years? Why are they in the spotlight now then?
We had Heroku back in the late 2000’s, then Cloud Foundry was based on that, and some other PaaSes and accidental platforms. Companies like Mercedes-Benz, JP Morgan Chase, several militaries, and others have been running platforms like those for 5, seven, ten plus years.
What I like to do in my talks is catalog the practices they’ve learned over those years, what works and doesn’t. I’m especially interested in what very large, usually 30 to 50+ year old organizations are doing with their platforms: how they make it work for thousands of developers. As a community, we tend to dismiss the wisdom of teams like this because they’re not using the next great technology. But, the ways to run a platform are pretty much constant over time, especially in larger organizations.
I think “platforms” are in the spotlight now because most organizations have finished their first round of putting kubernetes in place. It took several years to figure that out and start seeing more use in the mainstream. Once you get kubenetes up and running, then you need to start building a platform on-top of it: you have to add all that other stuff that developer use.
To pick one of the things out of the talk: the most important thing if you want to have a good platform is immediately start product managing it and think of application developers as your customers. Whatever team is building the platform should be talking with application developers all the time (weekly or so) and getting feedback on what works well for them, what doesn’t work, and if recent changes to the platform have improved things. You’d think this is what operations people who run this kind of thing do, but they’re usually more focused on the state and status of the system - if it’s running, if it’s secure, etc. - rather than the usefulness of the platform to developers.
For a more detailed discussion, if you haven’t checked it out already, you should read Jennifer Riggins’ platform engineering report, it’s free thanks to VMware:
I talked with her a couple times for it and reviewed the text ahead of time. You should check it out, I think it’s a good go at trying to nail down exactly what that term means. This month, at least :)
You know how it is: as an expat, when you go back to the US, you bring back some food, clothes, toys, books (in English), and so forth. Pinto beans are hard to find in The Netherlands as are fresh made HEB tortillas, of course.
This time of year it’s candy corn. Yup: five pounds of it. But also the makings for s’more’s. Country-to-country, candy turns out to be one of the last, unique cultural artifacts of everyday life. And, of course, in the 50+ little countries that is the United States, this can be state-to-state. Anyhow, I heard awhile back that IKEA makes great duffle bags for this kind of thing, the FRAKTA. They pack small, are very sturdy (they’re made from the same stuff as those big blue IKEA bags), and are cheap. Checks out! It works great. Here’s one going from Des Moines to Amsterdam:
Talks I’ll be giving, places I’ll be, things I’ll be doing, etc.
Sep 13th, stackconf, Berlin. Sep 14th to 15th SREday, London, speaking (get 50% of registration with the code 50-SRE-DAY) Sep 18th to 19th SHIFT in Zadar, speaking. Oct 3rd Enterprise DevOps Techron, Utrecht, speaking. Oct 5th to 6th Monktoberfest, Portland, ME. Oct 12th SpringOne Tour London Oct 9th SpringOne Tour Amsterdam Nov 6th to 9th VMware Explore in Barcelona, speaking (twice!).
It’s 9pm here in Berlin. I’m speaking at stackconf tomorrow, then I’m off to London for SREday (both above). I’ve been reading Legends and Lattes, and it is super fun!