Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building Developer Tools Your Coworkers Won't Hate (J on the Beach 2018)

Building Developer Tools Your Coworkers Won't Hate (J on the Beach 2018)

It's easy to complain about bad tools. It's harder to write a great tool yourself. Once you step into the shoes of an internal tools developer, you realize that you're balancing feature requests and constraints from a dozen different teams and an entire universe of complexity behind what should be a simple UI. In this talk, we'll talk about how to gather information about your users' needs, how to balance between conflicting requirements, and ways you can fail to build a tool that your coworkers want to use.

Amy Nguyen

May 24, 2018
Tweet

More Decks by Amy Nguyen

Other Decks in Technology

Transcript

  1. @amyngyn J on the Beach 2018 building developer tools your

    coworkers won't hate amy nguyen (@amyngyn) j on the beach | may 24, 2018
  2. @amyngyn J on the Beach 2018 hello! • observability engineer

    at stripe • excited about user experience design and education for developer tools • @amyngyn • amynguyen.net
  3. @amyngyn J on the Beach 2018 agenda • motivation •

    how to do user research • UX design principles ◦ command line tools ◦ data analysis tools ◦ build tools
  4. @amyngyn J on the Beach 2018 why care? • bad

    UX causes incidents. incidents cost money. • bad UX wastes time. time costs money. • bad UX creates hostility. hostility costs money.
  5. @amyngyn J on the Beach 2018 • talk to people

    ◦ one-on-one ◦ focus groups how to do user research
  6. @amyngyn J on the Beach 2018 how to do user

    research • ask the right questions ◦ don't ask questions that confirm what you were expecting ◦ dig deep, don't accept the first answer
  7. @amyngyn J on the Beach 2018 • communicate as you

    follow-up ◦ build trust ◦ confirm your solutions are the right solutions how to do user research
  8. @amyngyn J on the Beach 2018 • talk to people

    • ask the right questions • communicate as you follow-up how to do user research
  9. @amyngyn J on the Beach 2018 does anyone even know

    what that flag does? command line tools
  10. @amyngyn J on the Beach 2018 preview as the default

    • if your tool makes critical changes to infrastructure, don't allow users to make those changes accidentally ./run-script --confirm
  11. @amyngyn J on the Beach 2018 preview as the default

    • provide diffs of what will change
  12. @amyngyn J on the Beach 2018 be consistent % man

    -h Usage: man [OPTION] [SECTION] PAGE… [...]
  13. @amyngyn J on the Beach 2018 be consistent % less

    -h Value is required after -h (--max-back-scroll)
  14. @amyngyn J on the Beach 2018 be consistent • match

    arguments to your other tools • match arguments to historical usage
  15. @amyngyn J on the Beach 2018 don’t break existing tools

    • have integration tests for your internal tools • design with existing tools in mind cat ex.txt | grep hi | sort -r
  16. @amyngyn J on the Beach 2018 command line tools should

    • be consistent • integrate with the rest of your tools • provide previews and diffs
  17. @amyngyn J on the Beach 2018 everyday we stray further

    from unix philosophy • these ideas have been discussed for decades! ◦ rule of composition ◦ rule of modularity ◦ rule of least surprise
  18. @amyngyn J on the Beach 2018 command line tool design

    • provide previews and diffs • be consistent • integrate with the rest of your tools • for more, read "The Art of Unix Programming" by Eric S. Raymond (or just read the Wikipedia article!)
  19. @amyngyn J on the Beach 2018 does that data really

    mean what i think it means? data analysis tools
  20. @amyngyn J on the Beach 2018 rapid testing • users

    need a REPL or other way of quickly validating ideas
  21. @amyngyn J on the Beach 2018 discoverability • autocomplete •

    GUI or other menus for showing all the options
  22. @amyngyn J on the Beach 2018 correctness • syntax errors

    and highlighting • explanations for syntax errors
  23. @amyngyn J on the Beach 2018 explorability let me go

    back to the previous page don't lose my place if I refresh let me share URLs let me open in a new tab
  24. @amyngyn J on the Beach 2018 data analysis tool design

    • rapid testing • discoverability • correctness • explorability
  25. @amyngyn J on the Beach 2018 i don't know who

    broke the build because i don't know how to find the build build tools
  26. @amyngyn J on the Beach 2018 navigation • anticipate the

    most common actions ◦ find my latest build ◦ locate failing output ◦ rebuild • autocomplete!!!
  27. @amyngyn J on the Beach 2018 fail fast • if

    something is failing, don't wait to finish before showing the result to the user
  28. @amyngyn J on the Beach 2018 helpful messages at the

    right time • remind users to lint and unit test before kicking off a long build process • suggest corrections for bad input
  29. @amyngyn J on the Beach 2018 summary • communicate early

    and often with users • imagine the context in which users will use your tools • user experience and good design matters even for infrastructure tools