One of the things I started to work on after relaunching CoasterBuzz was the rewrite of a photo management app. Again. I can't even tell you how many times I've done this, especially for Guide to The Point/PointBuzz. And I need to do it again, this time because I want it to be more abstract so it can easily accommodate variations on photos, like DeepZoom photos (for the project Walt and I decided to do a year ago... we're right on top of that).
Why the rewrite? Because without having a level of abstraction, it's really hard to mix and match. It's the story that's in every book about design patterns, where they use dogs, cars or pizzas to illustrate the point.
Tonight I started hacking away at it again, to find that it's not very well defined at all. I'm not good at just writing some new code and refactoring it until it's in the right place. I tend to want to get it all right first, which means I get stuck easily on bigger problems instead of solving the smaller easier chunks.
What I think I have done is get the interfaces to a logical point, and now I can start work with the more concrete implementations.
Way too many ideas, way too little follow through.