I am asking this because I was working on a FOSS project for many months and few bad initial design decisions and I had to spend a lot of time rewriting a lot things, and basically the project has come to a dead halt because it just not possible to fix those things now !
I dont want to repeat the same mistakes again :) I want to be more careful this time.
I just to know what the provable things and the best approaches for such projects - reinventing the wheel and repeating the same stupid mistakes is just not fun :)
:D