Notes from the talk for the benefit of other viewers: One Principle: Every design decision should be made with the user in mind. Three Rules: 1. Deliberately design end-to-end workflows focused on what users care about. 2. Reduce cognitive load for your users 3. Provide helpful feedback to your users Additional Notes for Each of the Rules: 1. Deliberately design end-to-end workflows focused on what users care about. Good APIs are designed as holistic workflows, not as a set of atomic features Good APIs closely map to domain-specific notions that users are familiar with User-centric design is solution-oriented Checkbox-driven APIs are problem-oriented 2. Reduce cognitive load for your users Good software makes hard things simple Poor software makes simple things hard Automate everything that can be automated Minimize the amount of user input: infer what can be inferred Reduce number of steps in each end-to-end workflow Make steps simple to remember, consistent, intuitive Use consistent and standard naming conventions Provide good defaults. Good software works out of the box. Introduce as few new concepts as possible. Litmus test: If the cognitive load of a workflow is sufficiently low, it should be possible for a user to go through it from memory without looking up a tutorial or documentation after having done it once or twice. 3. Provide helpful feedback to your users Have a place where users can ask questions Invest in high-quality documentation Catch user errors early and anticipate common mistakes Provide detailed feedback upon user error A good error message should answer: What happened, in what context? What did the software expect? How can user fix it?
@aigonewrong.5 жыл бұрын
very nice talk - good points on library desgin or as a matter of fact writing any code... thanks for sharing!