HACKER Q&A
📣 personjerry

How much time do you lose evaluating tech stack options?


Whether it's choosing Objective-C versus Swift, postgres or mongo, the best SaaS for A/B testing, or choosing the best Javascript framework, I've spent a ridiculous amount of time having to learn about the best options for a job.

Have you had the same experience? How much time did you spend on this problem in the last week? What tools do you use to guide your decisions?


  👤 __d Accepted Answer ✓
I deliberately don't spend much time on this. You could spend your whole life investigating and evaluating alternatives, but then you'd never get anything done. Of the maybe one hour a day I spend skimming news, popping tabs, and then reading more deeply on the interesting bits, maybe a fifth of that is looking at evolving my "stacks".

For things that are doing a decent job, I basically don't even consider replacing them. If something in the space seems to be picking up a heap of momentum, I'll make a note of it to investigate next time a project starts. More often than not, the hype has moved on by the time I get there, and I saved myself a bunch of effort.

For things that are an active point of pain, I keep a closer eye on alternatives. Mostly just keeping a rough mental list of what's becoming popular, and what their purported advantages are. At some point, I'll usually do a little toy project using one or two of them, just to see how they really work in practice.

So, eg. I've been using PostgreSQL since the late 90's. Pretty early on I chose it over MySQL, and I've been pretty happy with that outcome. I played with Mongo a bit, but ended up sticking with Postgres' JSON datatypes when I want a document model. OTOH, I have adopted Sqlite3 for things where it makes sense, and I'm still keeping an eye on time-series / columnar database alternatives.

I picked Python very early (I first used it pre 1.0, and had production apps using 1.1) and still use it a heap today. I've played with Go a bit, and in the right projects, I'd probably use it today, although the messing with generics encourages me to wait a little longer. I moved to Python3 with v3.7.

Knowing something well, and being very productive with it, counts for a lot. Stable, well-supported, well-known things are much better components of a stack than something that looks shiny, but is obsolete in a year or two. If something is good, it'll be around long enough that you can pick up it next time.


👤 daviddever23box
Good options may be better than best: simply, over-optimizing your stack component selection process almost always ends up with a painful U-turn in a narrow alley.

👤 TechBro8615
Hopefully less time than I lose choosing the wrong option, but unfortunately it’s difficult to know that in advance.

👤 bnt
Google “boring tech stack”