Latest / DevQuestions with Tim Corey / 252. How Limitations Make an Application Better (Training Too!)
Transcript
- 0:00SPEAKER_00: One of the best ways to improve a project's odds of success is to give it constraints.
- 0:06SPEAKER_00: Limiting how long a project can take or how much money can be spent actually increases the chances that an application will launch well.
- 0:15SPEAKER_00: Conversely, allowing an ever-sliding time frame often causes a project to falter and eventually fail.
- 0:23SPEAKER_00: Let's talk about why project limitations, when they're done, often are the best thing you can do for your project and how this directly impacts your ability to become a better software developer in today's episode of Dev Questions.
- 0:46SPEAKER_01: Welcome to the Dev Questions Podcast with Tim Corey.
- 0:50SPEAKER_00: Software development is more than just writing code.
- 0:53SPEAKER_00: So let's talk about the rest of it.
- 0:55SPEAKER_00: Specifically, let's talk about project limitations and their benefits.
- 1:01SPEAKER_00: On one hand, when I talk about project limitations, it feels obvious, right?
- 1:06SPEAKER_00: No company has unlimited budget or unlimited time to release a product.
- 1:12SPEAKER_00: However, if you're the one working on a project, it feels like you never have enough time to really get things done.
- 1:19SPEAKER_00: In fact, you don't have enough time to get a good job or to do a good job.
- 1:24SPEAKER_00: So those bugs don't get fixed, or maybe that code doesn't get cleaned up right.
- 1:29SPEAKER_00: Maybe you want to write things really well, but you end up just throwing things in there in order to get it done.
- 1:36SPEAKER_00: And that feels like it's a bad thing.
- 1:39SPEAKER_00: Now, on the other hand, I often hear about the waste of developers today compared to previous times.
- 1:46SPEAKER_00: So older developers will bemoan the fact that we write lists and have tons of stuff in them.
- 1:51SPEAKER_00: We download lots of files from the server and how web pages used to be one kilobyte instead of now they're megabytes.
- 2:02SPEAKER_00: The original Super Mario Brothers took up 40 kilobytes.
- 2:05SPEAKER_00: That's for everything.
- 2:06SPEAKER_00: That's for graphics, that's for sound, that's for logic, that's everything.
- 2:11SPEAKER_00: Or Doom.
- 2:12SPEAKER_00: The original Doom took about a year to develop.
- 2:15SPEAKER_00: And you think today about projects and or games and how long they take to build.
- 2:20SPEAKER_00: Now, I don't think that today's development should look the same as it did 30 years ago.
- 2:27SPEAKER_00: But I do think there are important lessons to be learned from the idea of enforced constraints.
- 2:33SPEAKER_00: Those companies had enforced constraints that required them to do certain things in order to get to market.
- 2:40SPEAKER_00: In fact, I think that not understanding and utilizing enforced constraints is what is actively stunting the growth of developers today.
- 2:50SPEAKER_00: So let's talk about the lessons that I see in enforced constraints.
- 2:55SPEAKER_00: Number one, constraints make selecting technologies easier.
- 3:00SPEAKER_00: You might say, well, wait, constraints do?
- 3:03SPEAKER_00: Absolutely.
- 3:04SPEAKER_00: Because you don't have every choice.
- 3:06SPEAKER_00: Let's just say that your company uses an application or builds an application in.NET Framework.
- 3:13SPEAKER_00: That's older, it needs to be updated to.NET, but they have not done that yet.
- 3:17SPEAKER_00: And they say, hey, we want we want a new feature.
- 3:20SPEAKER_00: What language are you going to use?
- 3:22SPEAKER_00: Most likely.NET Framework or maybe.NET if you can get away with it using like a.NET standard bridge.
- 3:29SPEAKER_00: But you're not going to be choosing necessarily Java or Ruby or PHP or Rust or Go or these other languages because that doesn't fit in your current ecosystem.
- 3:41SPEAKER_00: It doesn't really mesh well with what you currently have, which means you don't have to spend six months doing prototypes on all these different languages to figure out which one works best and which one works best with our team and which what you know is best for us in the environment and all the rest.
- 3:57SPEAKER_00: You're constrained over which technologies you can use.
- 4:01SPEAKER_00: The same thing is true with if you use a certain database or have certain communication protocols you need to use with your application.
- 4:10SPEAKER_00: You're constrained to certain technologies because only those can do that.
- 4:14SPEAKER_00: Well, it does make selecting technologies a bit easier in that case.
- 4:20SPEAKER_00: Number two, constraints make timelines easier to plan.
- 4:24SPEAKER_00: Here's a shortened illustration.
- 4:27SPEAKER_00: Imagine you have one day to add a new feature to your application.
- 4:32SPEAKER_00: One day.
- 4:33SPEAKER_00: That's it.
- 4:34SPEAKER_00: If I said you must have that application published at 4 p.m.
- 4:39SPEAKER_00: today, you're starting at 8 a.m.
- 4:41SPEAKER_00: Which means you have exactly eight hours.
- 4:43SPEAKER_00: That's it.
- 4:44SPEAKER_00: That's all you have.
- 4:45SPEAKER_00: You can't, you know, somehow work extra time because no, 4 p.m.
- 4:50SPEAKER_00: comes in the same time no matter what.
- 4:52SPEAKER_00: Therefore, your constraints in that timeline actually make it easier to plan out.
- 4:59SPEAKER_00: Because now you say, well, I can't, I'm not going to spend four or six, seven hours planning.
- 5:04SPEAKER_00: That doesn't make sense.
- 5:06SPEAKER_00: I have to plan in the first hour at most.
- 5:09SPEAKER_00: And then I really can't spend a ton of time testing.
- 5:13SPEAKER_00: I've got to plan on, you know, no more than an hour for testing.
- 5:17SPEAKER_00: Which means that if I need some buffer time, I'm going to need to spend an hour for buffer time.
- 5:22SPEAKER_00: That's three hours I've got allocated now.
- 5:24SPEAKER_00: I only have five left to actually build the product or build the feature.
- 5:29SPEAKER_00: So that's all the time I have to build.
- 5:32SPEAKER_00: It makes planning your timeline easier.
- 5:35SPEAKER_00: Now imagine I came back to you and said, actually, you know what?
- 5:39SPEAKER_00: Just get it done.
- 5:40SPEAKER_00: Get that feature done.
- 5:44SPEAKER_00: And when you get it done, it'd be great.
- 5:45SPEAKER_00: You know, whatever that is.
- 5:46SPEAKER_00: Well, guess what happens?
- 5:48SPEAKER_00: Well, I've got this meeting coming up.
- 5:50SPEAKER_00: I should probably prepare for that meeting.
- 5:52SPEAKER_00: Oh, I've got this thing I got to get done as well.
- 5:55SPEAKER_00: Hey, there's this bug that popped up.
- 5:56SPEAKER_00: How do you fix that?
- 5:57SPEAKER_00: Or you start working in that feature and you go, oh, it'd be really great if we did this.
- 6:02SPEAKER_00: And you start adding other things, or you start doing other things, or something else with more priority pulls you away.
- 6:11SPEAKER_00: And next thing you know, it's been a week, two weeks, three weeks, and that feature's not done.
- 6:16SPEAKER_00: So constraints make timelines easier to plan.
- 6:20SPEAKER_00: Number three, constraints make the scope clearer.
- 6:25SPEAKER_00: Now, again, let's go back to our example of one day.
- 6:29SPEAKER_00: So you have five hours of actual coding to get all the work done.
- 6:34SPEAKER_00: And your boss comes to you.
- 6:36SPEAKER_00: Let's pretend it's not you adding the new feature, let's, or you know, the new scope creep.
- 6:40SPEAKER_00: Let's pretend it's your boss doing it.
- 6:42SPEAKER_00: Your boss comes to you and says, Hey, it'd be great if we could have these other things happen with this feature.
- 6:50SPEAKER_00: I have five hours, boss.
- 6:52SPEAKER_00: I can't get that done in five hours.
- 6:54SPEAKER_00: So it's very clear, you get to say, if I do that, that's going to take me two hours.
- 7:01SPEAKER_00: I have to take two hours out of what I'm doing currently.
- 7:04SPEAKER_00: Two hours worth of work isn't getting done.
- 7:07SPEAKER_00: And I don't have time to just say, well, I'll do this and that.
- 7:11SPEAKER_00: You know, you only have five hours.
- 7:13SPEAKER_00: You have a constraint.
- 7:15SPEAKER_00: It's clear.
- 7:16SPEAKER_00: Therefore, scope creep will have an immediate impact on your timeline and have an immediate consequence.
- 7:24SPEAKER_00: So it's much clearer that you can't do both.
- 7:29SPEAKER_00: So it makes the scope clearer.
- 7:32SPEAKER_00: This is all we can do.
- 7:33SPEAKER_00: Again, back to your time frame.
- 7:35SPEAKER_00: If you only have five hours, you probably can't design and build a database and add the feature.
- 7:43SPEAKER_00: So therefore, you just say, hey, what can we do with our current database?
- 7:46SPEAKER_00: We can do our current data structure instead.
- 7:49SPEAKER_00: It makes the scope clearer.
- 7:51SPEAKER_00: Because now you're not adding new databases and designing new systems to get the data to your front end.
- 7:58SPEAKER_00: You're saying, we have our current data and it's not perfect, but it's close.
- 8:02SPEAKER_00: Let's use that and you know, and just work on the front end or work on our the logic to take that data and present to the user.
- 8:10SPEAKER_00: So it makes your scope clearer.
- 8:14SPEAKER_00: Number four is that constraints provide clarity.
- 8:19SPEAKER_00: So when you're looking at what do we have to do, a constraint allows me to be much more clear on the overall process where you say, hey, you know what?
- 8:31SPEAKER_00: We can't do everything.
- 8:33SPEAKER_00: Again, scope creep.
- 8:35SPEAKER_00: We don't want to have timelines to overrun.
- 8:38SPEAKER_00: We can't choose any technology possible.
- 8:41SPEAKER_00: So it provides clarity to your project.
- 8:44SPEAKER_00: It makes it a whole lot easier to make decisions because you have clear limitations.
- 8:50SPEAKER_00: Back at Super Mario Brothers, they had very clear limitations on the size of that project.
- 8:57SPEAKER_00: It could not be five megabytes, even.
- 9:00SPEAKER_00: It had to be very, very small in a kilobyte range.
- 9:03SPEAKER_00: So therefore, that provided clarity to them of the things they could not do.
- 9:08SPEAKER_00: And therefore, they had to be inventive about what they could do.
- 9:12SPEAKER_00: But they're very clear about hey, we can't just add, you know, a one-megabyte music file.
- 9:18SPEAKER_00: That just won't work.
- 9:19SPEAKER_00: We don't have space for it.
- 9:21SPEAKER_00: So what can we do?
- 9:23SPEAKER_00: And that provides some clarity because it allows them to say, we can't do all these cool things.
- 9:30SPEAKER_00: They're all cool.
- 9:31SPEAKER_00: Can't do them.
- 9:32SPEAKER_00: We have to focus on what we can do.
- 9:35SPEAKER_00: We have to focus on what's most important.
- 9:37SPEAKER_00: And that's the other thing constraints does, is that clarity comes with a priority list where you say, these are the most important things.
- 9:45SPEAKER_00: We have to get these done.
- 9:46SPEAKER_00: And the rest of the things, well, they're not quite as important.
- 9:49SPEAKER_00: You know, we'd love to have them.
- 9:50SPEAKER_00: And if we didn't have constraints, they'd be requirements.
- 9:54SPEAKER_00: But because we have constraints, we have to make decisions and cut certain things.
- 9:59SPEAKER_00: So constraints provide clarity.
- 10:02SPEAKER_00: It's like your budget.
- 10:03SPEAKER_00: If you have no credit cards, forget you have credit from it.
- 10:08SPEAKER_00: You have$100 and you have to buy food and you have to, you know, buy treats for yourself or go to the movies, or all of a sudden you look at that and say, I'm spending$150.
- 10:20SPEAKER_00: I can't do that.
- 10:22SPEAKER_00: So that those that constraint is going to provide clarity.
- 10:25SPEAKER_00: You say, hey, you know what?
- 10:27SPEAKER_00: I'm not going to go to the movies.
- 10:29SPEAKER_00: I'm not going to buy those treats.
- 10:31SPEAKER_00: I'm going to focus on let's get groceries first, let's pay the bills second, and then we'll figure out what we have left over.
- 10:38SPEAKER_00: That constraint provides clarity.
- 10:41SPEAKER_00: Now, if you add in credit in there, all of a sudden you don't have constraints.
- 10:45SPEAKER_00: And so all of a sudden you're like, well, I'm going to go to the movies.
- 10:48SPEAKER_00: I want to go to the movies.
- 10:49SPEAKER_00: I want to get a treat.
- 10:50SPEAKER_00: I deserve it.
- 10:51SPEAKER_00: And all of a sudden you're spending more than you make.
- 10:54SPEAKER_00: And that lack of constraint is going to provide problems down the road, just like with software development.
- 11:00SPEAKER_00: Now, I've talked a lot about constraints and how they're good and how they provide benefits.
- 11:07SPEAKER_00: But on the other hand, you've probably heard about or are thinking about the negative impacts that are associated with enforced constraints.
- 11:16SPEAKER_00: We talked about the gaming industry with Doom and with Super Mario Brothers.
- 11:22SPEAKER_00: Well, with Doom, they had a lot of crunch.
- 11:24SPEAKER_00: They worked a lot of overtime.
- 11:26SPEAKER_00: And in you know, in the game industry, that's considered kind of like a thing you have to do where you're gonna crunch.
- 11:34SPEAKER_00: It is what it is.
- 11:34SPEAKER_00: And they, you know, it's it's a fun word, crunch, but really what it means is working overtime, working more hours than expected.
- 11:42SPEAKER_00: And that's one of the negatives.
- 11:44SPEAKER_00: Another one is sloppy code.
- 11:46SPEAKER_00: You know, you don't have time to make it better.
- 11:48SPEAKER_00: Just get in, make it work, and then move on to the next thing.
- 11:52SPEAKER_00: Sloppy code.
- 11:53SPEAKER_00: Number three, burnout.
- 11:55SPEAKER_00: Just get tired of this constant go, go, go, constant deadlines looming over me and constant pressure to get the next thing done, and you just get burned out.
- 12:05SPEAKER_00: And number four, project failure, where they put constraints on it, but it didn't work.
- 12:12SPEAKER_00: And it blew up.
- 12:13SPEAKER_00: They didn't get it done.
- 12:14SPEAKER_00: And so the deadline slipped, or they ran out of money and they just failed.
- 12:19SPEAKER_00: And so these can be seen as the negatives of constraints, the negatives of this.
- 12:26SPEAKER_00: But the thing is, these issues aren't because of enforced constraints.
- 12:32SPEAKER_00: In fact, they come from unforced, unenforced constraints.
- 12:38SPEAKER_00: Basically, cheating.
- 12:40SPEAKER_00: If you need to launch something in four weeks, you have roughly 160 hours per person to work with.
- 12:48SPEAKER_00: If you count on 200 or 300 hours in that four weeks, that's cheating.
- 12:54SPEAKER_00: Instead, you need to cut out enough to meet the constraints or declare the constraints unattainable.
- 13:02SPEAKER_00: So when you say, hey, you know what, we need to get done in a month because we're gonna have enforced constraints.
- 13:08SPEAKER_00: If it's only about enforcing the date and not also the workload, that's not enforced constraints.
- 13:15SPEAKER_00: That's just saying, hey, we're going to squeeze you extra hard.
- 13:19SPEAKER_00: We're gonna make it crunch, we're gonna make you work overtime.
- 13:21SPEAKER_00: That's not enforced constraints.
- 13:23SPEAKER_00: That's cheating.
- 13:24SPEAKER_00: And that does lead to burnout and bad decisions and people who you know leave the company or or get frustrated because what happens is you just dump more work on people.
- 13:37SPEAKER_00: Now, I will say that it does work.
- 13:41SPEAKER_00: And that's that's the hard reality that you have to accept is that sometimes that cheating works because even in the cheating, you can only cheat so much.
- 13:51SPEAKER_00: Like you only have 168 hours in a week and you gotta sleep sometime.
- 13:56SPEAKER_00: So you can only work so many hours, and really when you work extra, you actually decrease your quality.
- 14:03SPEAKER_00: Therefore, you're not getting as much value out of it.
- 14:06SPEAKER_00: But there's only so much you can do, right?
- 14:08SPEAKER_00: So you're still working inside constraints, but they're unenforced in a way that you're actually saying two months worth of work instead of one.
- 14:18SPEAKER_00: So it does work because it's still constraints.
- 14:21SPEAKER_00: It's not ethical, and it's not something that I think should be done in most cases, unless there's a decision made by a team and there's outside forces can be part of it.
- 14:32SPEAKER_00: And you have to think that through because if you don't make a certain deadline and you you're gonna lose your job, maybe you do work over time, right?
- 14:40SPEAKER_00: So there are circumstances.
- 14:42SPEAKER_00: However, you need to figure out how to work within enforced constraints that include a realistic working environment.
- 14:52SPEAKER_00: Okay?
- 14:53SPEAKER_00: You need to cut out enough tasks to meet the constraints or declare the constraints unattainable.
- 14:59SPEAKER_00: Now, what does this have to do with becoming a better developer?
- 15:04SPEAKER_00: In order to become a better software developer, whether you're just starting out or have been a developer for years, you need to do a few things.
- 15:13SPEAKER_00: Number one, you need to improve your skills.
- 15:16SPEAKER_00: Well, what time frame are you putting on that?
- 15:19SPEAKER_00: What specific skills are you working on?
- 15:22SPEAKER_00: What's the order you're working on?
- 15:24SPEAKER_00: You see, I I hear a lot of people saying, oh, I'm working on improving my skills.
- 15:28SPEAKER_00: Okay.
- 15:29SPEAKER_00: By when?
- 15:31SPEAKER_00: Do you know?
- 15:31SPEAKER_00: Well, you know, I'm just trying to improve my skills.
- 15:34SPEAKER_00: So that's an unenforced constraint.
- 15:37SPEAKER_00: There's no cons there's no actual constraint there.
- 15:39SPEAKER_00: Which means that cost overruns gonna happen.
- 15:44SPEAKER_00: And the focus probably won't be there.
- 15:47SPEAKER_00: And the the um you know, what's important, what's not, it's not gonna be there because you don't have the limitations put on you.
- 15:58SPEAKER_00: Which specific skills.
- 15:59SPEAKER_00: Because if you say, well, I'm gonna improve my C sharp skills, great.
- 16:05SPEAKER_00: But then you start working in C sharp and you're like, oh, that JavaScript's kind of cool.
- 16:08SPEAKER_00: I want to learn some JavaScript.
- 16:10SPEAKER_00: And you kind of skip off to that.
- 16:11SPEAKER_00: It's still important.
- 16:12SPEAKER_00: It's still, it's still things you need to add to my skills.
- 16:15SPEAKER_00: Therefore, I'm gonna do that.
- 16:16SPEAKER_00: And then you're like, oh man, you know what?
- 16:18SPEAKER_00: Now you know a little bit of JavaScript, I'm gonna do React because React is kind of cool.
- 16:22SPEAKER_00: I'm gonna do some front end stuff.
- 16:24SPEAKER_00: You know, and then you skip there.
- 16:26SPEAKER_00: And so you don't have a constraint on what order, how much, what time frame.
- 16:33SPEAKER_00: And so you bounce around and again and get 20 years or 20 one-year experiences, or you know, 20 hello world experiences, and never any depth to anything.
- 16:46SPEAKER_00: And then no one wants to hire you because they don't think your skills are valuable enough.
- 16:51SPEAKER_00: No constraints.
- 16:53SPEAKER_00: Number two, things you need to do to get better as a developer is add to your experience.
- 16:58SPEAKER_00: Now, I said skills previously, this is experience.
- 17:02SPEAKER_00: What's the difference?
- 17:03SPEAKER_00: Experience is actually doing something with those skills, building something.
- 17:07SPEAKER_00: Again, are you building anything?
- 17:11SPEAKER_00: But then what's your time frame?
- 17:13SPEAKER_00: Well, I'm gonna I'm gonna build a demonstration of you know a customer relationship management system, a CRM.
- 17:22SPEAKER_00: Okay, cool.
- 17:23SPEAKER_00: By when?
- 17:25SPEAKER_00: Okay, what specific features are gonna be in that?
- 17:28SPEAKER_00: And what's your priority list?
- 17:30SPEAKER_00: What's your time frame?
- 17:32SPEAKER_00: What's your specific outcome you want to see?
- 17:35SPEAKER_00: Because if you just say, well, I'm gonna build a CRM and just, you know, kind of build it, which by the way, that's a really big project.
- 17:42SPEAKER_00: Don't do that one for your experience.
- 17:44SPEAKER_00: But let's say you did.
- 17:46SPEAKER_00: Well, what you're doing here is you're doing the same thing that the companies are doing.
- 17:51SPEAKER_00: They say there's no specific time frame for getting that done.
- 17:55SPEAKER_00: It's gonna keep getting pushed out and pushed out and pushed out and pushed out.
- 17:59SPEAKER_00: Well, if you have to wait two, three, four, five years to get your experience in some kind of skill, it's kind of too late, right?
- 18:07SPEAKER_00: You need to work on that right away and quickly and have a plan and a time frame, a specific outcome you're looking for from for.
- 18:15SPEAKER_00: So that's number two is to add your experience.
- 18:18SPEAKER_00: Number three is you need to prepare for a new role.
- 18:21SPEAKER_00: This preparation that comes with getting ready for a new role.
- 18:25SPEAKER_00: You have to figure out what skills to work on, upgrade your experience, but then you have to do things like work on your resume, your portfolio, work on practicing for an interview.
- 18:35SPEAKER_00: All these things are important.
- 18:37SPEAKER_00: Well, what's your time frame?
- 18:39SPEAKER_00: What's your list of things you're gonna do?
- 18:41SPEAKER_00: What's the outcome that you need to see from this work?
- 18:45SPEAKER_00: What are your constraints on that process?
- 18:47SPEAKER_00: Or is it just, I'm gonna get ready for it.
- 18:50SPEAKER_00: I'm gonna, I'll I'll work on it.
- 18:51SPEAKER_00: I'll I'll work on it.
- 18:53SPEAKER_00: That's an un that's unconstrained work.
- 18:57SPEAKER_00: Again, when's it gonna get done?
- 18:59SPEAKER_00: When it gets done.
- 19:00SPEAKER_00: It's no longer a top priority because other things are priorities.
- 19:04SPEAKER_00: If you notice in your life, the things you do are often either things you want to do that are kind of goofing off, or things that are constrained.
- 19:13SPEAKER_00: Things like, you know, I take the trash out every Sunday night at 7 p.m.
- 19:18SPEAKER_00: Why?
- 19:19SPEAKER_00: Because the trash goes at like six in the morning on Monday.
- 19:22SPEAKER_00: So if I wait until Monday to take the trash out, Monday at 9 a.m., it's too late.
- 19:28SPEAKER_00: So I have a constraint where I have to do it by a certain time.
- 19:32SPEAKER_00: Therefore, I do.
- 19:34SPEAKER_00: And things like that happen all the time.
- 19:36SPEAKER_00: You're gonna go to your kid's soccer game.
- 19:38SPEAKER_00: Well, guess what?
- 19:39SPEAKER_00: You're constrained by a certain time.
- 19:41SPEAKER_00: The game is at a specific time.
- 19:43SPEAKER_00: You can't choose that.
- 19:45SPEAKER_00: Therefore, you will have to make decisions around that constraint.
- 19:50SPEAKER_00: When it comes to preparing for your new role, if you don't have a constraint, then that gets pushed back and pushed back and pushed back because of the things that do have constraints.
- 20:00SPEAKER_00: And number four, I want to apply for a new job.
- 20:04SPEAKER_00: Okay, well, what's your time frame?
- 20:06SPEAKER_00: How often are you gonna apply?
- 20:08SPEAKER_00: What level of quality are you gonna do for every application?
- 20:11SPEAKER_00: That actually matters.
- 20:12SPEAKER_00: Your level of quality per application is really important.
- 20:14SPEAKER_00: How much time you gonna spend per week on this?
- 20:17SPEAKER_00: How many different things are you gonna do?
- 20:19SPEAKER_00: What are your constraints?
- 20:20SPEAKER_00: What are the outcomes that you need to see from yourself when applying for jobs?
- 20:25SPEAKER_00: Because just saying, well, I'm gonna apply when I find, you know, when I see something, or I'll do some job searches once in a while.
- 20:33SPEAKER_00: That's not a constraint.
- 20:34SPEAKER_00: Therefore, you're gonna bounce around.
- 20:36SPEAKER_00: You're not actually gonna see great success come out of it.
- 20:39SPEAKER_00: I'll give a little story.
- 20:41SPEAKER_00: When I was younger, I was in a job, but it wasn't a great job.
- 20:47SPEAKER_00: It um had a lot of downsides.
- 20:49SPEAKER_00: I really wanted a better job, and I was worth more than what I was getting paid for sure.
- 20:55SPEAKER_00: Like market rate was a whole lot higher than where I was at right then.
- 21:00SPEAKER_00: So I was looking for a new job, and it wasn't going well.
- 21:06SPEAKER_00: I spent years putting my resume out and trying to find new jobs and just didn't get a new job.
- 21:14SPEAKER_00: But when things got bad enough at my job where I'm like, okay, I'm done.
- 21:20SPEAKER_00: I'm out, I have to move.
- 21:23SPEAKER_00: It took just a few months and I was out.
- 21:27SPEAKER_00: I had a new job.
- 21:29SPEAKER_00: Because my focus changed.
- 21:31SPEAKER_00: It was I finally had a constraint where I said, I need to get out.
- 21:36SPEAKER_00: Now I didn't put a specific date on it or anything like that.
- 21:39SPEAKER_00: I probably should have to put a better constraint on it.
- 21:41SPEAKER_00: I was learning.
- 21:42SPEAKER_00: But that constraint of I need to get out motivated me to be more diligent about my job search, to be more diligent about when I applied, how I followed up, and when I applied how I customized my resume and how I talk to different people in the industry and try to make connections and all those things that you do to get a job.
- 22:05SPEAKER_00: All of a sudden I was doing those things because I had a constraint.
- 22:09SPEAKER_00: The constraints work.
- 22:11SPEAKER_00: The question is, are you going to apply constraints to your project and goals?
- 22:15SPEAKER_00: I think it comes down to how serious you are about the outcomes.
- 22:18SPEAKER_00: If you're serious about the outcomes, set up tight constraints.
- 22:23SPEAKER_00: All right.
- 22:24SPEAKER_00: Thanks for listening.
- 22:24SPEAKER_00: And as always, I am Tim Corey.
- 22:27SPEAKER_01: Thank you for joining us for this episode of Dev Questions.
- 22:30SPEAKER_01: When you're ready to learn to think and code like a professional developer, head over to imtimcorey.com and enroll in a course.