I'm not as smart as I like to think I am. Knowing that, I've gotten into a habit of trying to work out as many general principles as I can ahead of time, so that when I actually need to think of something, I've already done as much of the work as I can.
What are your most useful cached thoughts?
A few of the rules-of-thumb I've already pre-cached include:
- "Stay classy". Assume that whatever social interactions I have are going to come back to me in twenty years, so try not to make my future self too embarrassed; be as polite and respectful as feasible.
- "The rule of threes: for anything important, try to have at least three sources, including at least one under your own control". Adapted from some wilderness survival books, it also applies to anything from home emergency kits to internet access to news sources.
- "Assume I'm more likely than not going to get the worse side of the bargain." There are lots of people who are better than me at haggling, negotiating, and social sciences - in fact, I'm almost certainly somewhere down on the lower half of the bell-curve. So if it's possible to be taken advantage of in a deal, then I'm probably the one who's going to get taken advantage of.
- "Assume I'm more likely than not going to get the worse side of the bargain." Applied to the field of ethics; if an ethical system says that it's moral to shoot someone for stealing an ice cream, then I assume that someone is going to mistake me for having stolen it and try to shoot me; or, if it's supposedly moral for a rich man to charge a thousand dollars for a bottle of water, I assume I'm going to be the one crawling in from the desert.
- "It behooves every man who values liberty of conscience for himself, to resist invasions of it in the case of others: or their case may, by change of circumstances, become his own." I'm quite willing to steal ideas, including this phrasing of enlightened self-interest by Thomas Jefferson. (But I don't want this to become just another quotes thread.)
That should be a reasonable but not overwhelming sample of the sorts of ideas I mean, and am hoping to evoke more of with this post.
Example: testing a multiplayer game. Boundary cases: a game running with no players / max players. Extreme case: game running with a lot of lag and interference.
Generalizing this to: boundary cases lie on some kind of natural boundary. Extreme cases are for things that don't have boundaries (e.g. you can always have more lag).
Also boundary cases aren't necessarily extreme, e.g., if you have some kind of optimizing buffer that kicks in when there are at least 10 players, 9 player and 10 players (and going from 9 to 10 and conversely) are boundary cases but not extreme cases.