AFAIK the terms 'soft fork' and 'hard fork' entered the lexicon from the crypto world, where they refer to software changes that split a blockchain into sub-chains. With a soft fork, the sub-chains remain interoperable. A hard fork makes them incompatible; what IRC greyhairs might call a 'netsplit'.
But AFAICT, these terms have since been repurposed by others to refer to something similar but different; 2 ways of forking any Free Code software project.
(1/?)