What is the difference between a softfork and a hardfork?
The difference is the type of update that is introduced to the protocol. A softfork is seen as a contraction of the ruleset within the protocol. Whereas a hardfork is a expansion of the ruleset within the protocol.
What are some of the reasons why you would do a hardfork?
A hardfork is usually the result of a democratic decision. Because of the consequences of a hardfork more will be taken into consideration before introducing this change to the protocol.
This also comes with more clarity about the upcoming change(s). It is clear when the update is introduced and when the network will transition since not adapted nodes will risk forking of from the main chain.
What are some of the risks with performing a hardfork?
The risks of a hardfork are mostly related to splitting the userbase of the network based on the adoption rate of the update. This means that it can cause people to leave the main chain en continue on the forked chain (as has happened with Bitcoin Cash, SV, Gold, Diamond).
Splitting up the community can also lead to a relative decrease in hashing power since a percentage of users will no longer be contributing their computing power to the main chain.