Jenkins OSS Collaboration

image

Jenkins OSS Collaboration

📚
Overview

I developed a process for inter-org collaboration between open-source contributors and CloudBees employees, then refined the process while using it to usher design improvements into legacy UI. This work is as much about process design as it is about UX. Together with a front-end partner, I worked to help resolve two key Jenkins problem areas:

  • a communication gap between the different parties responsible for its maintenance
  • a long history of under-considered design decisions in the Jenkins UI

What is Jenkins?

  • Jenkins is the world's most powerful CI/CD platform
  • It is central to the DevOps industry, with 1,000,000+ developers leveraging its deep extensibility to manage continuous integration and deployment
  • Jenkins has been in development since 2004. It has thousands of contributors, a vibrant ecosystem of 2,000+ plugins, and a complex information architecture

The challenge

The opportunity

UI change proposal and review

Through consultation with CloudBees and open-source leaders, I developed a framework for proposing design changes in a manner that served both the best interests of CloudBees and the open-source community. I launched a SIG (Special Interest Group) with open-source contributors and established weekly meetings for discussion of Jenkins’ interface. My short-term goal was to develop UI design guidelines for the Jenkins project, and begin moving some incremental design improvements through this flow.

image

Open-source design guidelines

While formalizing that process, I documented extensive Jenkins design guidelines within the CloudBees organization to help future designers contribute meaningfully to the project. Documentation aligned with the themes outlined here, which paired with our CloudBees design principles to form a comprehensive framework for designers contributing to Jenkins.

Respect for open-source governance

Designing for extensibility

Designing cross-culturally

Testing the process

To test the resilience of this new process, I ushered in several simple but impactful changes to the Jenkins interface. I worked with a talented front-end partner within CloudBees to implement fundamental design considerations that were sorely lacking inside Jenkins. With each of these iterative improvements, we set out to:

  • Finesse the review process outlined above
  • Improve Jenkins’ visual accessibility
  • Establish a formal design foundation for Jenkins that future designers could build upon
  • Conduct technical analysis; identify and resolve inefficiencies

Initial UI improvements

For the first time in the history of the project, Jenkins users now benefit from consistent baseline styles that impact every native screen in the interface. Some of the improvements we implemented throughout Jenkins include:

Consistent color palettes

Reconsidered typography

Modernized common header

Improved navigation panel