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

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.

780e86312035da00762813aa2e443ae8?s=128

Amy Nguyen

May 17, 2018
Tweet

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 does anyone even know

    what that flag does? command line tools
  11. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn be consistent

    % man -h Usage: man [OPTION] [SECTION] PAGE… [...]
  12. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn be consistent

    % less -h Value is required after -h (--max-back-scroll)
  13. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn be consistent

    • match arguments to your other tools • match arguments to historical usage
  14. @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
  15. @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
  16. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 does that data really

    mean what i think it means? data analysis tools
  17. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn rapid testing

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

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

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

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

    tool design • rapid testing • discoverability • correctness • explorability
  22. @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
  23. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn navigation •

    anticipate the most common actions ◦ find my latest build ◦ locate failing output ◦ rebuild
  24. @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
  25. @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
  26. @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
  27. @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
  28. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018 @necrobuffalo, @amyngyn thanks!