Don’t invent this here

Posted on

As I’m turning my upcoming icon set into a full project, I have to decide what to spend time on. If I do things that are unnecessary, I waste my limited time and energy. The same decision comes up a lot in most projects. Being able to build something ourselves doesn’t mean it’s always the best idea.

Preferring home-grown solutions over off-the-shelf products is so common it has a name. In software development, we call it the “not invented here” syndrome. We often believe that what we build ourselves is better than what we can buy or download from someone else. The code would be cleaner. The design would be neater. The system would be more secure. Maintenance would be easier. The library would fit our use case a lot better. Building it ourselves would be cheaper.

Sometimes, we’re right. Very often, we’re super wrong. I admit that I often decide based on ego instead of facts in these situations. That library the Product Owner found doesn’t use TypeScript, but my version would. The calendar widget doesn’t cover one rare use case I like. My solution would be so much cooler, because I built it. I end up costing my clients, and now myself, more money believing I can do a much better job than these other people.

Right now, I’m thinking about what to do about the commerce side of Lovelicons. I’m going to offer a paid option on top of the free version. No shame in charging money for what I worked so hard on, right?

For that, I could build my own checkout process. Create a form, hook up Stripe, and start charging people’s credit cards. How hard could it be? It’s everything that comes after that first step that makes me stay as far away from this as I can. I’d also have to consider:

  • giving customers a way to download the product (more than once)
  • user accounts and passwords
  • creating invoices
  • applying the correct international tax
  • issuing refunds
  • generating discount codes

There’s a lot more you could add to this list. If I built it all myself, I would no longer work on a small project about icons. It would work on a full ecommerce solution that would take much longer to build.

I’m happy to not reinvent the wheel here. I’m going to use Gumroad instead, which solves these problems for me. Sure it costs money, but much less than what it would cost me to build my own store. Their product is also worlds better than what I would have glued together!

Shipping something is better than perfecting every last bit of it. Sometimes we need to check how expensive pleasing our own ego would be. It’s easy to lose sight of that when you’re paid for your time and not the value you create.

Let me tell you, undoing that relationship is an eye-opening trip. I wish I had learned this lesson much sooner.

Debug
none
Grid overlay