HN Hall of Fame Weekly email

Things You Should Never Do, Part I (2000)

www.joelonsoftware.com Essays & writing Essays & articles Software engineering Class of 2024-02 Hall of Fame
Screenshot of www.joelonsoftware.com captured 2026-07-20
Page preview · captured 2026-07-20

Resurfaced independently across 11 calendar years, with breakout response in 2 of them.

submissions
31
submitters
31
observed span
2016–2026
peak thread · 100 comments
157 pts
latest 20+ return · 2024-02-29
157 pts

Submission timeline

2007–2026

One slot for every year since HN launched. Height is that year's peak points; orange marks a 100+ point or 50+ comment breakout. Select a bar to open its strongest thread.

First comments on top threads

HN comment order

The main reason why developers do rewrites is because it is easier to read your own code than it is to read somebody else's code. Doing a rewrite means you only have to work with code that was written by your current coworkers or by yourself. This is also the core motivation behind all of the schemes to force a single coding style on all developers at the cost of performance and usually with an extremely complicated design for seemingly…

bdw5204·157-point thread·

I'm a big fan of Joel Spolsky's earlier blog posts, but to be honest, I don't think this piece has aged well. If anything, I'm more of the opinion now that you should almost always plan to do a rewrite, eventually. Lots of big companies successfully rewrite stuff all the time. Google is fairly well known for having rewritten large, critical pieces of their codebase over the years. If anything, what should be warned against is big bangs. Netscape's problem…

What you should do is write code in a way where rewriting parts of it is actually possible. If you don't do it that way you will eventually have to rewrite the whole thing anyways at some point. And this is done by drawing in the right amount of borders in the right spot. I am not saying microservices, but you need clear interfaces between your different layers. Rewriting is absolutely a chance to get things right but: 1. Never…

atoav·21-point thread·

>When you throw away code and start from scratch, you are throwing away all that knowledge. All those collected bug fixes. Years of programming work. >You are throwing away your market leadership. You are giving a gift of two or three years to your competitors, and believe me, that is a long time in software years. I think this is powerful, it's so magnetizing to follow the latest trends and consider everything preceding to be worthless or lesser, but ugly…

The first top-level comment from each of the four biggest threads, in HN’s own order. Excerpts are shortened; open a comment for full context.

Breakout years
2

100+ points or 50+ comments

Total points
386

reference only — not used in Hall rules or ranking

Total comments
200

reference only — not used in Hall rules or ranking

Every submission

DateTitle as submittedByPointsComments
2016-12-07Things You Should Never Do, Part IYahivin41
2016-12-08Things You Should Never Do, Part I (2000)kornish30
2017-01-17Joel on Software: Things You Should Never Do, Part I (2000)woliveirajr10
2017-07-28Stack Overflow founder Joel Spolsky on things you shouldn't do (2000)boyanpro10
2017-10-09Things You Should Never Do, Part I (2000)handpickednames10
2018-02-01Things You Should Never Docharlysl20
2018-04-27Things You Should Never Do, Part I (2000)telotortium50
2018-05-22Things You Should Never DoJwoods110
2018-08-24Things You Should Never Do, Part I [2000]otp12410
2018-11-24Things you should never do part I (2000)nilsocket41
2018-12-09Things You Should Never Do, Part I (2000)mxschumacher20
2019-01-09Never rewrite a software system (2000)pvorb10
2019-05-20Things You Should Never Do (2000)jdsully30
2019-05-30Things You Should Never Do, Part I (2000)wbsun20
2020-01-11Things You Should Never Do, Part I (2000)tosh80
2020-01-21Things You Should Never Do, Part I (2000)craneca010
2020-06-10Things You Should Never Do, Part Ioskarth20
2020-07-03Things You Should Never Do (2000)First breakoutHugoDias12883
2021-10-21Things you should never do (2000)enigmatic0210
2022-04-22It’s harder to read code than to write itjoenathanone152
2022-04-22Things You Should Never Do, Part Ithunderbong217
2023-08-17Things You Should Never Do, Part Ichuckhend11
2023-09-07It’s harder to read code than to write it (2000)deathemperor30
2023-09-11Things you should never do. Part Icompiler-guy10
2023-11-29Things You Should Never Dogls2ro21
2024-01-16Things You Should Never Do, Part I (2000)alexzeitler10
2024-02-29Things You Should Never Do, Part I (2000)Hall induction · Best thread · Latest 20+ point returnsealeck157100
2025-09-04Things You Should Never Do (2000)xrayarx40
2025-10-29Joel Spolsky: Things You Should Never Do (2000)jakey_bakey30
2025-12-16Things You Should Never Do, Part Ilionkor21
2026-02-19Things you should never do (Part 1)nedwin53