Transcript from the "Source Control & Service Management" Lesson
>> So now, we have the organizational problem of, well, where are we gonna go? Do we go to Amazon? Do we go to Google? Ao we go to Azure, right? Or do we use something else like some kind of boutique solution or something like that. Developer problems [LAUGH] I love this GIF.
[00:00:15] It made me feel so yeah, I've gone through this quite a bit. What do I do? And this is this is pretty common with developers to be honest with you. More often than not, there's two things. Whenever a developer says like, what do I do? I do what's going on?
[00:00:29] One it probably means a developer hasn't been educated well enough. And I don't mean technical? [LAUGH] I mean, they don't know the specific internal knowledge, right? Maybe they don't know how to do deployments, right? Maybe they don't know how to do configurations and their deployment just failed, right?
[00:00:48] What do I do? What do I do, right? These are the developer problems that we actually deal with quite often. So, when we look at developer problems, you're immediately gonna see a massive shift and their perspective versus ours. [LAUGH] Source control, right? Somebody gets hired into a company, how do I edit my code, right?
[00:01:09] How do we do it securely? Service management? How do I create my services, right? How do I manage my services? Continuous integration, right? How do I make sure that my code changes are okay. And then finally, continuous delivery, right? Now, at the bottom, I note that developers only deal with code and mechanisms to deploying it.
[00:01:30] I really think that this is something that every company should follow. Why? Because that's all they care about. [LAUGH] In all honesty, a dev does not really care about why logs aren't working. They don't really know, potentially, why or even how that may have happened. And it can create tendencies of, I don't wanna say conflict but miscommunication or it's like no, I'm just trying to help you but what's really happening is you're dealing with a pain point in our systems and I have to help you out of this now.
[00:02:07] If you have circumstances like that, where you find yourself where developers rely on you to move forward, that is a developer problem, and that's something that should be fixed. So when we talk about source control, right. What are we talking about that developers care about? Well, developers wanna know how to access repos, right.
[00:02:26] They wanna know how to get to their repos. Branch protections and policies. Again, massively important. Developers will just merge things. [LAUGH] They do not care. And that's not to be rude, but it's simply because we've gotten to a point now where there's expectations within the developer experience, right?
[00:02:44] Developers expect to see status checks, and if it's not there, then they just go, okay, well [LAUGH] It didn't say it, right? So having branch protections, do not let anyone push to main, lock it down. You can't even, you should not even be able to push to main.
[00:03:01] As a matter of fact, and this is how crazy I am, I can't even push to main in my own private repos. [LAUGH] Because in the off chance that I do, I could break something in prom. And when I'm doing my own personal projects or I'm working on stream and stuff like that, it still means that I wanna make sure everything's working fine and things like that.
[00:03:21] And yeah, if you accidentally push to main or force push or whatever, it's just so hard to know what's gonna happen, unless you really understand the changes that you're about to make. Having integration before that that can run before that, check everything is really crucial. If you're at a company right now that lets you push to main, that has to stop.
[00:03:44] [LAUGH] That has to stop. Developers must have standardized procedures to manage code efficiently. You have to create those procedures. Then part of that process is gonna be figuring out what they like. [LAUGH] Because sometimes the procedures that you make aren't necessarily the ones that they like. Sometimes you have to keep those procedures, sometimes they can be changed.
[00:04:08] But part of working through these problems especially is to work together. Like seriously it really is. Service management, now this is interesting. A few of you might even look at this and be like, wait, why are developers managing services? What does that mean? Well, when we think about what do developers care about, they do care about configuration, right?
[00:04:32] They do care about what their environment is, the current state of it. Yeah.
>> Just a general question.
>> How do you suggest you deal with a hot fix emergency? Usually an argument for leaving backdoors on the main branch?
>> Yeah, don't do it, don't do it.
[00:04:52] My job is a lot about telling people no. If you are at an organization where you do not feel like you can express as a what you're being paid to do, which is, hey, we need to make sure that we do this in a way that's safely secure and it can be a fire, but like understand that with fires, we put them out as fire.
[00:05:17] Yeah, fire like brigade, not as just like, don't do that. So there still has to be policy and practices even in that process. So, basically you just tell them, okay, just take a deep breath. [LAUGH] So open up the PR and let's figure this out, and if that process takes a long time, that's a problem, right?
[00:05:40] If you're hot fixes take like three hours to do, then the thing you guys are really arguing about is that it takes three hours to do a hot fix not that like which approach is better or not, right? And that's another part of determining what's the actual problem, right?
[00:05:54] When you get into an argument with somebody, it's very easy to get distracted by what you two are talking about. But the reality of it is it might not even be the problem that you guys are trying to actually solve. So really determining why are we feeling the way we're feeling right now is actually pretty important to solving the problem.
[00:06:13] So yeah, don't do it and reevaluate your practices so that those things don't become as difficult in the future.