Design an experience. Make it as beautiful – and as emotionally resonant – as it can possibly be. Then adorn the core experience and content with only as much functionality as is absolutely necessary. Functionality – and software-based thinking in general – is like seasoning. A little is an enhancement; any more destroys the flavour, subsumes the artistry of the chef, and may well be bad for you.