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.
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:
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.