It's normal to constantly refactor because you don't like something, but there's an important difference: refactoring because you have a real technical block is necessary, but refactoring without having launched is often a form of procrastination.
This difference arises when you make decisions and act on them; that's when you'll make good decisions or make mistakes and therefore have to choose a new direction. But as long as you don't test, as long as you don't launch, if you only build or rebuild, there will never be progress.
I think we've all experienced that phase of continuous refactoring at some point. That's why today, what I can tell you is that my keys are:
- I choose the stack I feel most comfortable with for the project if I want to iterate quickly.
- If you want to experiment, test, or ideate, then I use whatever I feel like, but you have to know when you're in "production" mode and when you're in "study" mode.
- Launch your tools to production as soon as possible. This will make you see what you don't like and what you need.
Iterating and launching quickly doesn't just give you technical feedback; it takes away the mental weight of feeling like you're not moving forward.
That's why the most important thing is to differentiate between study mode, where you can experiment, and production mode, which is when you want to feel progress. In this mode, it's also okay to make mistakes, but here a mistake helps you choose another path; otherwise, you must keep moving forward.
Now, thanks to AI, programming is no longer the bottleneck; now the hard part is thinking and having the clarity to correctly guide the different Large Language Models (LLMs). If you do it, development is fast.
In my case, development speed has multiplied enormously; I can even work on several tools and not have too many dependencies, since designing my own systems is now very fast.
It's when you publish, not when you build or refactor, that you really see what you don't like or what is missing, and this is progress, this is learning.
If you don't know how to continue, just choose the option you like best. When you work in study mode, experiment, but if you want to go fast, stop refactoring.