---
# System prepended metadata

title: Experience Design for `ytt`

---

# Experience Design for `ytt`

## Essence of Good Design


Optimizing:
- first experience: quick/effective learning
	- how likely can the user guess correctly *the first time* they use the feature?
	- how informative is the experience when they guess incorrectly?
	- how easily can the user map their need to the feature set?
- ongoing experience: easy to use
	- how easily do users remember the feature and syntax?
	- how much effort is required in writing, ongoing?


## Principles

- Compactness :: as small/short as possible, without omitting important information
	- relies on some implied understanding.



## Aspects of ytt UX

Users interact with:

- Docs
    - Locating Information
		- Navigating
		- Searching
	- Kinds of Information
		- Reference
		- Guides
		- Examples
- Error messages
	- the wording of the message, itself
	- the content of context given
	- the format of context given
- Feature names
  
  
## ytt User Characteristics

- How experienced are they with YAML?
- How experienced are they with the target system (e.g. Kubernetes, Docker, Concourse, ...)?
- How experienced are they with ytt?
- What they are doing?
    - "Authoring"
    - "Consuming"

## Scenarios

### Scenario: Author adds validations to their schema

Steps:
1. Through the docs, find the reference for `@schema/validation`
2. In that reference, match _their_ needs with the named rules:


