JoelSpolsky has a great article called "Things You Should Never Do" at http://www.joelonsoftware.com/articles/fog0000000069.html ---- '''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 thought of a number of exceptions, but perhaps they are not truly exceptions, but rather different opinions about what standard software should meet to be called "running". Sometimes the original author thought it ran, but others later didn't think so; "too buggy to fix". This judgement can be ill-supported or well-supported. We need another aphorism to address what to do with software that truly or supposedly isn't really "running". 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 Voodoo''''''Chicken''''''Math. ---- '''DontDumbDown''' 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. ---- ForBestResultsForgetTheBonus ---- "...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. ---- ThingsYouShouldAlwaysDo