I often do
later, when I install that, it creates in my source directory the dist/ directory and all files inside. Now I can do dist/bin/programname to execute it.
I use that recipe when I try out stuff that I plan to wipe again. And also when I want to have several versions of the same program parallel.
One thing you should be aware: if the program accesses ~/.programname as a config file (which it shouldn't, XDG says to use ~/.config/programname/xxx), and the newer version writes something into that file that the older version doesn't understand you'll have to sort that out.