The key for me is to reduce tech debt before I release. If I'm not dealing with tech debt, the actual programming shrinks, and I have time to deal with the other stuff.
>The key for me is to reduce tech debt before I release.
Also an indie founder, and I've had the opposite experience.
Early on, I focused a lot on elegant code that would minimize my maintenance burden long-term. Then I read Rob Walling's book, Start Small, Stay Small,[0] and he talked about how programmers are typically afraid of ever taking on tech debt because they've been in orgs that don't allow them to ever pay down tech debt. As an indie founder, you can pay down tech debt whenever you want.
I've found it more useful to accrue tech debt early on in a new project or feature because it's likely that the product will fail or that I won't end up having to touch the feature for years.
Every time I have to work on code that has tech debt, I pay down the tech debt a bit, so eventually the parts of my codebase that see the most change are the most flexible and maintainable. But a lot of my code has tech debt in ways that don't matter because the product flopped or I never ended up having to extend the feature beyond the initial implementation.
Solo bootstrapped SaaS founder here. I accrue a lot of tech debt, because (as others have pointed out) I can pay it back whenever I want.
That said, I often spend a lot of time and effort building generalized solutions, because these act as leverage down the road. So, while I might cut corners on many things initially, I will often invest a ton of effort into polishing a thing, if that thing can be reused all over the app and make everything work much better.
If that's unclear, here's an example: users need to configure columns in a table in my app. I could provide preferences for configuring that table (quick), or spend a month writing a general-purpose table configuration system that will allow all tables to be configurable. I will choose the latter.
Tech is one part and you're right that having a manic focus on tech debt will alleviate maintenance. But from my experience the most time consuming stuff is really customer service. Depending on what your product is, it'll likely not be 100% self serve. If it's expensive and not a lot of customers then they'll expect a lot. If it's cheap and a lot of customers then there will be a lot of people to service.
You can outsource some of this stuff depending on how technical the product is. But realistically your time will be spent talking to customers and coding, about 50/50. Even if you get coding down to half it's still a lot of work. And managing customers is a lot more mentally draining.
That's all to say that a 9-5 is not that bad in terms of work life. You can always sign off and kick things up to senior people. You generally do things youre good at, so you won't be expected to do customer service, accounting, marketing, sales or a million other things you gotta take on as an independent business
Having run a bootstrapped-SaaS, I can say that it's 100% correct that customer service is the dominant term, time wise. More importantly, it's often the only commitment that has urgency (updating the site or the app can usually wait a day or a week).
That said, in my experience customer support was usually tied to new accounts. They need a bunch of support at the beginning. But once they get going, you essentially never get support tickets as long as the app continues to function. We literally had customers go 5+ years without ever filing a support ticket.
Once we realized customers do not really want to engage you & would rather self-serve, we invested more in documentation, simplifying UX, etc. Huge benefits to our time commitments for new accounts. I have seen others reduce time investment by having office hours where any customer can join and ask any question. The founder spends an hour or 3 a week and is able to help N customers, and customers are able to help each other as well.
Honestly we did not focus too much on tech debt because most of the things we considered tech debt ultimately did not impact the operation of the business.
"The key for me is to reduce tech debt before I release. If I'm not dealing with tech debt, the actual programming shrinks, and I have time to deal with the other stuff."
This seems like everyone's dream and nobody's reality. Good luck.
Thank you! But I've already done it. I have been constantly refactoring over the three years I've been working on it. My tech debt is minimal at this moment.
Yes, but my point is that as you continue to code you are likely to encounter more tech debt, especially as you get more customers and as you need to make dependency version upgrades to address security vulnerabilities. A world without tech debt is a dream.
The key for me is to reduce tech debt before I release. If I'm not dealing with tech debt, the actual programming shrinks, and I have time to deal with the other stuff.