The JIT Startup

A few nights ago, nearly two years after my co-founder and I wrote the first lines of code for Cronitor, I finally added the ability for a user to change their email address. Why did it take two years to add a near universal feature for any SaaS service? Truth be told, even though we’ve grown our customer base and the size of our app significantly during that time, it hadn’t been worth it.

A few days ago, after receiving a support request asking us how one might change their email address, I decided to quickly look at how many times we had been contacted about changing an email address. From what I can tell it’s been 9 times. 8 of them are still customers by the way.

Some quick math (~5 min/email * 9 email) told me we had probably spent more time updating the db manually than it would take me to automate it, and thus, unfortunately, the time had come to finally build it. It ended up being 47 loc in 5 files, and about 30 min total time including deploy.

My cofounder and I have been jokingly calling this “The JIT Startup” after the way some programming languages delay compiling code into lower level machine instructions until the code is actually called.

That edit email form is just one of probably a hundred features competing for our attention. And even though we use a bunch of great SaaS services to mitigate the need for writing our own solutions to common problems, it still requires a lot of time and code to write the glue layer to integrate with these services.

Here are just a few of the many things we’ve written software for in the past 18 months, and none of these are our actual product.

  • Collecting Payments
  • Changing Plans
  • Sending Invoices
  • Editing Payment Information
  • Editing Account Information
  • Sending Automated Emails
  • Managing Customer Support Requests
  • Billing Failures & Account Termination

Many of those have been multi-day projects that have required significant thought and investment on our part. And, it’s worth repeating, none of them are related to our core business — monitoring scheduled tasks and services. By the way, the only one of those we launched with was the first one — Collecting Payments.

We’ve been fortunate to find a niche for a product that many people actually have a need for (we were our own first customer, but that’s another story). But, it’s not dumb luck that we have been able to grow from weekend hack project to over 100 paying customers. Several similar projects have failed to gain the traction we have.

The JIT mindset helps us focus our priorities, and has helped keep our software flexible. Said in a single sentence it’s this:

Unless the project under consideration is immediately applicable to our core product, distribution, or will lead to a closed deal with a new customer, then delay doing it for as long as possible.

If you’re a software developer it’s especially tempting to justify spending more time on your software. You’ve worked with tangled messes of code in the past and suffered through others’ poor product choices. This is your chance to “do it right” from the beginning, but that’s a trap! Never write a line of code today that can be put off until tomorrow. Focus exclusively on the essentials, and handle everything else over a support channel.

Writing software is hard. It’s easy to convince yourself that if you’re working on something hard you’re working on something worthy of your time and attention. It’s a mistake we’ve personally made many times. Embracing a JIT mentality keeps our attention focused, our churn low, and our product ahead of our competition.

Cronitor is a simple monitoring tool for scheduled jobs, periodic tasks, external SaaS tools, and almost anything else.

Try Cronitor free for 2 weeks.