Understanding the goal is vital. Interaction design should aim complete a goal or solve a problem that the user is having. Designer must know what the goal to make optimal design choices is.
Workflow should be made as simple as possible. Goal is to complete the task at hand. Identify parts of the interaction process that are separate features. Remove all useless and rarely used features.
Withdrawing money from an ATM: - Insert card. - Input PIN. - Press withdraw money. - Input amount. - Remove card before the money so less likely to forget. - Receive the money.
Reduce user's cognitive burden. Real objects are also more fun than text-only buttons and menus.
Drag and drop is so used technique because it relates to the physical world.
Use the Hick's Law. The time required to make a decision increases for every additional option. Aim to keep the number of possible choices minimal and always under 7.
File, Edit, Selection, Window, Tools, Settings, Help
Interaction model should be learnable and memorisable. People will learn how the system works if you provide good feedback and there is no way to confuse different features. Practicing using the system should reduce errors and increase performance.
When you are withdrawing money, you start to remember where "withdraw money" button is on the screen.
Interaction should be consistent so people can learn to predict it.
When you are withdrawing money, "withdraw money" button should appear on the same position each time.
Possible actions should be highlighted. Make it obvious what is clickable and what isn't. Make links appear different from buttons that don't change the page. Also called affordances.
"Withdraw money" button should look like other buttons the user has get used on seeing.
Interaction should lead the person closer to fulfilling his goal. If you have features that don't bring user closer to his goal, they are futile and should be removed. This is the main point why people don't fill surveys or feedback forms.
I context of ATM, there should not be a confirmation message. "Are you sure you want to withdraw $20?" There might be a confirmation message if withdrawing more than $1000.
Prefer acting according to defaults over having a heavy application setup. Offer functionality to undo and settings to change preferences permanently.
When a chat application is installed, use default theme that can be changed from the menu, don't force users to select a theme at the startup.
Do, don't ask. Take a guess what user is trying to do but allow a way to undo all automatic actions. Usually the most secure option is the best default
Learn user preferences. Consider "Don't show this again"-check box or button on a notification. Use learning auto-complete.
When user has searched for "flowers", next time suggest "flowers" after writing "f".
Allow shortcuts. But never make a shortcut key the only way to perform an action. Know the shortcuts used already in the environment.
Prefer non-blocking notifications over blocking notifications. You should not show a blocking modal window if there will be only one button on it as user is not required to act. Use a notification.
Test your design. Testing with one user is a lot better than testing with none.
Interaction Design Tools
Stakeholder Interviews: Talk 1-on-1 to people within your client's organization or your own company. Your aim is to understand goals of the company better. Use with complex projects and distant clients. Avoid with small and short timed projects.
Requirement Workshop: Gather key stakeholders together to discuss problem domain and the product. For understanding business requirements better. Use with complex projects and distant clients. Avoid with small and short timed projects.
Ideation Workshops: Gather key stakeholders together to discuss design possibilites. For creating shared vision about user experience. Avoid if your client cannot see value in close collaboration.
Competitor Benchmarking: Evaluating competitors to determine their strengths and weaknesses. Use if multiple competitors exist or if your client and you both work in unfamiliar sector. Avoid if short on time or if you are really familiar with the sector.
Information Architecture: Map the organization of information inside the product. For making retrieval of specific information simple as possible.
Card Sort: Create items to sort, but leave few cards unnamed. Create containers to sort them into, but leave few containers unnamed. Go through the cards before you let the user start sorting. State that unnamed cards and containers can be named. Used to get navigation and information architecture right.
Task Models: Descriptions of the activities users perform in order to reach their goal. For ensuring that product matches expectations even without usability testing. Used to reduce the frequency that of usability testing required. Note that usability testing still is required.
User Journey: Visualization how users flow through your product. For designing more optimal routes so key tasks are the most easy to accomplish.
Sketches: Rough and partial interface design overviews. Usually hand-drawn on paper.
Wireframes: Rough interface design. Should include ways to explore, navigate and interact with the content. May be on paper or digital.
Prototypes: Detailed interface design demo. Should be usable in real usability testing.