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

Building Developer Tools Your Coworkers Won't H...

Building Developer Tools Your Coworkers Won't Hate (devopsdays Silicon Valley)

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 17, 2018
Tweet

More Decks by Amy Nguyen

Other Decks in Technology

Transcript

  1. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 building developer tools your

    coworkers won't hate adam barber (@necrobuffalo) amy nguyen (@amyngyn) devopsdays silicon valley | may 17, 2018
  2. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn who are

    we Amy Nguyen • observability engineer at stripe • excited about user experience design and education for developer tools • @amyngyn • amynguyen.net
  3. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn who are

    we Adam Barber • software engineer at nylas • excited about making usable software • @necrobuffalo • blog.taron.rip
  4. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn agenda •

    motivation • how to do user research • UX design principles ◦ command line tools ◦ data analysis tools ◦ build tools
  5. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn why care?

    • bad UX causes incidents. incidents cost money. • bad UX wastes time. time costs money. • bad UX creates hostility. hostility costs money.
  6. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn • talk

    to people ◦ one-on-one ◦ focus groups how to do user research
  7. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn 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
  8. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn • communicate

    as you follow-up ◦ build trust ◦ confirm your solutions are the right solutions how to do user research
  9. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn • talk

    to people • ask the right questions • communicate as you follow-up how to do user research
  10. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn be consistent

    • match arguments to your other tools • match arguments to historical usage
  11. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn don’t break

    existing tools • have integration tests for your internal tools • design with existing tools in mind
  12. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn preview as

    the default • if your tool makes critical changes to infrastructure, don't allow users to make those changes accidentally ./run-script --confirm • provide diffs of what will change
  13. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn rapid testing

    • users need a REPL or other way of quickly validating ideas
  14. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn discoverability •

    autocomplete • GUI or other menus for showing all the options
  15. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn correctness •

    syntax errors and highlighting • explanations for syntax errors
  16. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn explorability •

    back button • refresh button • RESTful links • open in new tabs
  17. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn data analysis

    tool design • rapid testing • discoverability • correctness • explorability
  18. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 i don't know who

    broke the build because i don't know how to find the build build tools
  19. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn navigation •

    anticipate the most common actions ◦ find my latest build ◦ locate failing output ◦ rebuild
  20. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn fail fast

    • if something is failing, don't wait to finish before showing the result to the user
  21. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn helpful messages

    at the right time • remind users to lint and unit test before kicking off a long build process
  22. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn 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
  23. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn 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