Enhancing Developer Onboarding with Ana Margarita Medina and Adriana Villela at OSS Seattle 2024
Ana Margarita Medina and Adriana Villela, both senior staff developer advocates at ServiceNow, discuss improving developer onboarding experiences using platform engineering principles. They emphasize the importance of providing a structured environment for onboarding, considering different workspace types and tools, such as GitHub Codespaces and developer portals. Their conversation highlights the need for a balance between freedom and control to enhance productivity and collaboration within DevOps workflows.
Transcript
This is Techstrong tv. Hey everybody, welcome back. You know, one of the great places about being here and also doing the kind of work that we do is we get to talk to people who make a big difference in the industry.
And I'm joined by two colleagues and friends who've been on lots of tech strong stuff. And, uh, our regulars, um, we need to give you your own golden microphones or whatever, blue screen green screens in the back. So Anna and Adriana, welcome both.
Would you introduce yourself? Just folks know a little bit of your background. We talked about your background last time a lot.
So there's a whole video on that. There is, There is Anna. Hi y'all.
My name is Anna Margarita Meina. I'm a senior staff developer advocate at ServiceNow. They're focused on documentation, helping some of our projects get open source, working with our customers to get them on their observability journey.
And I've been doing the developer advocacy for a few years now. Prior to this I was focusing in reliability, specifically chaos engineering. And my background comes working in cloud infrastructure and reliability engineering.
But I also come from an untraditional background where I taught myself how to code. So I come from a front end and mobile, uh, developer background and that later transition into usri, which is a lot of Fun. That's fantastic.
Wow. What a background. What, what expertise And Adriana.
Hey, I'm Adriana Vila, or pronounce it in Portuguese. Adriana Vila. Um, Ooh, You've not done that before?
Uh, Yeah. I, I do know my podcast, but sometimes, uh, sometimes when I'm speaking, but it depends. Uh, yeah.
So I, um, I, I work with Anna as a senior staff developer advocate at ServiceNow. And, uh, I mean, I've been in the open telemetry space for the last two years, uh, pretty much since joining ServiceNow. But before that, I, I went between IC and management, um, did many, many years as a Java software engineer.
Um, got into the DevOps space and never looked back. Never looked back like, this is the thing I'm going, This is it, it's my, you know, it was like my calling. I knew, I knew it was the thing.
It's nice when you find that thing that's like, this is my jam. Right? Definitely.
Definitely. You're like, okay, I can actually stay in this vertical, enjoy it. I could like switch over to other verticals, but it's not gonna be as fun.
Like, at least for me, that's how I feel about reliability. Like, I've transitioned to verticals next to it and like still get to talk about reliability, but sometimes I'm like, I just miss doing that reliability work. It is fun too.
'cause you can like love a programming language or an environment or whatever kind of work, but when it's a, it's an approach, it's an area, it's a domain that you can apply those technical skills to, that's when you could really build a passion about something that has a broader impact. Right. Nothing wrong with being the best job of programmer in the world.
I mean, that's good too, but it's that that can kind of carry you between, you know, things you do in your career and places you go. So. Well you're, you're doing a talk tomorrow.
We are, as we're recording this. Uh, what's the talk about who wants to kind of start the conversation? So the talk is about improving, uh, developer onboarding experience using platform Engineering.
Okay. Well, you know, developer experience is a big part of platform engineering, you know, developer portals, all that kind of thing, as well as other stuff. So onboarding, you know, I I, my approach to onboarding is, well, here's the repository and here's the list of things we need to do.
And this person can help you set up your development environment. Let us know if you have any questions. I mean, that, that's not too far from Typically happens.
Yeah. That, that's definitely been what's happened to me. So, and I'm scarred by that.
Yeah. And from that you say, I'm never gonna do that to somebody. Yeah.
You that I just went through. So, um, just just tell us about the fact, what do you do to, to have a better experience onboarding developers? Yeah, so we talk a lot about different approaches that you can go about it.
I mean, I think one of the first things that we do is that we divide the workspaces into three different types of workspaces that there is. So we have the vault where it's like found in healthcare and finance where it's like you can't install anything. And then we have the red tape tango where like there's some red tape involved, but there are some room where you can actually ask for certain tools to be provisioned so that you can start installing them and you don't have as much of a tightness.
And those are industries such as like SaaS companies and, um, consulting firms as well. And then we also have the wall B West, which is what we're calling for. Places like startups where like you just get given all the freedom.
And I think sometimes like you first need to define what is it that you wanna build, like what type of organization. And then from there we're talking about approaches that you can do of like, do you want everything to be on a local computer where like you, you wanna make sure your developers are like taking into account like how much of the resources they're constantly using or do you wanna move on to developers, like developer tools that are also being hosted remotely, like and containerized. Mm-Hmm.
So we're also like talking about some of those approaches and like how is it that you can leverage some of the things that platform engineering has provided for us and really create an experience that's a little easier. Yeah. Like the real idea is like, you know, we use DevOps principles to set up like servers, right?
Like someone else's machines. Like why can't we apply those same principles to developer machines? Mm-Hmm.
It seems silly, right? Like Mm-Hmm. Um, I, one of the things that um, I do for my personal, like whenever I get a new machine is I have an Ansible playbook that, and, and I open source it on GitHub so you can actually check it out.
It's got like all the stuff that I like to install on my machine and, and basically whenever I get a new laptop, um, I run it and boom. And it came in handy. 'cause like, I guess last year I got a new MacBook use my use my Ible playbook.
It was great. And then like two months later it was an M1 Mac. Two months later I spilled a glass of water, a pint glass of water on my Mac.
Um, they had to basically like, it was basically a refurbished job. They had replaced everything and Ansible Playbook came to the rescue and I'm like, your Disaster recovery plan. Yeah.
It's my disaster recovery plan. I'm like, why can't we just do this for our developer environments? Like, this is ridiculous.
You know, it's ing there's an attractiveness to the wild, wild west. Right? I can use it.
I want, I can do it the way I want it. I can customize it. That's a lot of work.
There's a lot of, you know, productivity loss that you may gain some, but in some ways kind of that middle of the red tape zone, whatever it's hitting Red tape, tango, tango, It's, Yeah. You know, there's that, that can also work for you too because like this will get you productive really quickly. Yeah.
And because it's not a lot you need to change, here's where you've got your degrees of feet freedom to personalize it with do what you wanna do. You know, be creative there and that way you can get the most un as quick as possible, but not feel like, you know, I'm being hamstrung by, I live in this, you know, marionette world of Yeah. That's all I can do.
Yeah. And we also have the con that like having a wall ball west environment sometimes contributes to like not having as much collaboration between each other. Where it's like you go talk to a developer of like, oh, can we pair program on this?
And like, you're looking at a different IDE or you're looking at a completely different setup, which like everyone's gonna have customizations, but when it's a complete different tool, like it makes it harder to collaborate on something. Of course. Like with version control, like we are checking in to it hopefully.
Mm-Hmm. We're doing. Yeah.
Hopefully. Oh, we have the new repository where Yes, it is stored locally. Can you not access my own computer works on my machine.
Yeah, It works. So, Um, so like we also have to kind of do the trade offs of like, what is it that you actually want? Because you say like, oh, W Wild West is great 'cause you just, the time to value is like super small.
But then at the same time you have to remember that like, it might be really small at the beginning, but when you're talking about that developer starting to contribute to those larger projects, they might not necessarily just like plug and play while like in a red tape tango where like everyone is using VS code or like jet beans and then you kind of stick to that. It's like everyone just has easy access to collaborating and like leaving comments and like leveraging some of the extensions and have like, oh our company uses this. Or like, we're gonna make sure to go and head it our vs code that like the spaces are converting into tabs and like these little things that like get aggravating on like what would be the day two of a developer versus like the day zero day one.
Look at it. Yeah. And the other thing too is like once you're given too much choice, like we like to customize our stuff, right?
I mean, you can customize till the cows come home. Imagine you have like a blank slate to do whatever. I mean you can spend most of your time customizing your laptop and then you're like, you kind of forget about the work.
Or like, there's so much, there's such a thing as, as too much freedom and it's nice to have those guardrails in place. But then the opposite is annoying too, right? Because like I worked at a bank for 11 years and like they decided, oh we're going to basically, um, uh, assume that you can't install any software unless it's been whitelisted fine.
Then they decide right off the bat that they're going to blacklist software that the developers need to do their jobs. And so it's like, okay, it's fine to like whitelist software, but how about having that conversation with developers first so that we're not like screaming at you saying, well we can't do our fricking jobs anymore. Mm-Hmm.
That's one way to get a developer to go around the rules is create More rules. Exactly. Exactly.
Shadow it. So it implied in what you'd say, 'cause you've mentioned a lot of things around DevOps. How does onboarding in a DevOps environment work?
How does, how do you think about that from platform engineering? It's not just the IDE and their repository. It's two big parts of the course.
Yeah. But it's the whole workflow. It's the tool chains, maybe multiple, are involved.
What kind of things help people get up to speed on that part of the, the work? Like specifically DevOps? Yeah.
Yeah. The kind of tools that are part of DevOps Workloads. I mean, I, I come from the reliability background.
So chaos engineering was my bread and butter for a while. And when I talked to a lot of teams, like specifically around incident management of like how is it that we can train our team that they're getting ready to, to do stuff, um, is by doing what we call game days, which are like controlled chaos engineering experiments. And that allows for them to be able to like run through the playbooks, make sure they have access to the right tooling.
Mm. Make sure that they know who to contact, make sure where they go update incident response pages. So I think what we try to envision is like what is their day to day job and how is it that we can create a safe environment where they do those exact same actions but in a place where there's like psychologically safeness in place, they have room to ask questions and they have room to mess up Mm-Hmm.
And not be told you're fired. And like them not feel like they're getting fired either. 'cause it's one thing to be get told, like go ahead and mess up your job is okay, but it's another thing We, we support making mistakes until you get fired.
Yeah. So I feel like for DevOps and like sre, like you just kind of get thrown into the trenches. Mm-Hmm.
The way that we also do it, uh, at ServiceNow, like with LightStep is that they have like alert triage hour. So like they'll create, they'll fire off an alert and you have to respond to it like as if you're on call. So it might not be the chaos engineering way, but they're still doing the same approach of like you're on the trenches, like act as if like that you're touching production and go through and ask us questions.
And like that way you get access to the right tooling. So there's a lot of ways that you can kind of just give them what your day-to-day job would look like. But in, in a really controlled space, That was also like the collaboration and information sharing pops out of that process, right.
As opposed to okay, go away and set it up. This is a test to see if you can create your environment and, and go your thoughts about it. Yeah.
So the other thing that I wanted to add on to that is like, there's also like, you know, what's, what's the onboarding workflow itself, right? Which is, um, you know, what, what kind of tooling are we looking at? And, and I think Anna alluded to like two, two different types of environments that we wanna set up, right?
Which is one where it's self-contained, where you've got GitHub code spaces, which I discovered personally last year where I'm like, oh my God, you mean I don't have to install these things locally anymore? Like, Where have you been all Online? I know, right?
Yeah. So like, you know, now we have this, this option of having these self-contained developer environments that we can give to to our teams where basically you've got like a platform engineering team that can define a dev container and then away you go developer once you onboard. And then there's the other side of it too where like, maybe I wanna have all my tools installed on my machine, in which case, like I probably, uh, you know, I need to be very mindful of like what kind of computer I get in this case, right?
Because like if you're using GitHub code spaces, you probably just pretty much have a dumb terminal. You don't need that much juice. Right?
Whereas you're, you've got like this environment where you've got all the tools on there, you have to, you know, plan for compute, power storage and all that. And so your workflow ends up being very different in that case. Like we talk about having a developer portal for onboarding and we poked into a couple of these developer tools.
There's like two that stuck out for us Port, sorry, port, um, which I believe is, uh, vendor one, and then Backstage, which is CNCF open source. But then there's a vendor offering, um, there's a SaaS offering. And both of these like give you the ability to basically trigger a GitHub action, which can then trigger like an Ansible playbook, which will install things on your, on your developer developer machine and then, you know, set up your permissions and all that.
So these are two different options to, to approach the problem that, you know, make it so much easier for the developer to basically get started. You know, it's maybe if you're starting out, you're kind of focusing on one project as you get into your career, I'm guessing this is your experience usually working on multiple things that are in different environments. They're not one development environment will help you do that.
Mm-Hmm. That right there is a big incentive to say, well how do I do this? So I don't want context switching time to, you know, take too long.
By the time I've get to it, I can fix it. I could have just rewritten that thing, right? Yeah.
Over that time that, that's one of those prices. We pay that not at redevelopment manager. Well development managers do, but a lot of managers don't really appreciate it.
You know, we're doing a lot of different things that aren't in the same environment. It's complex. It's hard.
Yeah. The, the, the containers and like the development being in a container really helps out with all like, oh, I need this version of this type of programming language for this project. But on that other open source project that I'm on, I'm using a complete different version.
Or even like, it's happened to me with Terraform running different Terraform versions Oh my God. For certain templates or like, yep. What is our vendor stuff versus what is open source?
Like our vendor stuff might be behind the version versus like open source that someone has already contributed and updated versions. So it's like there's other CLI tools that manage versions for you sometimes. Mm-Hmm mm-Hmm.
But then you're like, oh crap, I forgot to change versions versus like it just having its own container that you're like, well on this container that I work on project A, like I know it's already diversion for project A versus project B. Yeah. And it, it doesn't like sully up your development environment either, right.
So that you don't, that's a, you don't have like all this crap like lying around or like say you're done with whatever project. You don't need these tools anymore on your machine. Right.
But now they're lingering there, you don't remember them from two years ago and it's just like junk accumulating your computer bug environment. Yeah, exactly. Fixing it.
You have to be careful now when you're hiring people that you don't wanna say like, we make Oliver of developers working containers. 'cause they could misinterpret that that could go the wrong way. Anyway, I, I wish I could come hear your talk, but it's gonna be recorded so we can all check It out.
Yeah, definitely Wish you both the best. Thank you. Great talk.
I'm sure it'll be a lot of fun. The entertaining, the kind of metaphors that you've come up with. And there's sea otters in containers.
Oh yes, That's right. Sea otters in containers. Yes.
We used AI art, um, throughout our presentation. Art of course. And and the theme is sea otters as you do.
Excellent. Well, okay, there's some more, there's even more to look forward To. Oh, and we have like a video too, a teaser video we posted.
Did, I'm surprised you had mentioned that. Yes. We have a fun teaser video with office space vibes, so you can uh, check that out.
You're Gonna be writing skits for, you Know, television series pretty soon here, you Know, please. Well, great. Uh, Adrian Orville and um, and Mark Anna Medina.
Marta, will you both say your names the proper way? I'd love you to Do that. Sure.
Adriana, Ella, Anna, margarita Medina. Love it. You guys are great.
Thank You so much. Always a pleasure. Thank you.
And we look forward to, by the way, Jody will sign you, has signed you up for this webinar I mentioned. So for the round table we have coming up, you know, these are the kind of folks we get to hang with when you're in this industry. And be honest, the tech work is fun, but the people are much more fun.
So it's great to be participating in this with you. So thanks for joining us. Thanks for Having us.
Yeah, Thanks for having us. You Bet. We've got more great interviews coming up.
Hang tight.