Have a compelling reason to use voice:
Voice is a relatively new way to interface with apps and devices and users have habits that are developed already with those form factors. The solution should present a compelling reason to use voice over those existing habits (i.e. touch, click, etc.).
Set user expectations and build trust:
The user should understand what is and isn’t possible with the system and if the system doesn’t understand or can’t respond it should handle those situations in an empathetic, honest and helpful way.
Make it naturally discoverable:
Traditional GUIs have labels and constraints that help the user to understand where to go and what the system can do. VUIs need to be more flexible and at the same time allow users to understand what is possible when they are trying to complete a task through natural discovery.
Mimic how people naturally speak:
A good way to help users complete their task is to ensure, as completely as possible, the system can understand and respond using natural language. Most systems are fairly constrained in what they can process and how they can respond.
Create context through modality and state:
If a GUI is available it is essential to take advantage of it to help create a good voice experience. Modality allows the user to go back and forth between using voice and traditional interaction methods and gives the user visual feedback. It is also important that the user understands what state they are in. Is the system listening? processing? responding? Audibly or visually it’s important to give the user an indication.