This document provides an introduction to user-centric design (UCD) and interaction design (IxD) principles for building software. It discusses how UCD tools like personas, goals, and interaction loops can help design coherent experiences and increase agility, sanity and quality. While earlier software was system-centric, the focus is now on designing intuitive experiences through iterative collaboration using UCD and pairing it with Agile development methods.
10. Example products, bleeding edge, donât produce quality output, but stood out because, âholy shit this works!â.
11.
12.
13. context
In earlier eras of software development, applications were âsystem centricâ. The CPU, memory, and graphics
abilities were limited and therefore defined what could be done. The physical size of a punchcard determined how
much information could be carried. These limitations have evaporated, increasing flexibility, but requiring more
design guidance to produce coherent products.
15. software quality
over time
Over time, technical capability has improved, and so has collective knowledge about building effective & intuitive
applications.
16. daily use
Daily use software is especially demanding of an over-arching approach to maintain coherence, and intuitive
experiences.
17. improvement?
How many have observed improvements in software in the past 10-20 years? Clearly, the proliferation of effective,
intuitive software has increased.
19. tolerance for bad design
impatience / friction
Gmail, iPhone, Amazon, TurboTax, Pinterest have raised the bar. As builders, we must elevate our craft. Tolerance
for friction and incoherence has diminished.
21. an engineer should:
code
test
do the interface
prototype
manage
scope
spec
document
communicate
be fast
pontiïŹcate
know everything
Many, many things are expected (concurrently).
31. get out of our comfort zone
This requires revisiting the same thing 3, 4, 5 times. Being brutally honest. Keeping egos in check. Nurturing the
best ideas.
32. whatâs UCD?
What is UCD and can it help ameliorate these issues, and increase quality?
36. personas
(not actual people)
If you build based on actual person, given enough time, then that person will inevitably dictate features that are
specific to them. Examples; applications become entirely mouse-driven, keyboard centric, or focused on granular
data to the extent that they bury the key insights theyâre supposed to surface.
38. tasks arenât goals
A task is to secure-copy modified image slices to the server. A goal is to quickly replace content with an audit trail.
39. speciïŹcity
Goals need to be interrogated, refined, polished; not taken at face value in one discussion. Missed test cases,
incompatible features, and unanticipated risks come from a lack of specificity.
40. personal
Goals can be divided into 4 types. All types need to be considered. Example personal goals; 1. Donât feel stupid
while using application. 2. Commensurate effort: Help user feel like amount of effort makes sense for desired
outcome.
43. false
Some goals bleed into the realm of being a âfalse goalâ. Example: Reducing processor use is a false goal if itâs
invisible to users, and not anticipated to become visible (as more people use the application). These are means to
an end, not ends in themselves.
44. clarity of purpose
If clarity of purpose is lacking, the underlying goals need more attention.
45. IxD
Personas lead to goals. Goals lead toâŠan interaction with a piece of software. As a result, the discipline is called
Interaction Design > IxD.
46. how we experience software
Interactions reflect how we experience software.
47. how we experience software
loops
With each sitting, we go thru a loop.
51. not user driven
Many software teams find themselves stuck in patterns that look something like this. End-users are given override
authority to put anything into an application.
52. not user driven
This shift is subtle at first, but takes over, and then drives the entire endeavor.
53. not user driven
not user interface
elements
This leads to very granular interface and business element determination by end-users.
54. not user driven
not user features
timing
This results in an unmanaged flow of features, and expectations about time requirements.
55. not user driven
not user features
timing
FML!
Maintaining a coherent experience, reliable code, clean data becomes impossible.
63. canât be done by one
By definition, is a collaborative endeavor.
64. canât be done by one person
skill set
group
layer
This will fail if key pieces donât get skin in the game.
65. deïŹne our environment
We know how many products, but how many domains do we have? How many applications? How many platforms
should this turn into?
69. designing an entire experience
from sit-down to stand-up
Our overall goal is to design the ongoing software experiences that we require.
70. best in breed examples:
Amazon check-out
Gmail read/reply
Pinterest browse
JIRA list sorting
Thereâs good info out there! Donât reinvent the wheel.