How Computers Process Math, Time, and Money -Coumputers always start at 0, except sometimes -Grabel's Law: Two is not equal to three, even for very large values of two -Skinner's constant: That factor which, when multiplied by, divided by, added to or subtracted from the answer you got, gives you the answer you should have gotten. -Best's Law: If data resides in two places, it will be inconsistent -Estimating Time: Everything takes longer than you think or want. To estimate the time required for any given project, first guess at the time you think it should take; multiply that by two and change to the next higher unit of measurement. thus if you think you can complete a project in one hour, tell your boss you will need two days, if four weeks, ask for eight months. -The 90-90 rule of project scheduling: The first 90% of the project takes 90% of the time, and the last 10% of the project takes the other 90% of the time. -When you get a computer to do a job for you, the time you save will be spent watching the computer to make sure it works properly. -No matter how expensive you expect a system to be, it will always end up costing more. The Futility of programming -The computer is always right. Programmers are occasionally right. -Gutterson's Laws: Any programming project that begins well, ends badly. Any programming project that begins badly, end worse. -Klienbrunner's Corollaries: If a programming task looks tough, its impossible. -Farvour's Law: There is always one more bug. -Dykstra's Observation: If debugging is the process of removing bugs, then programming must be the process of putting them in. Hardware -Pournelle's Law: Cables do matter. When something doesn't work, always check the cables first. -Parkinson's Law of Data: Data expands to fill available for storage. -Atkinson's Seventh Law of Computing: All disk drives fill up. -Hardware/Software Paradigm: A program is a device to show up hardware faults; Hardware is the equipment used to show up software faults. The Customer is always wrong -You can make it foolproof, but you can't make it darn-fool proof. -When a system is designed so that fools can use it, only fools can use it. The Disconnect between English and Computers -Fail safe systems do. Operating systems don't. Machine-independent code isn't. -Applications don't apply; facilities don't facilitate; plug-ins always come fitted with the wrong plug -The two most abused words in all of computing are "user-friendly" Self-Evident Observations (Why didn't I think of that?) -Lansam's Laws: Everything depends. Nothing is always. Everything is sometimes. -Glasgow's Third Law: Quality is not free, but it is cheaper than the alternatives. -Atkinson's Third Law: If you need to read a computer manual, you can't. If you can read a computer manual, you don't need to. -Atkinson's Fourth Law: There will be one operating system, one programming language, and one philosophy of system administration only after there is one language spoken and one religion practiced on the face of the earth. -Glasgow's Fourth Law: If you can't describe it in writing, you can't build it. If you haven't described it in writing, don't try to build it. If its so small it doesn't need documentation, then it doesn't do anything worthwhile. -Laws of Revelation: The hidden flaw always remains hidden. Nature always sides with the hidden flaw, and yes, the univers is laughing behind your back.