Upgrading generally works great with OS X; generally the upgrade process blows away the system/OS files and leaves your stuff untouched. In the normal case, "your stuff" is well compartmentalized away from system files so stuff works nicely.
With that said, as a developer sometimes it can be handy to do a clean install. For example, if you have any custom kernel modules, these will certainly be blown away in an upgrade. Additionally, developer tools installed in /usr/ can be interfered with, and in general the probability that something will be incompatible/broken is a bit higher.