What is the difference between a softfork and a hardfork?
A soft fork tightens the requirements for valid blocks, after the update all new blocks will also be valid for not updated nodes. This will incentivise all nodes to update. The soft fork should dissapear after some time. A hard fork softens the requirements for valid blocks, after the update some new blocks will be invalid for not updated nodes. It is likely that some notes do not want to update and a separate chain will establish.
What are some of the reasons why you would do a hardfork?
It is a clear update with the option to chose for every node to update or not without economically forcing to update like a soft fork. Softening of requirements is thought to be necessary.
What are some of the risks with performing a hardfork?
When a seperate chain is established after update, this splits the community as well as the hashpower what reduces the security.