So, I've been hacking away at Involgo as regularly as I can manage. During this prototyping phase, I'm just implementing everything in pure python objects and using the cPickle module for persistance of the database (or store as I call them in Involgo). I'm reaching the point where I want to move from this to a more robust backend, most likely using SQLite to store all the data.
This leads me to two related issues: I don't want to break the pickle code, because it may still be useful, mostly for in-memory, never-persisted stores that could be useful. And, I may at some point move to something other than SQLite. So, it seems I should decouple the backend that stores the data from the interface to the store, and everything else in the project, as much as possible. This is taking some time, both in design and implementation.
I just begin to wonder, when am I spending to much on good design and not enough on actually getting the work done, because I want to make sure its done right? What good is it to plan how to do it just right, if the work isn't getting done?