Knowing when to quit and start over. Sometimes whatever design or architecture you're working on isn't the right one. The trick is knowing when to admit you were wrong, stop and start over. The sooner you realize you've gone down the wrong path, the better. I've just spent too much time trying to embed a number of controls into a ListView in an efficient manner. I went so far as to override WndProc and try to do the scrolling myself. Ah well, a left/right pane approach is probably better anyway.