These applications are meant to improve the way’s in which we live our lives, by allowing for the customization needed to integrate with a variety of users and workflows, you let users decide what kind of interactions they want to have with the system and how it can best serve them.
If something goes wrong with the system or a failure occurs, allow for easy ways for users to gracefully take a step back and correct it without too much cost to the user. By implementing easy ways to correct, you keep control in the users hands and the system is able to benefit from the users input.