The most important single aspect of software development is to be clear about what you are trying to build.
I don't think you should ever regret anything. Everything happens for a reason.
"Der Mensch ist der Hirt des Seins."