# Efficient

> Commands are scannable, giving users just the right amount of information at the right time.

import Separator from '@site/src/components/Separator';

#

## Informing

- Keep users informed when processes are known to take time
- Give users time indicators when possible
- Use loading bars showing progress when possible
- Make things time out and notify users promptly
- Assume users need support

![Informing 1 - Do](https://www.figma.com/design/YSvLeddwfyjLx8G5QWOTCH/Documentation-Visuals?node-id=1035-9127&t=2JP2nlNciwS43htp-1)

![Informing 1 - Don’t](https://www.figma.com/design/YSvLeddwfyjLx8G5QWOTCH/Documentation-Visuals?node-id=1035-11427&t=2JP2nlNciwS43htp-1)

<Separator></Separator>

![Informing 2 - Do](https://www.figma.com/design/YSvLeddwfyjLx8G5QWOTCH/Documentation-Visuals?node-id=1035-9130&t=2JP2nlNciwS43htp-1)

![Informing 2 - Don’t](https://www.figma.com/design/YSvLeddwfyjLx8G5QWOTCH/Documentation-Visuals?node-id=1035-11430&t=2JP2nlNciwS43htp-1)

## Robustness

- Ensure your program validates user input
- Ensure your program can recover and bring the system back to safety
- Ensure your program terminates when it’s invalid or fails
- Ensure system resilience by implementing retries and failovers
- Ensure your program cannot be misused or abused

![Robustness 1 - Do](https://www.figma.com/design/YSvLeddwfyjLx8G5QWOTCH/Documentation-Visuals?node-id=1035-9133&t=2JP2nlNciwS43htp-1)

![Robustness 1 - Don’t](https://www.figma.com/design/YSvLeddwfyjLx8G5QWOTCH/Documentation-Visuals?node-id=1035-11433&t=2JP2nlNciwS43htp-1)

<Separator></Separator>

![Robustness 2 - Do](https://www.figma.com/design/YSvLeddwfyjLx8G5QWOTCH/Documentation-Visuals?node-id=1035-9136&t=2JP2nlNciwS43htp-1)

![Robustness 2 - Don’t](https://www.figma.com/design/YSvLeddwfyjLx8G5QWOTCH/Documentation-Visuals?node-id=1035-11436&t=2JP2nlNciwS43htp-1)
