37
The User Experience of Continuous Integration Systems Noah Sussman Penguicon 2012 Dearborn, MI

The user experience of CI systems - Penguicon 2012

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

Page 1: The user experience of CI systems - Penguicon 2012

The User Experience of Continuous Integration

SystemsNoah Sussman

Penguicon 2012Dearborn, MI

Page 2: The user experience of CI systems - Penguicon 2012

Chad Dickerson Describes the History of Etsy

Page 3: The user experience of CI systems - Penguicon 2012

Approximately 30 deploys a day,every business day, all year.

That’s one deploy approximately every twenty minutes, all day.

Page 4: The user experience of CI systems - Penguicon 2012
Page 5: The user experience of CI systems - Penguicon 2012

“an airport without an air traffic controller”Chad Dickerson

Page 6: The user experience of CI systems - Penguicon 2012

“Continuous deployment is Confidence-As-A-Service”

~John Allspaw

Page 7: The user experience of CI systems - Penguicon 2012

Cognitive Load

Developers are always maxed out.Every failed test is a context switch.

Page 8: The user experience of CI systems - Penguicon 2012

Busy, distracted people are not great at making decisions.

Good tools make it easy to make good decisions under pressure.

Page 9: The user experience of CI systems - Penguicon 2012

Every alert, test failure and IRC message must have a clearly actionable path to resolution.

Page 10: The user experience of CI systems - Penguicon 2012

What does it mean when a test passes?

Page 11: The user experience of CI systems - Penguicon 2012

The Active User Paradox

Page 12: The user experience of CI systems - Penguicon 2012

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

Page 13: The user experience of CI systems - Penguicon 2012

Declaring a program “bug free,” is an entirely

subjective excercise

Page 14: The user experience of CI systems - Penguicon 2012

Complete testing is impossible.

Page 15: The user experience of CI systems - Penguicon 2012

Sufficient testing is desirable.

Page 16: The user experience of CI systems - Penguicon 2012

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.

Page 17: The user experience of CI systems - Penguicon 2012
Page 18: The user experience of CI systems - Penguicon 2012

What is an unstable build?

Red means stop, what does yellow mean?

Red is scary, yellow isn’t scary.

Page 19: The user experience of CI systems - Penguicon 2012

Everyone’s build process is different.

Everyone’s CI is different.

UX conventions for CI are few.

Page 20: The user experience of CI systems - Penguicon 2012

Listen to your users

Page 21: The user experience of CI systems - Penguicon 2012

Iteratively modify the system to better meet the expectations of your users

Page 22: The user experience of CI systems - Penguicon 2012
Page 23: The user experience of CI systems - Penguicon 2012
Page 24: The user experience of CI systems - Penguicon 2012
Page 25: The user experience of CI systems - Penguicon 2012
Page 26: The user experience of CI systems - Penguicon 2012
Page 27: The user experience of CI systems - Penguicon 2012
Page 28: The user experience of CI systems - Penguicon 2012
Page 29: The user experience of CI systems - Penguicon 2012
Page 30: The user experience of CI systems - Penguicon 2012
Page 31: The user experience of CI systems - Penguicon 2012
Page 32: The user experience of CI systems - Penguicon 2012
Page 33: The user experience of CI systems - Penguicon 2012
Page 34: The user experience of CI systems - Penguicon 2012
Page 35: The user experience of CI systems - Penguicon 2012
Page 36: The user experience of CI systems - Penguicon 2012

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.