Mike Campbell's Blog

Build Tech or Build a Product: Pick One

I'm a side-gig guy, and am always building products with differing goals.

I had a friend give me advice when it comes to building things for money that went something like "If you're building a product and you don't do it lean, fast, and MVP focused, you have a hobby. Which is okay, because hobbies are fun".

Not all of my projects have been with the intent to make money, most are hobby projects. But there's one I keep building and rebuilding, and haven't launched yet, and so I have to ask myself "is this a hobby?". Sometimes the answer is yes, other times the fire is lit beneath me and I'm deadset on getting this live and in front of customers, and it definitely isn't a hobby. The answer doesn't have to be constant, or consistent, but more on that later in another post. But all that will ever be lost in this situation is time I enjoyed spending on it. Very limited stakes.

I've worked at 4 different tech companies, and have seen varying degrees of "hobbies" wherever I've gone, where the stakes are far higher. Some people believe they can build a tool better, or that they couldn't find a tool that fit their needs perfectly, and so they set out to build their own. That can happen legitimately! Tech companies are built out of code that was made to solve a solution that didn't exist, or could be improved upon (hypothetically).

I've seen Kubernetes forked, 2 CLI deployment systems (the one I'm currently using is actually super legit and absolutely worth it), web component libraries built from scratch, massive, poorly documented internal libraries. Each of these, without exception, could have been avoided by using an already tried and true opensource solution that was tweaked to fit our needs.

People are paid, literally paid, to make sure opensource tools are managed correctly, and the collective community has it in their best interest that the tech is predictable, understandable, scalable, documented, and general enough to fit their target market. And there are closed-source solutions that are totally reasonable, too! I've worked at small companies that paid $10k+/month because it was cheaper and more reliable than dedicating $120k/year of salaried labor. The moment you choose to bypass a battle tested solution for a homegrown one, you take on each of those responsibilities, and at the expense of the company, and more importantly, your customer.

If I were signing up for a service, and on top of the monthly fee I saw "$3/month for our component library we built from scratch, $2.50/month for our custom CI/CD pipeline that we self hosted, and $0.25 for our custom logging solutions" I'd turn right around and not sign up. But we truly, and without acknowledging it, pass on these phantom costs to the customer. Some are opportunity costs in the form of features we couldn't develop because we were side-questing reinventing the wheel, or simply financial costs in supporting our self-hosted, half-baked solutions.

Be a product company, or a tech company, but don't try to be both.

Need to build a system because none can truly meet your needs? Opensource it. Even if no one uses it, if it's attached to your brand, and your anticipating visitors, things will be spruced up more than if your users are all internal and the only response to "does it have documentation/testing/reliability?" is "it's your only option, and I'm sure it's on the way".

Need a massive system that is a true overhaul of the entire market and you expect to disrupt the industry with your new shiny system? Sell it. Dog food it (use it internally) and sell it and prove to the world that it is indeed a better fit.

If either of these options make you uncomfortable, DON'T DO IT. It's a hobby. Hobbies are fun, but they don't make you money, and you shouldn't have the audacity to expect your customers to finance your hobbies.

Will this apply to everyone in every situation? No. Sometimes, your use case is niche enough to justify the cost, with the evidence based expectations that this solution will save time, money, boost UX, or DevX, to the extent that it is worth the investment. And there are constraints that can keep you from being able to opensource or sell your service as a product such as legal, proprietary, competitive, or you're just super niche and it wouldn't be worth it. But if your asking if that's the case, it probably isn't. You are not a Google or an Uber and you do not have Google or Uber problems, so you don't need internal Google or Uber scale solutions.

Don't be afraid to have hobbies. Hobbies are good. But don't confuse hobbies with building products

#Philosophy #Software