Chris Kaminski


Linux Foundation Build Manage­ment Tool

Task flow for analysing a build
Analyse a build

The Yocto Project is an open source tool for creating customised Linux-based operating systems for mobile and embedded devices. Intel, the project’s sponsor, wanted to broaden the project’s appeal without alienating the existing community of command line-centric developers. They hired me to design a GUI which would help users of varying levels of technical ability manage the complexity of customising Linux builds.

Main dashboard

Working with the in-house UX lead, I began each iteration with a deep-dive workshop with the Yocto technical leads. I then created detailed task flows to help us understand the process of customising a Linux build. Next, we built a clickable prototype, remotely tested it with users around the world, and presented our findings and video highlights to the leadership team. To keep project contributors involved, we used a community mailing list for discussions and posted designs and test results to the project wiki.

Treemap showing package sizes
Package sizes

To win over skeptical developers, we initially focused on analysis tools which were awkward or nonexistent on the command line. These included a tree map to help developers see which packages are eating up precious storage space, a sunburst diagram to help them visualise the structure and location of files within their disk image, and a network map to reveal package dependencies.

Network map of package dependencies

The user test revealed a diverse group which varied in their tasks, work environment and experience. While they often disagreed about which tools were most useful they all found at least one tool that got them excited. On seeing the dependency tracker, one particularly sceptical user exclaimed, ‘Oh, now that would be useful!’

Build dashboard
Build dashboard