I don't know if I follow the "I wouldn't buy that, I could do it myself" approach, for a few reasons:
- variable quality: you could do it, but could you do it as well? It's not really a boolean proposition
- updates/patches: you could reinvent the wheel, but do you want to spend your whole life updating all the various wheels you've accumulated? Paying for dev is also paying for support and upkeep, especially in the security space
- time value: this is the biggest one, there's an opportunity cost attached to pursuing commodity projects. You could write Quicken from scratch, but the $20 you save probably doesn't cover your effort. And unless you were really interested in the tax code, it's probably not very fun.
Following your example about food: we have a boutique salad restaurant near my house. It's like $7 for a salad, which seems absurd. But they're giant salads, and really filling, and most crucially they offer about 4 dozen toppings. I can't personally justify having a fridge full of salad toppings: it's a lot of work to keep stocked on fresh stuff, and I don't know how much money I'd really save after all the waste. So I pay a little bit for the convenience, and I can have my kale salad with chickpeas and grilled tofu and beets and whatever else ridiculous stuff I feel like. It's all fresh and delicious, and I don't think I could have reasonably produced it at home.
That attitude extends to software as well. If it does what I want, and it does it well, I buy it. Apparently a lot of chefs end up eating out a lot, because they don't want to cook when they get home from work.
I've struggled with this issue a lot. I think when you are still learning or have free time it is good to code or design your own solutions. But after a while you learn that you could spend 40 hours (or more!) coding something, or you could pay $50/month for it. If you value your time at more then a couple bucks an hour (I do), then paying for software is a pretty easy decision.
Also I'd far rather have a team working on making it the best software for the job, rather than what I could do on my own.
- variable quality: you could do it, but could you do it as well? It's not really a boolean proposition
- updates/patches: you could reinvent the wheel, but do you want to spend your whole life updating all the various wheels you've accumulated? Paying for dev is also paying for support and upkeep, especially in the security space
- time value: this is the biggest one, there's an opportunity cost attached to pursuing commodity projects. You could write Quicken from scratch, but the $20 you save probably doesn't cover your effort. And unless you were really interested in the tax code, it's probably not very fun.
Following your example about food: we have a boutique salad restaurant near my house. It's like $7 for a salad, which seems absurd. But they're giant salads, and really filling, and most crucially they offer about 4 dozen toppings. I can't personally justify having a fridge full of salad toppings: it's a lot of work to keep stocked on fresh stuff, and I don't know how much money I'd really save after all the waste. So I pay a little bit for the convenience, and I can have my kale salad with chickpeas and grilled tofu and beets and whatever else ridiculous stuff I feel like. It's all fresh and delicious, and I don't think I could have reasonably produced it at home.
That attitude extends to software as well. If it does what I want, and it does it well, I buy it. Apparently a lot of chefs end up eating out a lot, because they don't want to cook when they get home from work.