I came across the following sentence in one of Paul Graham's essays:
I think I can do this, but I have to figure out what I'm trying to do before I can figure out whether or not it's possible.
This might not make strict logical sense but it nicely sums up one of the problems facing software developers.
This is a modern variant of:
How can I know what I think till I see what I say?
E.M.Forster, Aspects of the Novel, 1927.