DEV Community

Doug Elkin
Doug Elkin

Posted on

What piece of tech do you regret choosing for a project?

We all try to choose the best tools for the job, but occasionally we may fall short. When did you choose unwisely? What have you learned in retrospect?

Latest comments (27)

Collapse
 
adamwdennis profile image
Adam Dennis

Not choosing NX for a monorepo, while instead spending weeks trying to bootstrap my project with internal libraries using yarn workspaces… glad I found NX shortly thereafter.

Collapse
 
shriji profile image
Shriji

Choosing angular over svelte.

Collapse
 
nombrekeff profile image
Keff

This might be controversial, but for me it has to be using React for a little project at work a few years back. I had recently started learning react and thought to use it at work, even though we hand't used it before and the project was really small and simple.

In retrospect I should've used something simpler, for example Svelte or even just plain html/js instead. Adding react made the project quite a bit more complex than it should've been. As the project is small we don't work on it often so whenever I work on it I have to refresh on react and it takes a bit of time to get stuff done.

Collapse
 
tinkermakar profile image
Makar

AG Grid in React

Collapse
 
lexlohr profile image
Alex Lohr • Edited

In hindsight, I regret choosing redux-observables, because a) redux requires more boilerplate than is good for your sanity and b) rx.js makes it simple to handle complexity and thus can trick you into adding unnecessary complexity to your code.

Collapse
 
aarone4 profile image
Aaron Reese

I chose to start a new admin panel app as a sister application to the public web app and went with Quasar V2, Vue 3, Vuex v4 with modules and Typescript.
Just too much cognitive load and poor documentation around getting Vuex4 to validate Typescript property with the module loader.

Collapse
 
fyapy profile image
aabdullin

Pinia is official state-manager for vue 3 now😁

Collapse
 
aarone4 profile image
Aaron Reese

Yup!
:)

Collapse
 
mistval profile image
Randall

Like some others, I chose to use Mongo once and later realized I probably should have gone with an RDBMS. But it's a minor regret, because using Mongo mostly went okay.

Another time, I was creating a project and using MySQL. This was for an internal tool, where uptime wasn't necessarily critical, but data integrity and safety was. I wanted to use Amazon RDS because I felt confident in their replication and backup capabilities. But the IT guys insisted that we use the company's own data center and OS volume snapshotting for backups. I objected a bit, but ultimately threw my hands up and said "okay whatever".

Shortly after I left the company, I got called up because the disk failed and the backups weren't restoring and they were in complete panic. Fortunately they were able to fix a backup image and recover from it, and then they migrated to RDS. So it wasn't really my decision but it stands out to me as a time when I should have stood my ground more firmly on a tech decision.

Collapse
 
eljayadobe profile image
Eljay-Adobe

I can't think of any tech that I've used in a project that I've regretted.

I have had projects where the tech we're using probably would have been better off if we had selected a different tech (e.g., if we had chosen F# instead of C#, or if we had chosen D instead of C++). But by the time those sour grapes came to light, it was not practical to switch languages midway through the project — and maybe it would have turned out to be be worse.

As I like to say, "If we switch from Windows to Macintosh, we wouldn't have all these problems. We'd have all new problems."

Collapse
 
pandademic profile image
Pandademic

People are gonna hate for this:

I chose react. For building a simple 4 page website. Worst mistake ever , it was super overcomplicated. Maybe I did something wrong? 🤷

Collapse
 
theaccordance profile image
Joe Mainwaring • Edited

I usually don't regret the piece of tech, I typically regret either the implementation, poor requirements gathering, or lack of foresight in understanding how that particular stack component evolved over time.

But onto the list:

  • Postgres: I have nothing against this DB, in fact it's my go-to when using a relational db, but implementing SQL requires an understanding of not only the syntax, but also how the DB engine operates. I've had teams bitten hard by bottlenecks we've created ourselves.
  • MongoDB: Another Database that I personally favorite, we've had regrets here with devs trying to use it as a relational db.
  • New Relic: Application Performance Monitoring is a pretty important tool when you're building at scale, but I got swindled by my account rep on cost projections when switching plans, the end result doubled my annual cost for the service. The service is good, but APM spend shouldn't be a comparable cost to cloud hosting or databases on my monthly expense spreadsheet.
  • Mailchimp: I pay this company $50k USD a year and receive zero human interaction with reps from the company. I would move off of them to someone else, but it's considered tech debt and gets prioritized as such.
  • Pre-Typescript JavaScript: I love JS, it's my bread and butter when it comes to what's driven my success, but it's 2022 and one of the SaaS products I manage is a 10 year old Node.js project. A lot of the foundation is based on outdated patterns (callback hell is an understatement) and APIs that have long since been deprecated. Given that the product is sold to the enterprise, the size of the project is not trivial and the lack of strong types and other pre-compiled safeguards means that it's an absolute pain to work on for anyone who's not intimately familiar with the codebase. Thankfully, we've stopped selling this product to new customers, with any luck we'll be able to off-board the remaining 20k users by the end of this year and turn off the lights.