Latest / DevQuestions with Tim Corey / 059 Should I Build An App Or Buy An Existing App?
Transcript
- 0:00SPEAKER_00: Welcome to the Dev Questions Podcast with Tim Corey.
- 0:03SPEAKER_00: Join us each episode as we tackle the questions you are asking about a career in software development, understanding the industry, and new technology.
- 0:12SPEAKER_00: If you're just starting out or you want to grow stronger as a developer, this is the place to get your questions answered.
- 0:19SPEAKER_00: Now, here's your host, expert developer and online educator, Tim Corey.
- 0:26SPEAKER_01: Should I build an application or should I buy something that's close enough?
- 0:31SPEAKER_01: This is a question that comes up a lot with developers because we have the ability to build just about anything, but we don't always have the time.
- 0:42SPEAKER_01: So, what should I build and what should I buy?
- 0:46SPEAKER_01: Should I ever just settle for custom software?
- 0:50SPEAKER_01: Should I always get custom software?
- 0:52SPEAKER_01: These are the kind of questions we're gonna answer in today's episode of DevQuesti.
- 0:57SPEAKER_01: Now, I do have a bit of a bias here.
- 1:00SPEAKER_01: I have been a software developer for 20 plus years, so I do have a lot of opinions about that from the software development side.
- 1:10SPEAKER_01: But they probably aren't the opinions that you think they are.
- 1:15SPEAKER_01: My without knowing anything else, my suggestion is to buy the software.
- 1:21SPEAKER_01: Buy something close, something anywhere near in the ballpark of what you need rather than building something.
- 1:28SPEAKER_01: Now, let me explain why before you just think that I'm just tired of being a software developer.
- 1:33SPEAKER_01: I'm not, I love software development.
- 1:35SPEAKER_01: But let's think about the cost involved in building something.
- 1:41SPEAKER_01: Let's pick a small dollar per hour for America rate, let's say$25 an hour.
- 1:48SPEAKER_01: That's pretty much an entry-level or a little better than entry-level developer position.
- 1:54SPEAKER_01: $25 an hour.
- 1:56SPEAKER_01: If that's what your time is worth, and you decide, hey, you know what?
- 2:02SPEAKER_01: I'm gonna build this little software application.
- 2:06SPEAKER_01: It's gonna take me, let's just say, a week to do.
- 2:10SPEAKER_01: Because, you know, there's there's competitors out there that that do this, but none of them are quite right.
- 2:17SPEAKER_01: Well, if you are worth$25 an hour, and if it only takes you one week to do all the work, that's the equivalent of$1,000 that you're paying for that software.
- 2:34SPEAKER_01: Would you have paid$1,000 to any software vendor for their equivalent app?
- 2:41SPEAKER_01: Probably not.
- 2:42SPEAKER_01: If it's a small little thing, you're looking at$20,$50, maybe, maybe$100.
- 2:49SPEAKER_01: Well,$100 is the equivalent of four hours of your time.
- 2:54SPEAKER_01: So the idea that you spend a week on this, and let's talk about software estimation in a minute, but let's say you spent a week on this, that's the equivalent of spending$1,000.
- 3:05SPEAKER_01: Now you may say, well, Tim, that's great, but I'm not getting paid for this.
- 3:10SPEAKER_01: I'm not paying for my time, therefore it's free.
- 3:14SPEAKER_01: Well, yes and no, because you have the same number of hours in a day that I do.
- 3:21SPEAKER_01: You have the same number of hours in the day that everyone does.
- 3:26SPEAKER_01: How you choose to spend those hours a day is up to you.
- 3:30SPEAKER_01: But you don't have any more to spend than a rich person does.
- 3:33SPEAKER_01: You don't have any more to spend than a poor person does.
- 3:36SPEAKER_01: Now, there will be more requirements on one person's day versus the other because the fact that you have to eat.
- 3:43SPEAKER_01: So you have to have a certain number of hours you're putting in towards your job.
- 3:47SPEAKER_01: But at the end of the day, we all have a same number of hours.
- 3:51SPEAKER_01: So if you look at this and say, yes, this is worth 40 hours of my time, that's a significant investment from you.
- 4:02SPEAKER_01: Would there be a better option of how to spend your time?
- 4:06SPEAKER_01: This is the reason why I give two different paths for learning C sharp.
- 4:11SPEAKER_01: I have the free path and the paid path.
- 4:13SPEAKER_01: Now, the paid path is you buy the foundation in C sharp and you go through that course and it's gonna cost you a few hundred dollars.
- 4:21SPEAKER_01: And you might say, wow, that's a lot of money.
- 4:23SPEAKER_01: What's your time worth?
- 4:25SPEAKER_01: Because you only have a certain number of hours in a day, and if I can cut in a third the amount of time you have to spend studying, that seems like it makes sense.
- 4:37SPEAKER_01: But if you don't have the dollar amount, if you don't can't afford the$200, then you have to spend the three times as much time trying to figure out the free path.
- 4:48SPEAKER_01: So there is a bit of a balance here when it comes to time and money.
- 4:53SPEAKER_01: If you don't have money, then you can't afford to pay for it, then you may have to spend your time.
- 5:00SPEAKER_01: But if you have the option of time or money, which one do you want to spend, don't undersell your time.
- 5:08SPEAKER_01: If the software is worth$100 and you spend one week, that's like saying that your time is worth about$2.50.
- 5:20SPEAKER_01: Is it worth$2.50?
- 5:22SPEAKER_01: I'm hoping it's worth more than that.
- 5:24SPEAKER_01: So that's the first thing I look at.
- 5:26SPEAKER_01: The idea that my time is more valuable than the cost of whatever software I'm going to buy, as long as I can afford it.
- 5:37SPEAKER_01: So that's the first criteria I look at.
- 5:39SPEAKER_01: The next one, though, is the idea that when I estimate things, even as a decades into it software developer, my estimates are usually low.
- 5:52SPEAKER_01: We have a joke in my house about weekend projects.
- 5:54SPEAKER_01: My wife will say, Oh, can you do this?
- 5:56SPEAKER_01: It's a weekend project.
- 5:58SPEAKER_01: And I'll look at it and go, Yeah, it's a weekend project.
- 6:00SPEAKER_01: And it will be a month later before it's done.
- 6:03SPEAKER_01: Not because I'm slacking off, because I have to run the store, get parts, and I have to encounter a problem that I have to solve and all this extra stuff that takes additional time.
- 6:14SPEAKER_01: Well, the same is true for software development.
- 6:17SPEAKER_01: When you say it's gonna take me just a little bit to do, maybe it's gonna cost, you know, take a day.
- 6:24SPEAKER_01: Reality is it'll take you a week.
- 6:26SPEAKER_01: If you say a week, it's probably gonna take two or three weeks because there's gonna be unexpected things that come up.
- 6:32SPEAKER_01: So it's going to be longer than you think it is, which means it's more expensive than you think it is.
- 6:39SPEAKER_01: There's a lot of hidden costs there.
- 6:42SPEAKER_01: Now we're talking about time, not necessarily dollars, but it's still a hidden cost to building out this application.
- 6:51SPEAKER_01: But even worse is the idea that when you buy an application, you expect that over time the manufacturer of that application will give you updates, whether it's security fixes or bug fixes or new features that come out.
- 7:09SPEAKER_01: If you build an application, who has to put out those security fixes, bug fixes, and new features?
- 7:17SPEAKER_01: Well, that's you.
- 7:18SPEAKER_01: So over time, you'll get less and less value and become more and more expensive to build your own software.
- 7:28SPEAKER_01: So that's something to consider as well.
- 7:31SPEAKER_01: The idea that you have to maintain it, you have to investigate bugs, you have to fix bugs, you have to make sure that's secure, you have to make sure that the new features you put in the time to actually put in, otherwise, you don't get them.
- 7:46SPEAKER_01: And the the whole reason you bought or built something over buying it was because you wanted something that worked for you.
- 7:54SPEAKER_01: And if it starts to drift away from that, you start to lose any additional value you got over purchasing something.
- 8:04SPEAKER_01: So the question may come up, well, then why would you ever build software?
- 8:09SPEAKER_01: And like I said, my career is built on building software, and there's a lot of good reasons to build software, but I think the most important reason to ever build software is to give you a competitive advantage.
- 8:26SPEAKER_01: This is what really makes it worth it.
- 8:30SPEAKER_01: So I can do a lot of things.
- 8:33SPEAKER_01: I I own imtimcorey.com.
- 8:35SPEAKER_01: That website is not hosted by me.
- 8:39SPEAKER_01: It's actually hosted by a company called Teachable.
- 8:42SPEAKER_01: They do all the hosting, they do a lot of the systems and setup and handling, you know, uh courses and students and you know, giving out certificates and all the rest.
- 8:54SPEAKER_01: Why don't I do that?
- 8:57SPEAKER_01: Well, because it was gonna cost more than the time, like it more expensive in my time than it was the cost they charge per year.
- 9:08SPEAKER_01: So for a long time, it has been worth it for me to pay somebody else to do that.
- 9:15SPEAKER_01: However, there will come a time in the probably not too near future where I will move away from a hosted platform by somebody else and move to a platform that I control, that I have built, that I have paid for, which will be much more expensive than what teachable is.
- 9:37SPEAKER_01: But it will allow me to have a competitive advantage in my field.
- 9:43SPEAKER_01: So there is a time when that may shift.
- 9:47SPEAKER_01: When you are a company, I worked for an insurance company for a while.
- 9:51SPEAKER_01: They we built our own software for handling the insurance claims and create new policies and all the rest.
- 9:59SPEAKER_01: That's because it created a competitive advantage over other companies.
- 10:05SPEAKER_01: That was a good use of our developers.
- 10:09SPEAKER_01: Now, what would not have been a good use of our developers is to create the next OneDrive or Dropbox clone, because that's not really our feel.
- 10:18SPEAKER_01: That's not gonna give us a competitive advantage.
- 10:20SPEAKER_01: Yes, we could get exactly what we want, but it doesn't really benefit the bottom line of the company in any way, except make our lives a little easier.
- 10:30SPEAKER_01: And yes, saving time is important, but there is a balance there about is it a competitive advantage?
- 10:38SPEAKER_01: So that's the first thing I look at.
- 10:39SPEAKER_01: Is a software you're gonna build in some way create a competitive advantage for your company?
- 10:46SPEAKER_01: Now, if you're doing it personally, is it gonna create a competitive advantage for you?
- 10:52SPEAKER_01: That may be a portfolio piece.
- 10:56SPEAKER_01: If you decide, you know what, I want to redo this, I want to redo a to-do list, which everyone's done, but let's use it as an example.
- 11:05SPEAKER_01: If I want to redo to-do list because I think it can be done better, and I want to use this as a portfolio item, that could be a great competitive advantage because a potential employer could look at that, see the code that you write, see how you do things, and say, yes, I want you on my team.
- 11:28SPEAKER_01: So it's not just about that to-do list anymore, it's also about the fact that it can show off or showcase your skills.
- 11:36SPEAKER_01: So it can still be a competitive advantage, even if you're a solo developer.
- 11:41SPEAKER_01: Now, the next thing is when the software crosses the line between time and money.
- 11:48SPEAKER_01: So if let's just say the software does take me one week to create, based upon our rough numbers, that's a thousand dollars it would have cost.
- 11:59SPEAKER_01: But if that software can save me four hours a week, that is worth it.
- 12:07SPEAKER_01: Because I can look out and say, okay, four hours a week, yes, it took me 10 times as much to create it, but that just means that in week 11, it's paid for itself.
- 12:20SPEAKER_01: Now, you have to be realistic about this because if you actually spend 80 hours on it and the maintenance on it every week is about three hours, that's gonna be a lot longer to pay off, maybe even years to pay off.
- 12:35SPEAKER_01: That's not a great return on investment.
- 12:37SPEAKER_01: But if you can tip that scale where you are getting more time back than you were spending, that's another great reason to build software, as long as there's not somebody you can buy that will give you almost the same amount of savings.
- 12:54SPEAKER_01: So, and the third reason, and this is this is definitely a reality for a lot of people, you just don't have the money.
- 13:02SPEAKER_01: If you can't buy something, yes, build it.
- 13:05SPEAKER_01: If if this is gonna help you, then absolutely build it.
- 13:08SPEAKER_01: You should still think through though is this the right thing to build?
- 13:14SPEAKER_01: Is there an alternative I could do or something smaller I could do that would maybe not be the complete solution, but be a whole lot cheaper as far as time for me to do.
- 13:25SPEAKER_01: So there is a balance about buy versus build.
- 13:30SPEAKER_01: You need to be smart about when to build.
- 13:33SPEAKER_01: This is the trap of I can do it.
- 13:38SPEAKER_01: As a developer, I can do a lot, but I shouldn't.
- 13:43SPEAKER_01: I should be careful to manage my time, manage the resources that I have, whether it's money or time, to the best advantage possible.
- 13:53SPEAKER_01: I don't want to fall on this trap of saying, yeah, I'll do that, and it becomes one more unfinished project, or becomes just a drain on my resources where I can't do what I really need to do because I'm still maintaining a thing that kind of helps a little better than the off-the-shelf product.
- 14:13SPEAKER_01: Okay, so think about that.
- 14:16SPEAKER_01: Yes, I can do it, but should I do it?
- 14:19SPEAKER_01: Is there a an option out there that might be close enough?
- 14:24SPEAKER_01: And that's that's the danger, is we always think, yeah, but it really needs this feature, it really needs that feature.
- 14:30SPEAKER_01: Does it?
- 14:32SPEAKER_01: Is it really that big a deal?
- 14:34SPEAKER_01: Is it you know a deal breaker if it doesn't have that feature, or is it just not convenient?
- 14:41SPEAKER_01: Does it take you an extra 10 minutes a week because it doesn't have that feature?
- 14:46SPEAKER_01: Well, how many weeks is it gonna take before that 10 minutes adds up to how much time it's gonna take to build something?
- 14:54SPEAKER_01: So there's that can versus should trap.
- 14:57SPEAKER_01: Think it through.
- 14:58SPEAKER_01: I would encourage you, default to I'm going to buy something.
- 15:02SPEAKER_01: And with the amount of things that are out there for free on the internet, maybe even just get it for free.
- 15:07SPEAKER_01: I'm gonna get this free thing first before I look at building something of my own.
- 15:13SPEAKER_01: Not because I shouldn't build anything, because I want to make sure I build the right things, the things that make the most value for me.
- 15:21SPEAKER_01: Okay?
- 15:21SPEAKER_01: So that's my answer to the buy versus build question.
- 15:25SPEAKER_01: Thanks for listening to this week's episode of Dev Questions.
- 15:28SPEAKER_01: If you have any questions that you haven't found answers for in the previous archive, go to imtimcore.com, check out the podcast page there, or if you're watching us on YouTube, then put in the comments down below your suggestions for a future video.
- 15:44SPEAKER_01: Thanks for listening.
- 15:45SPEAKER_01: As always, I am Tim Corey.
- 15:48SPEAKER_00: Thank you for joining us for this episode of Dev Questions.
- 15:51SPEAKER_00: Tim is committed to making it easier for you to become a developer.
- 15:54SPEAKER_00: If you would like to help make more content like this possible, please like, subscribe, rate, and share Dev Questions.
- 16:01SPEAKER_00: You can also send your questions to questions at IamTimcorey.com.
- 16:06SPEAKER_00: Until next time, remember, you are too smart and your time too valuable to waste it making all the mistakes Tim did.
- 16:14SPEAKER_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.