I try to stick with GOF as much as I can, and also use the SOLID principles. When it comes to design - I love to question it. And redesign as much as possible while at the whiteboard stage. So maintenance/development will be as easy as it gets.