I think this is a little difficult to answer. But let me try. You program, but did you get it the first time the first time?
Well, my experience is that I start with some method and it really grows. After the tests are green, I look at it and consider that it is not enough. I am adding other methods that I am trying to "clear".
Now the API for a larger software package is not quite "small." And I'm sure you haven't even come close to what you find “good” enough from the start. However, if you release the API you are bound to. You will not make many friends violate APIS when you go. Therefore, if you are serious about your code, you will support different versions.
I suggest a look at the history of GTK. there is GTK 1.2.x and things beyond 2. We once wrote software in accordance with GTK 1.2 and were not “happy” because 2 of them turned out to be incompatible with 1.2. And so the software is still stored in 1.2.x GTK ...
So the usual way is not that you still have the old API, but it is broken. And therefore, programmers are not very happy to repurpose the API very early (IMHO)
source share