The user experience of CI systems - Penguicon 2012

  • View
    2.159

  • Download
    0

  • Category

    Design

Preview:

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.

Recommended