# 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: