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

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

780e86312035da00762813aa2e443ae8?s=47 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!