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

Building Developer Tools Your Coworkers Won't Hate (IndexConf 2018)

Amy Nguyen
February 21, 2018

Building Developer Tools Your Coworkers Won't Hate (IndexConf 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

February 21, 2018

More Decks by Amy Nguyen

Other Decks in Technology


  1. @necrobuffalo, @amyngyn Index 2018 building developer tools your coworkers won't

    hate adam barber (@necrobuffalo) amy nguyen (@amyngyn) index conf | february 21, 2018
  2. @necrobuffalo, @amyngyn Index 2018 @necrobuffalo, @amyngyn Index 2018 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 Index 2018 @necrobuffalo, @amyngyn Index 2018 who are

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

    motivation • how to do user research • UX design principles ◦ command line tools ◦ data analysis tools ◦ build tools
  5. @necrobuffalo, @amyngyn Index 2018 @necrobuffalo, @amyngyn Index 2018 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 Index 2018 @necrobuffalo, @amyngyn Index 2018 • talk

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

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

    to people • ask the right questions • communicate as you follow-up how to do user research
  10. @necrobuffalo, @amyngyn Index 2018 does anyone even know what that

    flag does? command line tools
  11. @necrobuffalo, @amyngyn Index 2018 @necrobuffalo, @amyngyn Index 2018 be consistent

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

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

    • match arguments to your other tools • match arguments to historical usage
  14. @necrobuffalo, @amyngyn Index 2018 @necrobuffalo, @amyngyn Index 2018 don’t break

    existing tools • have integration tests for your internal tools • design with existing tools in mind
  15. @necrobuffalo, @amyngyn Index 2018 does that data really mean what

    i think it means? data analysis tools
  16. @necrobuffalo, @amyngyn Index 2018 @necrobuffalo, @amyngyn Index 2018 rapid testing

    • users need a REPL or other way of quickly validating ideas
  17. @necrobuffalo, @amyngyn Index 2018 @necrobuffalo, @amyngyn Index 2018 discoverability •

    autocomplete • GUI or other menus for showing all the options
  18. @necrobuffalo, @amyngyn Index 2018 @necrobuffalo, @amyngyn Index 2018 correctness •

    syntax errors and highlighting • explanations for syntax errors
  19. @necrobuffalo, @amyngyn Index 2018 @necrobuffalo, @amyngyn Index 2018 data analysis

    tool design • rapid testing • discoverability • correctness
  20. @necrobuffalo, @amyngyn Index 2018 i don't know who broke the

    build because i don't know how to find the build build tools
  21. @necrobuffalo, @amyngyn Index 2018 @necrobuffalo, @amyngyn Index 2018 navigation •

    anticipate the most common actions ◦ find my latest build ◦ locate failing output ◦ rebuild
  22. @necrobuffalo, @amyngyn Index 2018 @necrobuffalo, @amyngyn Index 2018 fail fast

    • if something is failing, don't wait to finish before showing the result to the user
  23. @necrobuffalo, @amyngyn Index 2018 @necrobuffalo, @amyngyn Index 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
  24. @necrobuffalo, @amyngyn Index 2018 @necrobuffalo, @amyngyn Index 2018 summary •

    communicate early and often with users • imagine the context in which users will use your tools • anticipate what users want and make it as easy as possible to figure out
  25. @necrobuffalo, @amyngyn Index 2018 @necrobuffalo, @amyngyn Index 2018 thanks!