DEV Community

Cover image for Programming as the Means of Last Resort
Zack Sheppard
Zack Sheppard

Posted on • Originally published at blog.zack.computer

Programming as the Means of Last Resort

There's a coming-of-age moment for programmers where you're checking out a product's website, you switch to their /pricing page, and immediately scoff "no way - I'll just build it myself."

Let's be honest - it's a little bit of a rush. You look at something that costs $20, $200, even $2000 and feel a surge of confidence. You know your field and your abilities well enough to understand (or at least guess) how this thing was built, and you feel powerful enough to do that work yourself.

Congratulations. Now stop.

It's a trap. You've heard the saying, "when all you have is a hammer, everything looks like a nail." Programming is like that but also you have the superpower to actually transform anything into a nail. But even if you are that strange superhero, sometimes it's still cheaper and easier to just buy some glue.

Sometimes you should solve it the easy way

It's time to internalize that programming is the means of last resort. This is the crux of what "no-coders" have figured out - you can actually build a reasonably good prototype for a huge majority of digital products without writing a line of code. Even as someone who loves to code and wouldn't personally go zero-code, it's time I start asking before I git init a new project: can I borrow this from somewhere or does it make sense to buy it?

"Borrow", if you can

Of course, if you can get exactly what you need for free, go for that. Your first thought here is probably to look for a snippet you can copy-paste off Stack Overflow, or an open-source Github project you can pull in via npm. Those are great instincts, but remember that sometimes free closed-source software can fit the bill as well. If you are starting a new mailing list, ConvertKit has a generous free tier. If you need to host a website, Netlify's free tier can cover you up to literally tens of thousands of visitors. Etc.

But this isn't especially new advice - so much of the web is built on the back of open-source packages from Apache to basically everything on npm. It's once you pass the limits of what is available for free that your engineer brain starts to trap you.

Buy, if you are able

There are so many small, repetitive tasks hidden within building a digital product that are trivial - both in terms of difficulty and price - that you can now solve with SaaS and PaaS tools thanks to the explosion in No Code. But first you need to to have a conversation with that voice in your head goading you into building it yourself. Remind it that building it yourself isn't the same as it being free. You have limited hours in your day, the same way you have limited dollars in your bank account.

As an example, last week I was writing a blog post about a lesson I learned while working on Tweet Sweep and I needed a simple website to link to for that work-in-progress. I know how to build websites, so I started on the ~2 hour journey of spinning up a simple Next.js site on Netlify. But then I remembered this post draft and I put down my hammer.

Instead, I signed up for Carrd - a No Code darling - for $14 / year. It took me 10 minutes, I made a website about 80% as good as the one I would have made from scratch, and I saved over an hour of my life. For me, this tiny transaction of 90 minutes of freedom for less than the price of a take-out dinner felt like the biggest win of my week.

Build, if you must

The cost-benefit analysis of buying a tool could go the other way, though. There are SaaS tools out there that precisely solve problems I've faced, but which unconscionable amounts of money (or who I would feel morally icky working with). While paying $1000 to save 50 hours is the same ROI as I was happy to take with Carrd, it's not one I would take for some simple reason: I don't have $1000 to stake on a side-project.

Worse, you might find that there is nothing out there that does quite what you want. For a number of reasons, I've moved away from Google Analytics for my projects to Plausible, but there's no reasonably-priced Google Analytics alternative for native applications (that I know about). So I'm out of luck if I want an affordable solution for native analytics.

Situations like these are why it's good to still have the hammer of being able to "make it yourself" in your back pocket. Building still makes sense if you don't have the budget to buy a premade solution or if a premade solution doesn't even exist to be bought. In those cases, you have the power as a coder to either find the time to build your own workaround.

But I know myself well enough to know that I can afford one, maybe two, of these construction detours in the course of a project. That is why I need to make programming my means of last resort. Every time I take the long way around, I risk coming to dread the project or getting so engrossed in one of those detours I'll wind up making it instead of the thing I was working on initially. So I have to be wise, ration out my attention, and keep my eye on the prize, as it were. I think that's the secret to how the No-Code community seems to turn out prototypes with such terrifying speed - if you're stringing together premade links into a chain you can move so much faster than if you get feel compelled to craft each link by hand.

Intro photo by Jurriaan Persyn - Licensed CC-BY-NC

Top comments (0)