Help, I need nobody!

Reducing developer overhead with a scalable self-service ecosystem

Company

IBM

Partners

1 Developer(s)

Platform

Desktop

Scope

Research
Product Design
Project Management

 

Overview

Publisher is IBM’s internal web-building and hosting platform used by 500 internal software teams and individual contributors across the organization. I was responsible for simplifying technical workflows through user research, interaction design and cross-functional collaboration.

 

Context

Despite multiple years of growth, Publisher, IBM’s proprietary site builder, operated with a relatively small team, creating ongoing tension between product development, user support and documentation maintenance. To protect development velocity, the team centralized support through dedicated Slack channels managed by rotating on-call developers, allowing the rest of the team to focus on business-critical initiatives at the cost of slower documentation updates.

 

On-site Support Chat: Improved proximity to documentation reducing the cognitive load of multiple tool windows and simplifies viewing local page links provided by the agent.

 

Problem

Over time, the w3 Publisher support channel had become the primary source of assistance, increasing strain to on-call developers that staffed it and creating an unsustainable support model where development hours were increasingly spent on repetitive support rather than product advancements.

 

Solution

Design an AI-assisted self-service workflow that can leverage existing artifacts to answer support inquiries, help keep documentation up to date and, ultimately, preserve developer hours for progressing the product roadmap.

 

Dashboard tab: Provides transparent performance metrics to help build trust in the system over time. As the agent learns from supplemental data and demonstrates increased reliability, users can make more informed decisions about when to reduce manual oversight.

 

Impact

89

development hours preserved during the first post-launch quarter.

65.15%

of support inquiries resolved without developer intervention during the first post-launch quarter.

32.9%

of AI-generated documentation approved without revisions during the first post-launch quarter.

 

Challenges & trade-offs

Project momentum vs. limited capacity

Because the team was understaffed, I had to step outside my role to recruit a developer, manage the project and establish a regular cadence for collaboration. Rather than treating limited capacity as a blocker, I created a working structure that allowed the project to progress alongside the team's existing responsibilities.

Technical complexity vs. scalable simplicity

Early in the project, we discovered that allowing an AI agent to re-open conversations in legacy support threads would introduce significant engineering complexity. Instead, we chose to have the agent summarize previous interventions and provide that context in a new chat when re-initiating conversations. This allowed us to preserve the intended workflow without introducing unnecessary complexity, reinforcing the value of shipping the simplest solution that could scale.

AI capability vs. content quality

Inconsistent formatting across documentation made reliable parsing and retrieval more difficult, revealing a constraint that wasn't immediately obvious when we began exploring AI-assisted workflows. The experience reinforced that dependable AI systems require structured, consistent content alongside capable models. This makes content quality an important part of the product design problem, not simply a technical implementation detail.

 

Navigation tab: When a documentation update requires a new page to house the content, it is first staged in the aggregate for approval. The user decides whether to merge or waive the page for publishing. A merger publishes the new page and adds all related drafts to the Aggregate, for review. A waiver assigns all related tickets to the initiator to be manually added to documentation and closed.

 

Drafts tab: When agent updates are made to a page, each widget change is stored for approval. Here, a user can compare widget adjustments to it’s original appearance. The user decides whether to merge or waive each widget change. A merger archives the aggregate reference, assigns the corresponding ticket to the initiator and closes it. A waiver mimics this procedure but doesn’t close the ticket. Instead the initiator must manually add the change to documentation before closing.

 

Archives tab: When a draft is merged or waived, key metadata is archived for future reference. If an issue needs to be revisited, users can review who initiated the archive and access the associated ticket for additional details.

 

Settings tab: By default, agent responsibilities expand as the system consistently demonstrates strong performance, over time. For greater flexibility, responsibilities can also be adjusted at the page level to accommodate different workflows and collaboration preferences.

 

The preview mode was originally limited to evaluating layouts across desktop, tablet and mobile viewports. Creating the floating toolbox component expanded the available workspace and created opportunities for additional review tools. As a result, users could evaluate proposed agent changes in the context of its page and content.

 

Toolbar component built to expand preview options: (A) Drag & drop: Allows repositioning of the toolbox to tailor accessibility. (B) Page switcher: Allows swapping between the published page, available to visitors and the drafted page, staged for reviewing agent changes. (C) Draft stepper: Allows quick tabbing between individual agent changes to reduce scrolling and scanning. (D) Draft highlights toggle: Allows agent changes to be viewed with or without contextual highlights. (E) Viewport switcher: Allows swapping between desktop, tablet or mobile screen sizes to inspect content before publishing. (F) Action menu: Allows for activation of various tooling related to the page canvas.

 

Highlight colors: Visual indicators included to help users identify the type of change made by the agent. These colors distinguish between added widgets (green), revised widgets (yellow), removed widgets (red), and suggestions (purple).