Trending designs to inspire you
Work designers are riffing on
Interviews, tutorials, and more
Find your dream design job
An exclusive list for contract work
Find, contact, and hire designers
The #1 job board for creatives
Board for freelance & contract work
While it was possible to connect an Azure Pipeline to a GitHub repository, it required a lot of manual steps, including creating personal authentication tokens, copying URLs between services, and other relatively complex actions.
The goal was to make this process as quick and painless as possible, while still allowing a fair amount of control and customizability.
I was the lead designer for this project, supporting a team of about 12 engineers with one program manager over three months. I worked closely with the design system team as we defined new patterns and components to support this experience.
In our early investigations, we discovered that GitHub's new app model had the potential to simplify authentication and provide a more resilient connection between the two services.
We went through several explorations and prototypes for selecting a repository. While we had resolved the authentication challenges, there were performance and scalability limitations with GitHub's existing APIs. We fine-tuned the scoping of our queries to optimize for the most common cases. Still, we provided a means of selecting any repository to which the user or their organization had access.
At the time, our nascent design system didn't include a "stepper" component. We didn't have enough schedule runway to do a full round of usability tests on all of the explorations I had done, so we settled for hallway usability testing combined with our design system team's feedback on overall consistency.
For the final design, we settled on a pattern for the stepper component, and the design system team subsequently included that pattern. We solved the performance and scalability challenges even for users with access to thousands of repositories. We supported pathways that required additional configuration steps. We gave the user complete control over how they integrated their new pipeline configuration into their repository.