Coding is not for perfectionists. If your goal is to develop the most elegant, legible, fastest, optimized line of code, you will never get something done. Everyone loves pragmatic developers.
So what’s the difference between a developer who seems to be moving fast and someone who spent an entire day optimizing a function?
In the eyes of non-technical founders and product managers, the former is preferable. As long as you give me a working product, I don’t care what’s underneath. Until it breaks.
As with many things, there is a sweet spot between brute-forcing bad code vs. spending two weeks reading before getting something done.
Ironically enough, it is not up to the developer. At least not for developers who don’t have management skills. It is up to the founders or product owners to decide what’s good enough.
If you don’t want to throw your entire development team into a “learning sprint” or an “overly engineered” solution, be clear about what’s the goal.
If you are OK with poor-quality code and non-scalable software and just want to get something done, be clear about it.
Developers will be as effective as the decisions you’ve made before they start coding.