Sunday, April 4, 2010

David’s laws of specification

I still get a kick out of reading David Bayliss. This is from his 1997 article in Clarion Magazine, Computer Aided Disaster.
  1. The specification is always wrong.
  2. Insofar as the specification is right it is too vague to be useful.
  3. Insofar as the specification is right and specific it almost certainly doesn’t meet the system requirements.
  4. Insofar as the specification is right and specific and meets the system requirements when you get the specification it won’t when you finish the application.
The lesson is simple. Producing a program that meets the specification is a flawed, short-termist concept. What we should be attempting to do is produce a program structure that is able to meet the specification (model if you prefer), whatever the specification happens to be.

Saturday, April 3, 2010

Washington Rules

Courtesy of Al Kamen, Washington Post Staff Writer

Beleaguered voters seem confused and often outraged at the way Washington conducts business. That's because people on the outside don't understand how the game is played. Floating around the Hill, apparently for use as a training tool for new staff members, is a one-page guide entitled "Washington Rules" giving the basic rules that are key to effective play in Congress and throughout the government:
  1. If it's worth fighting for, it's worth fighting dirty for.
  2. Don't lie, cheat or steal unnecessarily.
  3. There is always one more son of a bitch than you counted on.
  4. An honest answer can get you into a lot of trouble.
  5. The facts, although interesting, are irrelevant.
  6. Chicken little only has to be right once.
  7. "No" is only an interim response.
  8. If at first you don't succeed, destroy all evidence that you ever tried.
  9. The truth is a variable.
  10. A porcupine with his quills down is just another fat rodent.
  11. You can agree with any concept or notional future option, in principle, but fight implementation every step of the way.
  12. A promise is not a guarantee.
  13. If you can't counter the argument, leave the meeting.