Isn’t the word you are searching for called “code optimization”? (Which is technically building on something that is already built.)
“Code tinkering” by definition is casually messing around with the code to see what else can be done. Yes, they both are similar with one difference. Optimizing usually reaches the same result faster, while tinkering diverges into new ways to solve a problem. To make a quick example…
Redoing the bubble sort method… Optimizing.
Programming pacman, then attempting to do it again differently… Tinkering.
Refactoring your program… Mostly tinkering, tiny bit optimizing.
Optimizing and tinkering are close, but they are not always the same thing. Tinkering can actually broaden your thinking and make a better programmer. For business, obviously this is bad because you are on a strict time limit. In hobbyist projects not controlled by time, programmers should be given a little slack.
It really goes back to the whole needs thing though. All examples I’ve laid out above create 0% productivity. As far as a program is concerned, there is no gain from optimizing, tinkering, or refactoring except the time data takes to hit the user. Or, is it the fact that the result isn’t tangible a good reason not to pursue these methods.
I think that we know there are more factors than just tinkering that contribute to a program not being finished. Especially something as difficult as game making. When tinkering crosses the border into optimizing, I think that is the real problem that needs to be addressed. Of course, it is a problem that needs to be dealt with on a case by case basis and really a whole other bag of worms I don’t want to get into here. :persecutioncomplex: