I’m a software engineer and I have been that for the last couple of years.
One of the things that was really hard for me to learn is to not take too much time developing a piece of software. When writing a feature or fixing a bug, every developer wants to be proud of what they write.
I used to over-engineer a small part of something I worked on which was so future-proof that we actually never fully used it.
The same piece of software can be written in thousands of ways.
Consistent code is important when talking about quality code. Code that follows style guides and rules is easier to spit through and work on than code that is all over the place.
Software linters can help ensure that your code is consistent and following predefined rules.
GitHub has a nice collection of code linters that you can use: Clean code linters
When you create relatively good code, you have time left. With the time that you have left, you can implement more features and fix more bugs.
Get back in a couple of months to this piece of code and you will see it’s still relatively good and you can continue to work on it immediately.
What I’m trying to say here is that when you spend less time perfecting the code, but still deliver okay quality, you can still work on it after a while without compromising in time.