The user experience of CI systems - Penguicon 2012


Published on

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.

Published in: Design, Technology, Business
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

The user experience of CI systems - Penguicon 2012

  1. 1. The User Experience ofContinuous Integration Systems Noah Sussman Penguicon 2012 Dearborn, MI
  2. 2. Chad Dickerson Describes the History of Etsy
  3. 3. Approximately 30 deploys a day,every business day, all year.That’s one deploy approximatelyevery twenty minutes, all day.
  4. 4. “an airport without an air traffic controller” Chad Dickerson
  5. 5. “Continuous deployment isConfidence-As-A-Service” ~John Allspaw
  6. 6. Cognitive LoadDevelopers are always maxed out.Every failed test is a context switch.
  7. 7. Busy, distracted people are not greatat making decisions.Good tools make it easy to makegood decisions under pressure.
  8. 8. Every alert, test failure and IRCmessage must have a clearlyactionable path to resolution.
  9. 9. What does it mean when a testpasses?
  10. 10. The ActiveUser Paradox
  11. 11. Users never read manualsUsers would save time in the longterm by learning more about thesystem. But thats not how peoplebehave in the real world ~Jakob Nielsen
  12. 12. Declaring aprogram“bug free,”is anentirelysubjectiveexcercise
  13. 13. Complete testing is impossible.
  14. 14. Sufficient testing is desirable.
  15. 15. So, what does it mean when a testpasses?The design of a CI system is all aboutmaking it possible to quickly makethat judgement call and to do it withconfidence.
  16. 16. What is an unstable build?Red means stop,what does yellow mean?Red is scary, yellow isn’t scary.
  17. 17. Everyone’s build process is different.Everyone’s CI is different.UX conventions for CI are few.
  18. 18. Listen to your users
  19. 19. Iteratively modify thesystem to better meetthe expectations ofyour users
  20. 20. Good tools make it easy to makegood decisions under pressure.All notifications must be actionable.We need to work toward establishinga UX design vocabulary for CI.
  21. 21. @noahsussman Mashable Cubicle Spy