I think that problem what I had on the beginning was that I tried to make something in perfect way. With perfect architecture. Sometimes it was almost over-engineered but I was proud because of that. I was so stupid. I waste so much time because of that.
Problem of this way of thinking is that I cannot be sure that some solution, or project will be the right one. Sometimes client just says “No, I don’t like it”. Sometimes it is OK, but after a while there is revolution in project and this particular feature will be trimmed off.
I think that it’s better to be able to create several prototypes in not right way. But this gives opportunity to choose the best one, and if I am sure that this is right way I can spend some time to improve it. Even I can delegate this to someone.
In other case I’ve got crap what has been written in perfect way.