Upload
noah-sussman
View
2.159
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Software architecture and engineering culture converge at the Continuous Integration (CI) system. It is absolutely essential that a CI system be easy to understand. Every failed test is a context switch. Each test failure must be actionable, with a clear path to resolution. Unreliable or obscure tests will sow confusion and degrade confidence. Building a comprehensible, usable CI is a problem space that is new and largely unexplored by the User Experience community. I do not claim to have solved the problem. But I look forward to sharing screenshots, anecdotes, things that have gone wrong, and the story of how the color yellow turned out not to be as scary as I thought.
Citation preview
The User Experience of Continuous Integration
SystemsNoah Sussman
Penguicon 2012Dearborn, MI
Chad Dickerson Describes the History of Etsy
Approximately 30 deploys a day,every business day, all year.
That’s one deploy approximately every twenty minutes, all day.
“an airport without an air traffic controller”Chad Dickerson
“Continuous deployment is Confidence-As-A-Service”
~John Allspaw
Cognitive Load
Developers are always maxed out.Every failed test is a context switch.
Busy, distracted people are not great at making decisions.
Good tools make it easy to make good decisions under pressure.
Every alert, test failure and IRC message must have a clearly actionable path to resolution.
What does it mean when a test passes?
The Active User Paradox
Users never read manualsUsers would save time in the long term by learning more about the system. But that's not how people behave in the real world
~Jakob Nielsen
Declaring a program “bug free,” is an entirely
subjective excercise
Complete testing is impossible.
Sufficient testing is desirable.
So, what does it mean when a test passes?
The design of a CI system is all about making it possible to quickly make that judgement call and to do it with confidence.
What is an unstable build?
Red means stop, what does yellow mean?
Red is scary, yellow isn’t scary.
Everyone’s build process is different.
Everyone’s CI is different.
UX conventions for CI are few.
Listen to your users
Iteratively modify the system to better meet the expectations of your users
Good tools make it easy to make good decisions under pressure.
All notifications must be actionable.
We need to work toward establishing a UX design vocabulary for CI.
etsy.com/careers @noahsussman
Mashable Cubicle Spy