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

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.

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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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.

    View full-size slide

  6. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018
    @necrobuffalo, @amyngyn
    ● talk to people
    ○ one-on-one
    ○ focus groups
    how to do user research

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  10. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018
    does anyone even know what that flag does?
    command line tools

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  13. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018
    @necrobuffalo, @amyngyn
    be consistent
    ● match arguments to your other tools
    ● match arguments to historical usage

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  16. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018
    does that data really mean what i think it means?
    data analysis tools

    View full-size slide

  17. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018
    @necrobuffalo, @amyngyn
    rapid testing
    ● users need a REPL or
    other way of quickly
    validating ideas

    View full-size slide

  18. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018
    @necrobuffalo, @amyngyn
    discoverability
    ● autocomplete
    ● GUI or other menus for
    showing all the options

    View full-size slide

  19. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018
    @necrobuffalo, @amyngyn
    correctness
    ● syntax errors and highlighting
    ● explanations for syntax errors

    View full-size slide

  20. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018
    @necrobuffalo, @amyngyn
    explorability
    ● back button
    ● refresh button
    ● RESTful links
    ● open in new tabs

    View full-size slide

  21. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018
    @necrobuffalo, @amyngyn
    data analysis tool design
    ● rapid testing
    ● discoverability
    ● correctness
    ● explorability

    View full-size slide

  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

    View full-size slide

  23. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018
    @necrobuffalo, @amyngyn
    navigation
    ● anticipate the most common actions
    ○ find my latest build
    ○ locate failing output
    ○ rebuild

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  28. @necrobuffalo, @amyngyn devopsdays Silicon Valley 2018
    @necrobuffalo, @amyngyn
    thanks!

    View full-size slide