Good enough is better than perfect. It is also way better than 'not yet done'. Always have targets in mind. Even green field explorative projects should have targets. Good engineers ship.
Abstraction and encapsulation is overrated. Premature generalization is the root of all evil.
Don't decide too early. If you can postpone a decision that doesn't delay your overall work, then postpone it. You may have more data later to take the right decision.
Don't optimize too early (premature optimization). Always try first the simpler approach, you will finish earlier, get simpler code and find out that some minor optimizations or not at all are needed. You should always check this with real world data / scenarios.
I like your way of thinking. A former team lead of mine used to say "Don't let perfect be the enemy of good". As a perfectionist, after a few hard lessons I couldn't agree more.
Abstraction and encapsulation is overrated. Premature generalization is the root of all evil.
Knowledge is no substitute for experience.
You cannot google what you do not know it exists.