gold.png

Spec Handoff Workflow

 

Spec Handoff Workflow

IBM case study


How we redesigned our team's handoff process, built a custom spec solution, and scaled it within our organization.

Mockup7.png

The Problem

 

The Problem

During my time at IBM, I had never been part of a team who really nailed the handoff workflow from design to development. Despite attempt after attempt to re-organize our team’s Box folder in new ways, the process of transferring production-ready spec files would always fail to remain organized and error-free.

The Project

In the fall of 2018, I finally got fed up; I decided to take a step back and see if there was a different way this problem could be solved. By the end of 2018, I had created a solution and deployed it to be used on my product team. In 2019–2020, I scaled this solution to four other product teams in the Watson Health organization.

in this case study, you’ll learn about:

The design team

Project Lead, Jane Depgen

Front-End Development, Luisa Neves

My role

– Evaluating old handoff process to identify pain points & user needs

– Exploring existing solutions

– Creating and documenting new process

– Designing UI for front end site

– Presenting solution to Watson Health-wide UX & Visual design guild

– Onboarding new product teams

 

What was our team’s old handoff process?

1ed.png

Step 1

Box Folders were created for different concepts, features, or pages of the product. Each designer may have their own working file, which includes all pages relevant to the particular page/feature.

2ed.png

Step 2

Whichever file includes a design that has been approved for development is used to package specs, generated by the Sketch Measure plugin. Sometimes these specs included outdated, irrelevant or WIP designs from the working file as well.

4.png

Step 3

The exported spec folder was saved into the same Box folder as the working files and the link was sent out to the development team via Slack/GitHub comment in the related issue. This was done ad hoc, for each design issue.

5.png

Step 4

Due to the structure of the exported specs, the Box link’s entire spec folder had to be downloaded locally in order for the user to view the interactive specs in a browser.

6.png

Step 5

By launching the html file within the downloaded folder, the user could then interact with the specs in their browser (Note: although viewing in a browser, this file is local, not a shareable link).

7.png

Step 6

Because the files must be downloaded, developers kept the downloaded files as their source of truth and would not receive updates when changes to the specs were synced to Box.

 

Why didn’t it work?

🔥 Lack of a controlled master file

Because there was no master file and no official review/approval process for the files being handed off, specs might accidentally include outdated, irrelevant, or unapproved designs.

🔥 No comprehensive release view

Because specs were exported from different working files for each issue being handed off, our team would have to refer to many specs to view a complete picture of an upcoming release.

🔥hosting/accessing the specs

Because specs needed to be downloaded locally to open, this prevented our team from being able to send/receive updates to the specs. This inevitably leads to confusion and unnecessary re-work.

 

What do our users need instead?

💡official review process

As a product team member, I need a clear distinction between work in progress concepts and production-ready work which has been prioritized, assigned to a release, and approved.

💡single source of truth

As a product team member, I need an organized, user-friendly, singular “source of truth” for all spec files which hosts a comprehensive view of each release.

💡improved documentation

As a product team member, I need more thorough documentation of when and what changes were made to the spec to ease the transition from design to code and improve asynchronous collaboration across teams and time zones.

 

Could any existing tools meet these needs?

invision-and-craft.png

InVision (Inspect mode)

The great thing about InVision is that everyone at IBM has access and there is Sketch integration via the Craft Plugin. The con? We were super disappointed by the inability to organize prototypes and create a folder structure.

THE VERDICT:

abstract-zeplin-kactus.png

Tools like Abstract, Zeplin, kactus

While new tools like these are exciting because they allow for better organization and team collaboration features (version control for design, finally!), the problem is cost. Unfortunately, our team is limited to using IBM-approved applications.

THE VERDICT: ❌

sketch-measure.png

plugins like Sketch Measure

Amongst all of the problems with our team’s old workflow, this free Sketch plugin seemed to be working well! The only problem here is that the exported html files are exported locally and in desperate need of site to host them.

THE VERDICT: Can we leverage the html?

 

So, what did we come up with?

screen-with-writing.png
 

What tools are we using?

github.png

for master file management

In our new process, we decided to go beyond leveraging GitHub’s issue tracking features and also leverage it’s file management capabilities. To contribute to our master files, designers will submit a Pull Request which must be reviewed and approved before being added to our GitHub repository and spec site.

github-pages.png

for Hosting the Spec Site

The biggest benefit of using GitHub for file management is that we can also leverage the free GitHub Pages site that comes with every GitHub repository to host our spec site! Because the specs generated by Sketch Measure are rendered through html, we’re able to easily publish the spec files to a shareable site.

travis-CI.png

for automating spec site builds

Travis CI provides us with automated spec site builds that are triggered by actions already in the user’s workflow. When a Pull Request is opened, Travis will post a link to a preview of the spec site where reviewers can explore the proposed changes without having to pull the branch and deploy the site locally.

 

How does our new handoff process work?

new1.png

Step 1

Our team continues to use Box to organize and edit our working files, breaking out different explorations and concepts as needed. By using Box Drive, we ensure that our teammates can always see our latest progress. Designers also add links to their Sketch files to their corresponding GitHub issues, for easy reference.

new2.png

step 2

When design issues have been reviewed, approved, and assigned to a release, they are moved to the “Ready for Repo” column on GitHub. This informs the designer compiling and cleaning up the new design work for the sprint which issues should be included in the next handoff to development.

new3.png

Step 3 (if new release)

If this handoff is intended for a new release, the designer will duplicate the previous release’s folder on their fork of the product’s repo within the GitHub Desktop application and rename as the appropriate release number – this way, each release will include a complete view of the product, not just what’s new.

new4.png

Step 4

The designer will create a new branch within GitHub Desktop to capture their new work. They will then compile and clean up the designs in the Ready for Repo issues and their corresponding Sketch files so they can add, edit, and remove content within the master file to reflect the new changes in this release.

Step 5

As the designer makes changes to the master file, they will also document a summary of the changes made in a Change Log. This simple markdown file is organized by date (always add newest date to the top of the file) and page type, so that viewers can know what changes to look out for, where to find them, and when the change was added.

new6.png

Step 6

When all changes have been made, the designer will use Sketch Measure to export specs, broken out by page type. We organize the “pages” in our Sketch file by the main pages found within our product so that specific content is easier to find. The designer will export every artboard for each page type that included updates.

new9.png

step 7

Returning to GitHub Desktop, the designer can see a summary of all the files they have updated. Sketch Measure automatically generates pngs of every artboard which GitHub uses to automatically parse which artboards were added, changed, or deleted. The designer can view visual “diffs” of these pngs to inspect the before/after of each image.

new8.png

Step 8

Once the designer has committed their changes in GitHub Desktop, they will open a Pull Request – essentially making a proposal to merge their changes into the main repository and be published to the live spec site. Designers include details from the Change Log in the Pull Request description and assign all relevant teammates as reviewers.

new7.png

Step 9

Assigned reviewers will review the proposed changes via a preview version of the spec site which includes the proposed changes, automatically generated and posted to the Pull Request by Travis CI. Reviewers can approve the request, leave general comments, or request changes. The PR owner makes changes as needed.

4.png

Step 10

Once the PR is approved, the new specs are merged into the main repository. This will kick off Travis’ automated process to publish the new work to the official GitHub pages spec site. We also set up a Slack integration that automatically posts a message in our product team’s Slack channel informing everyone that new work is available on the site.

6.png

Step 11

The team can now access the specs on the site and inspect the designs to their heart’s content! And finally… congratulations are in order! The product team has now successfully collaborated on a new release! High five! ✋🏼

 
 

So, after all that... did we solve the problem?

The short answer is… yes! 🎉 Shortly after launching and finding success with our own team, we were encouraged to help other teams adopt this process into their workflows as well. So far, we’ve successfully onboarded four other product teams with more on the way!

Here’s what a few of our users have had to say:

“The GitHub spec site has really helped collaboration with our design team and has given our dev team confidence we are implementing what is being asked. Having a single source of truth for the design has eliminated confusion surrounding multiple copies of specs, saving time and frustration. The ability to view previous releases, along with the reason for the changes, has given us the ability to easily tell when and why something was changed in the design.”

David S.

UI DEVELOPER

“The [product name] spec site has been fundamental to the improvement of communication and VD/UX implementation of our UIs. This has lead to fewer, more constructive meetings, improved quality control and partnership with Development, and a decrease in defects.”

Heather C.

VISUAL DESIGNER

“The spec handoff site has been very useful in our workflow. It provides us one source of truth for the spec that is to be implemented. The ease of inspecting colors, styles, and spacing saves a lot of guess work. I also love being able to easily look back and compare the visual designs with prior releases as well!”

Lisa D.

UI DEVELOPER