Things You Should Never Do

JoelSpolsky has a great article called "Things You Should Never Do" at

Never RewriteCodeFromScratch when the application is mature and strategically important.

Never throw out running software and start over. Instead, you should refactor it. It is always easier to refactor than to rewrite. I have long thought this, but did not have the courage of my convictions to state it so boldly. Once, when people asked me if their millions of lines of C code should be rewritten in C++, I told them "Sure. It needs to be rewritten. It would be just as good to refactor the C code and keep it in C, but your management won't let you do that, so you should pick a new language so you can rewrite it." That is about as far as I've gone. Now that I have his article to reference, I'll go further. -RalphJohnson

What's needed is a set of guidelines for when to re-write versus live with existing code.

Never do VoodooChickenCoding

"code and forget" moved to VoodooChickenCoding

What, is this something one should never do? Not every system is a production system, you know. My friend had a habit of making demo effects by mixing calls to sin() and cos() and combining multiple pictures formed thus in different ways. That's VoodooChickenCoding if anything is.

/That's because it is perfectly allowable in artistic contexts/

Actually, I would see that as being VoodooChickenMath.


Don't dumb down your exalted thoughts just because there are idiots around you. And, beware of experienced idiots. Remember "never to argue with idiots. They drag you down to their level and beat you with experience" [Dilbert]. -- SelvakumarGanesan

Note that if you don't find a way to communicate with the people who pay you, you may end up being smart in the gutter by yourself.

"NeverWriteaLineOfCodeWithoutaFailingTest." --KentBeck

....unless you're just programming for fun and don't care....

It depends on how much fun you want to have. Unit testing can go a long way in avoid ending up with a BigBallOfMud, which isn't fun.

Never use the gets() library function.

Use fgets() or getch() instead.

See CeeLanguageAndBufferOverflows for details.

(text moved to CeeLanguageAndBufferOverflows)

Never stick your poodle in the clothes dryer.

Never put a sock in a toaster.

Never sneeze while drinking rootbeer.

Never take the word never literally in these pieces of advice, instead take it in the appropriate spirit. Especially about the poodle. Exceptions to these rules exist, but the existence of exceptions doesn't invalidate the advice. NeverIsNeverNever.
"...get involved in a land war in Asia?" "Never go in against a Sicilian when death is on the line!" See BattleOfWits
Never say never. -- BrucePennington
Never kick a skunk.

View edit of November 24, 2014 or FindPage with title or text search