Hardforks are OK when the whole community agrees to them. In this case, the witness / development community has come together 19 times to make significant coding improvements.
A few other major ones were: Restructuring the reward pool (HF17) & reducing the amount of Power Down Time from 108 weeks to 13 weeks (not sure what number this was)
If a hard fork happens between two groups who both disagree strongly - THEN it's a disaster. For example, that is why we now have Ethereum Classic (ETC) and Ethereum (ETH) - even then, both blockchains survived and are now thriving, so maybe it wasn't such a bad thing.