As a database person, this was hard to read. I wanted to find out what the problems are and solve them.
A db table with only 10k rows? Even a full table scan should be extremely fast.
And with SQLite - which I assumed runs in-process, but even if not, surely is running on the same physical server? Faster still.
Of course, the magic phrase in my head is “create index”.
I hope Julia posts an update!
Edit: I highly suspect the “slow deletes” problem is a classic “n+1” problem suffered by many ORM users, until they come to understand more about the underlying db interactions.
To the writer of the article: you missed a big opportunity with this article by not having an obvious link straight to your product, Castro, and by not telling us in a few words what it does.
It’s not too late to change the first sentence to:
> I had an idea when I bought [Castro](whatever_the_url_is), a XXX app, that human support…
The point is that you must make sure your product has the “CarPlay” type of features in order to get new customers for whom those features are must-haves.
Beware of spending your time only on adding new “cupholder” style features, which make existing customers slightly happier but don’t attract new customers.
Especially be aware that when you launched your product X years ago, some of today’s “CarPlay”-style features didn’t even exist. Your current customers are not asking for them, because they are mostly happy with your product as it is.
If you only listen to what existing customers are asking for, you might not even realise that these new “CarPlay” features are stopping you from getting certain new customers.
I have a chapter in my book Kill the HiPPO titled “Cupholders vs CarPlay”.
The premise of the chapter is that some features in software are like CarPlay when looking for a new car - they become an important must-have for the buying decision - as opposed to “cupholder” features, those features which are a mere minor improvement for existing users.
We switched to Valkey after the Redis license kerfuffle happened, discovered we were saving money on our AWS bill, and have no motivation to go back to Redis.
Well-written article, manages not to sound rant-y while describing the problem well.
I feel like part of the blame for the situation is that JavaScript has always lacked a standard library which contains the "atomic architecture" style packages. (A standard library wouldn't solve everything, of course.)
I think this “story” started when The Economist did a filler article about it. The Economist article was based on some pretty weak understanding and knowledge of Kiwis and their culture of spending time abroad.
From there the usual YouTube “experts” started stories on it. You know the type - they sound authoritative but they are basically regurgitating stuff from Wikipedia (or some Economist article) with some pretty screens and clickbaity thumbnails.
Ultimately, there’s nothing behind this story. As has been the case since Pakehas arrived, lots of Kiwis go abroad and spend lots of time abroad, some go back, and some don’t, and meanwhile NZ’s population continues to grow.
The trends grow and shrink based on relative health of the Aus and NZ economies.
My daughter spoke four languages at age 3. Not because she is gifted, but because she grew up in an immigrant environment. One language with me, another with my partner who speaks a different mother tongue than I do, and the two local languages where we live.
And this is utterly unremarkable where I live.
When we visit my family (who are all monolingual), they think she is a prodigy.
Fogbugz, if the first version even existed in 2000, was not a SaaS. Nor was Jira, by the way.
Both products were initially once-off purchases that you had to install and run on your own infrastructure, and with new, major versions packed with new features that you had to buy if you wanted, but could ignore if you didn’t.
The move to a SaaS model came years later for both products.
For many of us, the way we manage software projects has changed has changed so much since the days when Joel wrote this.
It was a different age, with different products. I’m sure there are still products built the old ways, but Joel was writing before SaaS and CI/CD and endless roadmaps.
> What surprised me was how much the ugly first version taught me that planning never could.
Fred Brooks, author of “The Mythical Man Month” wrote an essay called “Plan to Throw One Away” in 1975.
He argues much what you’ve described.
Of course, in reality we seldom do actually throw away the first version. We’ve got the tools and skills and processes now to iterate, iterate, iterate.
It takes me right back to 1998, making my first few web pages - with a hand-rolled index page. I probably used NotePad.
And how easy it was - I went from reading a “how to HTML” guide to having a page about whatever hobby I was into at the time in a single session. Can’t have been much more than an hour.
I guess I deployed via FTP, into the space my ISP provided.