Under-engineering is an art

April 17, 2024

Over the years, we've seen package managers come and go. After reading some posts today about a new version of Bun on X, I wondered why I could never bring myself to switch from npm to yarn, pnpm, or anything else. Then I created and posted the following meme.

Package Managers Meme

30,000 views, 500 likes and lots of funny comments later, I thought it would be a good idea to expand on the topic and share a few thoughts.

I'm messing around

First of all, everyone stay calm. I am not a package manager guru. I also don't want to discredit any software or the people behind it. Bun is great. pnpm is great. Yarn is great. But npm is the GOAT. I'm obviously kidding. But...

Keep it simple

I value simplicity. Less is more. It's not always necessary to introduce a new tool just for the sake of it. In that regard, npm is probably all you need for most projects. pnpm is faster? Great. yarn has a better lock mechanism? Awesome. I personally never had any issues with npm, its performance or behavior. Never change a running system, especially if it's not broken.

Use the right tool

Of course, there are cases where it makes sense to switch. Or where it's even necessary. I'm sure there are many good reasons to use more advanced package managers. It all depends. Make decisions based on your needs. Don't just switch because it's trendy or because everyone else is doing it.

Solve a problem

Don't get lost in details. Don't overthink it. Your customers don't care how fast your packages are installed. Focus on providing value. Solve problems. Make your software better.

Don't over-engineer

Anyone can over-engineer software. It's pretty easy to add more complexity. It's much harder to keep things simple. To make things work well. Focus on that. It's going to get more complex over time anyway. Don't make it worse by adding unnecessary layers.

Change is great

Don't get me wrong. New tools are great. Technology these days is amazing. We're experiencing the best time ever to be a developer. But things evolve so fast, it's hard to keep up. Don't blame yourself if you're not using the latest and greatest. It's not always necessary. It's not always better. It's not always worth it.

Have a delightful day, regardless of which package manager you use.