Latest / DevQuestions with Tim Corey / 217. Overcoming Bad Tools and Frustrating Processes
Transcript
- 0:00SPEAKER_01: Have you ever worked for a company that forced you to use bad tools?
- 0:04SPEAKER_01: Or have you ever worked at a job where the processes you had to go through to get things done were frustrating?
- 0:10SPEAKER_01: Let's be honest, if you've worked in more than one organization, you've probably experienced these issues multiple times.
- 0:16SPEAKER_01: So, how do you overcome them?
- 0:18SPEAKER_01: Today, we're going to talk about the three things you can do to overcome bad tools and bad processes.
- 0:34SPEAKER_00: Welcome to the Dev Questions Podcast with Tim Corey.
- 0:37SPEAKER_01: Software development is more than just writing code.
- 0:41SPEAKER_01: So let's talk about the rest of it.
- 0:42SPEAKER_01: Specifically, let's talk about how to overcome bad tools and bad processes.
- 0:49SPEAKER_01: There are three things that I have found to be the most helpful in these situations.
- 0:54SPEAKER_01: Number one, demonstrate what a better option might look like.
- 0:58SPEAKER_01: Now, this is a tool or a process.
- 1:00SPEAKER_01: So you're talking about, hey, you know what?
- 1:03SPEAKER_01: It might be better to use Visual Studio than Notepad.
- 1:07SPEAKER_01: And here's why.
- 1:08SPEAKER_01: Here's I can move faster using this tool than Notepad.
- 1:12SPEAKER_01: That's of course a contrived example, but you could demonstrate what the better option might look like.
- 1:19SPEAKER_01: But the key here though is not to sound like you're complaining.
- 1:24SPEAKER_01: So if you come into your boss's office and say, Notepad is stupid, it's awful, it's just horrible.
- 1:31SPEAKER_01: You know what?
- 1:32SPEAKER_01: Visual Studio is so much better.
- 1:34SPEAKER_01: Well, that's not gonna engender a lot of goodwill from your boss.
- 1:40SPEAKER_01: Your boss is going to already be on the defensive and talk about how you just need to suck it up.
- 1:45SPEAKER_01: You need to use the tools you're given.
- 1:48SPEAKER_01: But if you were to say, hey, you know what, I was playing my free time and I kind of compared myself doing this and look at the speed difference and kind of show off, I think that, yeah, I know it's gonna cost us a little bit up front to buy these tools, but you see how much faster I am?
- 2:06SPEAKER_01: I kept thinking, if I can do this in half an hour faster, well, that's gonna save me$20, say the company$20, because that's how much they pay me for half an hour or whatever it is.
- 2:18SPEAKER_01: You know, you figure out those kind of costs and say, hey, that would only take a couple weeks to pay back what the cost is.
- 2:26SPEAKER_01: Or maybe the process is, oh, this, you know, this takes me a day to get from my code being done to being in production.
- 2:34SPEAKER_01: A lot of it has to do with a manual build process, they have to manually check.
- 2:38SPEAKER_01: And so I thought, what if I create a few unit tests and what if I create a continuous integration process?
- 2:44SPEAKER_01: So I just, you know, I whipped up an example here.
- 2:47SPEAKER_01: You see how like let's go through the process normally and kind of time it.
- 2:52SPEAKER_01: And that took us half an hour where I can push this button and I can get a better process that's more consistent that takes me no time because I push the button and continue on with something else.
- 3:04SPEAKER_01: So that saves us half an hour every time we do a new build, or every time I commit code into the main repository.
- 3:13SPEAKER_01: And you kind of demonstrate how that process might be improved.
- 3:17SPEAKER_01: Showing off in a positive way how things could be better is going to be valuable towards getting these processes changed.
- 3:27SPEAKER_01: So you might not win every battle, but being able to show I can save the company money and I can show how this can be better, that's gonna win a lot of arguments.
- 3:38SPEAKER_01: Now, the other thing here is you need to be honest in your evaluation.
- 3:42SPEAKER_01: This is something that is a pitfall for a lot of people, and it will burn you the second time, especially.
- 3:48SPEAKER_01: So let's just say I said, you know what, if I started using Visual Studio, I would be 10 times faster.
- 3:57SPEAKER_01: That's probably not true.
- 3:59SPEAKER_01: That's probably an exaggeration.
- 4:01SPEAKER_01: And so if my boss is, cool, go ahead and do it.
- 4:06SPEAKER_01: And I get Visual Studio and I am a little faster, guess what?
- 4:12SPEAKER_01: I am a long way short of 10 times faster.
- 4:16SPEAKER_01: And my boss looks at me and goes, I spent all that money and I got a little improvement when you said 10 times, you're so far short.
- 4:23SPEAKER_01: The next time you come to me and say, I can do this, I can make an improvement, you're gonna go, I don't believe you.
- 4:29SPEAKER_01: So make sure that you're honest about your evaluation.
- 4:32SPEAKER_01: Say, hey, you know what?
- 4:34SPEAKER_01: I know it's gonna cost this much per year.
- 4:36SPEAKER_01: And I know it's going to have these downsides.
- 4:39SPEAKER_01: It's gonna slow our computers down a little bit, or it's going to introduce more complexity into the installation process of a developer's machine, whatever the case may be.
- 4:48SPEAKER_01: But be honest about that, but talk about how you still overcome those negatives with the positives.
- 4:56SPEAKER_01: Because every situation, every solution is going to have downsides.
- 5:01SPEAKER_01: There is no solution that is only upside.
- 5:04SPEAKER_01: There are downsides.
- 5:05SPEAKER_01: So if you're honest about it, if you're clear about it, then it's not a surprise.
- 5:10SPEAKER_01: It's a, oh yeah, Tim said that's gonna happen, but I also see the positives.
- 5:14SPEAKER_01: Okay, so demonstrate what a better option might look like.
- 5:17SPEAKER_01: That's number one.
- 5:19SPEAKER_01: Number two, document the additional time things take.
- 5:24SPEAKER_01: So this is really valuable because you know your salary.
- 5:27SPEAKER_01: Now you don't know the salaries of others, and you know what?
- 5:31SPEAKER_01: You can't always get an accurate number, but you can take an estimated guess if you need to.
- 5:37SPEAKER_01: One of the ones that I love to do is meetings.
- 5:41SPEAKER_01: Okay, so we're gonna have a meeting to kick off this process.
- 5:44SPEAKER_01: Sounds good.
- 5:45SPEAKER_01: But then we're gonna have a meeting every week to talk about the progress of the project.
- 5:49SPEAKER_01: Okay, and we're gonna have a meeting, you know, every other week to talk about the progress of the progress of the projects.
- 5:56SPEAKER_01: And then we're gonna have daily meetings to talk about the things we did yesterday for the project.
- 6:00SPEAKER_01: And you start going, wait, I've got meetings all the time to talk about what I'm not doing because I'm in meetings.
- 6:07SPEAKER_01: And so you start documenting that and say, hey, you know what?
- 6:10SPEAKER_01: We have a meeting every week that takes an hour to talk about what we've done.
- 6:15SPEAKER_01: And we have seven people in there.
- 6:17SPEAKER_01: And I know that I get paid, let's just say, round number, uh,$40 an hour.
- 6:22SPEAKER_01: So if I'm an average employee and there's seven of us in there, start doing math on that, that's$280 an hour.
- 6:29SPEAKER_01: So that costs us$280 every week to say where we are in the project.
- 6:36SPEAKER_01: You know what'd be great is if we had a little project tool where we could kind of just have a status board that we can just say, we're on track, or we're falling behind, or we need a meeting about this.
- 6:46SPEAKER_01: But that little project board, yeah, it might cost us even$100 a month, but it's gonna save us$280 most weeks because you don't have to have that meeting most weeks.
- 6:58SPEAKER_01: And you start adding up all those things, and you say, this is how much it could save if we use this tool or change this process.
- 7:07SPEAKER_01: So again, coming back to the build process, I worked for a company once where the build process, I actually worked with a few companies to do this, but the build process was a manual process of copying files from one location to another and then comparing to make sure that they're kind of in sync.
- 7:23SPEAKER_01: And then that's production.
- 7:25SPEAKER_01: This was development.
- 7:26SPEAKER_01: So we got to make sure those two are the same now.
- 7:29SPEAKER_01: And then we run up production and go, oops, there's a problem.
- 7:33SPEAKER_01: What's the error?
- 7:34SPEAKER_01: Oh, we missed that thing in the database.
- 7:36SPEAKER_01: We make that change.
- 7:37SPEAKER_01: And oh, we get this.
- 7:38SPEAKER_01: And before you know, a deployment takes two, three, four hours.
- 7:43SPEAKER_01: And so we not only take a long time to deploy and have a big outage, but we also don't want to do deployments very often, which causes more backup of deployments.
- 7:54SPEAKER_01: So you document that and go, hey, you know what?
- 7:57SPEAKER_01: If we put some continuous integration, continuous deployment processes in place, yes, it would take some time up front to set those up and verify them and validate them and all the rest.
- 8:08SPEAKER_01: But that would make our deployments much smaller, much easier to do, and much more safe because we've already tested it multiple times.
- 8:16SPEAKER_01: So now all of a sudden, this automated process replaces one or more developers, usually more, doing the deployments and not being able to deploy very often.
- 8:27SPEAKER_01: So maybe you don't save a ton of time because instead what you've done is improved how fast we can deploy, which means you deploy more often.
- 8:36SPEAKER_01: So you document those things and say, hey, we may not save a whole lot of time, but we can improve the rate of deployment and make our deployments safer.
- 8:45SPEAKER_01: We can reduce the number of bugs that get into production.
- 8:48SPEAKER_01: Or we can make deployments faster because they're automated instead of a person doing them.
- 8:54SPEAKER_01: Document that.
- 8:55SPEAKER_01: Talk about the time involved, talk about the money that is represented by that time, and talk about how you can make changes to that process.
- 9:05SPEAKER_01: So that's number two thing you can do.
- 9:07SPEAKER_01: Number three, this is the hard one.
- 9:10SPEAKER_01: And that is accept what you cannot change.
- 9:14SPEAKER_01: Sometimes organizations are set in their ways.
- 9:17SPEAKER_01: I saw a tweet recently that talked about how, hey, if you're in an organization that uses Microsoft Teams and Jira, then you know, get out because it's a horrible organization.
- 9:26SPEAKER_01: They don't know what they're doing.
- 9:29SPEAKER_01: That's not true.
- 9:30SPEAKER_01: And you know what?
- 9:31SPEAKER_01: There's a bigger picture than just your little scope and your little part of the world.
- 9:37SPEAKER_01: You know what?
- 9:38SPEAKER_01: The rest of the organization uses Teams, so you kind of probably are too.
- 9:43SPEAKER_01: You know, and so yeah, it may not be the thing that you want to do, it may not be the thing that's the ideal tool.
- 9:49SPEAKER_01: It may take up more of your time and cause more frustration and be more difficult to work with, and it may cause you some slower slowness compared to other tools.
- 9:59SPEAKER_01: But for the sake of compatibility, it is what it is.
- 10:03SPEAKER_01: You have to accept what you can't change.
- 10:05SPEAKER_01: Sometimes you may have a better tool and your organization says, yeah, but no.
- 10:10SPEAKER_01: There's organizations out there that say that if the code isn't from Microsoft, they don't use it.
- 10:18SPEAKER_01: So third-party tried and tested and proven tools that will make your life easier and better, they go, yeah, I'm not going to do that because it's not from Microsoft.
- 10:30SPEAKER_01: That's not a great philosophy, in my personal opinion.
- 10:33SPEAKER_01: But you know what?
- 10:34SPEAKER_01: They have some reasons for it.
- 10:36SPEAKER_01: You accept what you can't change and figure out how to work within that system.
- 10:40SPEAKER_01: There are still things that you can do, there are still improvements you can make, but sometimes just accepting what you can't change is the most valuable thing you can do.
- 10:50SPEAKER_01: Because you could spend all your time grumbling and complaining and being miserable.
- 10:56SPEAKER_01: Or you can just say, you know what?
- 10:59SPEAKER_01: It is what it is, and focus on what you can do.
- 11:02SPEAKER_01: You'll have a happier life, you'll have a happier employment.
- 11:06SPEAKER_01: And if you have to stay there, it's better to be happy about it than be miserable.
- 11:11SPEAKER_01: And so don't let somebody else dictate your misery.
- 11:15SPEAKER_01: So overcoming bad tools or processes, it can be frustrating.
- 11:19SPEAKER_01: Sometimes you get the opportunity to help them improve.
- 11:22SPEAKER_01: Other times you're going to need to live with a system that it and the way it is.
- 11:28SPEAKER_01: Either way, by maintaining a positive attitude and doing the best inside of the system, you'll set yourself up for success.
- 11:36SPEAKER_01: Don't let the actions of others affect your attitude and the actions that uh endanger your career.
- 11:44SPEAKER_01: Okay, so if you decide to be miserable, well, that's gonna reflect on how you do your work.
- 11:50SPEAKER_01: And your boss is gonna notice that and it's gonna reflect in not getting raises or potentially even getting laid off or fired.
- 11:57SPEAKER_01: Okay, don't endanger your career.
- 11:59SPEAKER_01: Don't endanger your happiness by letting others dictate you being miserable.
- 12:06SPEAKER_01: At the end of the day, how you respond is your responsibility.
- 12:11SPEAKER_01: I want you to succeed despite your circumstances.
- 12:15SPEAKER_01: This is very valuable to learn because no circumstance is going to be perfect.
- 12:20SPEAKER_01: You need to figure out how to succeed despite negative circumstances.
- 12:25SPEAKER_01: I hope they answered your question.
- 12:27SPEAKER_01: Thanks for listening.
- 12:28SPEAKER_01: As always, I am Tim Corey.
- 12:30SPEAKER_00: Thank you for joining us for this episode of Dev Questions.
- 12:33SPEAKER_00: When you're ready to learn to think and code like a professional developer, head over to imtimcore.com and enroll in a course.