Burke Holland and Joanna Oikawa discuss the collaborative and iterative design process behind VS Code’s Agents feature, highlighting how a small, integrated team of designers and engineers leverage user feedback, telemetry, and AI tools to evolve the user experience while maintaining design quality and simplicity. They emphasize the blurring of traditional roles, the importance of validation loops, and balancing functionality with usability to create a seamless and effective UX in a complex software environment.
In this conversation, Burke Holland interviews Joanna Oikawa, the Design Lead for VS Code, about the design process and user experience (UX) challenges involved in evolving VS Code’s Agents feature. Joanna explains that the design and UX engineering team is small but highly collaborative, with four designers working closely alongside engineers who also contribute to UX. This integrated approach allows the team to iterate quickly and share ownership of the user experience, blending design and engineering efforts seamlessly.
Joanna walks through the design journey of the Agents window, highlighting how the team experimented with different UI concepts in Figma before shipping a refined version. They started with ideas like attaching menus to the central search bar and evolved towards a full-screen experience that balances showing relevant information across multiple projects without overwhelming users. The team relies heavily on user feedback, telemetry data, and continuous experimentation through early releases and prototypes to guide design decisions, emphasizing an iterative rather than a “final” approach to shipping features.
A significant theme discussed is the blurring of roles within the team, where designers submit code pull requests and engineers contribute design ideas. Joanna notes that AI tools have expanded the breadth of skills team members can engage with, allowing designers to perform tasks like data querying and analysis that were previously specialized roles. This cross-disciplinary collaboration fosters a more agile and integrated development process, though Joanna stresses that deep expertise in areas like visual design remains crucial for maintaining quality and taste.
The conversation also touches on the challenges AI introduces to design practice, particularly the risk of over-reliance on AI-generated outputs leading to a loss of design judgment and taste. Joanna emphasizes the importance of validation loops—testing and gathering feedback on shipped features—to ensure that design decisions truly solve user problems. She advocates for restraint in adding features, highlighting the need to balance functionality with simplicity to avoid overwhelming users, especially in complex tools like the Agents window.
Finally, Joanna and Burke reflect on the evolving nature of design and development roles in modern software teams, where everyone is increasingly both a designer and a developer. They acknowledge the value of experience and taste in guiding design decisions, even as AI tools democratize access to technical skills. The discussion concludes with appreciation for the design team’s role in making VS Code both functional and visually appealing, underscoring the ongoing collaboration and iteration that drives the product forward.