The user experience of CI systems - Penguicon 2012

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

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.

Transcript of The user experience of CI systems - Penguicon 2012

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.