Today is one of those days where it's better that I take a blank sheet of paper and start drawing pretty boxes with lines between them and stay the @&*# away from the keyboard.
Design is the hardest part of coding. Writing a line of code to make it do what you want is a breeze. Figuring out what you want is the hard part.
By working out the issues on paper, I can find errors faster than if I were to simply hop in and start coding. Changes can be made with an eraser easier than they are redefining an interface then trying to shoehorn that change into preexisting code.
Every project where I do this type of design has withstood massive changes and the test of time. Every project where I'm rushed to get something out the door ends up needing to be rewritten in 3 months.
The problem with the current project is that it has everything to do with graphics and hence, developing unit tests are beyond my willingness to suffer. The other problem is that while it has everything to do with graphics, they are graphics that are built behind the scenes and therefor have nothing to do with a user interface (UI).
Hard, but this is the part of my job I love the most.