Consensus, or un-consensus, I meant.
Additionally, purposes of forks/ upgrades are important.
If upgrade comes from original core team with totally consensus, it should be called as upgrade.
Instead, if upgrade results in un-consensus, and the original core team or community divide into several parts with different visions and plans for developments after the update, it should be called fork.
as others pointed out, "hard fork" has a very specific definition. it simply indicates that a fork is not backward compatible with previous versions. it could be implemented by a protocol's core developers, or it could be implemented by random people.
whether a fork could be considered an "upgrade" is a subjective matter. if the fork doesn't result in a network split and it's implemented by developers of the reference implementation, most people would agree it's an upgrade. if there's a chain split, probably not.....