After one or two years of development, many applications become excessively difficult to change. Developers waste a significant portion of their time fighting “cognitive friction” - looking for code, figuring out how to reuse existing code, understanding new APIs, making and fixing mistakes, etc. In this session, you will learn, through concrete examples, how to apply usability principles to reduce cognitive friction, helping you write code that does not become an obstacle to agility. You will take home a number of techniques that you can start applying right away.
This is a presentation in four parts:
Seeing friction
* Understanding cognitive friction
* Main types of friction
* Q&A
Guidance
* Understanding the phases a developer goes through when performing a task
* Improving navigation through the code
* Guiding users of yout code by using for instance static typing and the capabilities of modern IDEs
* Improving error feedback to keep the developer back on track
* Q&A
Alignment
* Understanding mental mappings
* Aligning code with the underlying concepts, removing duplication of concepts
* Q&A
Centering
* Understanding interaction contexts
* Splitting the application in several worlds where developers can focus on a problem without facing the complexity of the whole application (“Disney Effect”)
* Optimizing the code for given “Change Cases” (the most frequent kinds of tasks performed by the team).
* Q&A