Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add CLI UX principles to repo #1158

Merged
merged 5 commits into from
Aug 16, 2016
Merged

Add CLI UX principles to repo #1158

merged 5 commits into from
Aug 16, 2016

Conversation

ryankeairns
Copy link
Contributor

When making changes to the command line experience, contributors should consider these guidelines for commands and output.

@thesentinels
Copy link
Contributor

@ryankeairns, thanks for your PR! By analyzing the annotation information on this pull request, we identified @adamhjk to be a potential reviewer

Signed-off-by: Ryan Keairns <[email protected]>
Signed-off-by: Ryan Keairns <[email protected]>
- Don’t treat flags as 2nd class citizens. Be aware of existing flags and consider how they can/will be used across multiple commands and subcommands.
### Make it Readable
- Familiarity, simplicity and readability make it memorable. Docs are useful, but we don’t want people having to continually refer back to them.
- Keep commands human readable and memorizable by using a sentence like structure `hab <noun> <verb>`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure how it would fit with your headings, but it feels like this would be better placed near the top, to give people context on Habitat's use of nouns and verbs before they are described in other principles.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call, moved that to top.

### Offer Timely Help
- Provide targeted/contextual help - make assumptions based upon their current setup (have they completed the install step?)
- Use flags to scope the help docs (normal/frequent, all, install, emergency)
- In times of emergency, provide a clear path to a human at Chef support (if possible) - remind of chef support email or phone number within help docs
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Capitalize the second "chef" here, to be consistent with the first.

@bookshelfdave
Copy link
Contributor

@ryankeairns this is wonderful!

gif-keyboard-8838935609578460050

- Write output with a clear messages that a) sets the stage with “what we’re about to do”, b) progress “what is happening now”, and c) “did it fail or succeed?” and if it failed explain why, then provide a recommendation/next step. If it succeeds, celebrate it with memorable/playful message.
### Expose Your Personality
- It’s a machine, but it doesn’t have to feel like one. Remind your users that there are people behind this product and that they care about your experience.
- Don’t overuse this principle by being overly silly or ever-present (that will be annoying), but a couple of inside jokes or playfully-worded sentences (especially during moments of success) sprinkled throughout keeps things interesting and personable (e.g. when a plan builds successfully out last line of output is “I love it when a plan.sh comes together.”)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"when a plan builds successfully out last line of output" reads a bit awkwardly.

Signed-off-by: Ryan Keairns <[email protected]>
@raskchanky
Copy link
Contributor

I notice inconsistent punctuation with the bullet points. Some of them end with periods, and some do not. It's probably best to be consistent all the way through.

@raskchanky
Copy link
Contributor

Awesome docs Ryan!

gif-keyboard-13705264673290811549

@ryankeairns
Copy link
Contributor Author

@metadave @raskchanky thanks for the feedback! I've made edits to all comments and should be ready for 👍 when the test finishes.

@raskchanky raskchanky merged commit e7c24e7 into master Aug 16, 2016
@raskchanky raskchanky deleted the rk/ux-principles branch August 16, 2016 16:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants