We need more hybrid tools
We need more hybrid tools. We need more digital spaces where designers and developers can work together while still being able to practice their respective disciplines. If there’s one hope I have for generative AI despite its numerous flaws, it is that it will unlock new opportunities to build these kinds of hybrid tools.
The hard-line split we see today between the role of software designer and software developer is a relatively recent invention. This is especially true when it comes to building things on the web. In the early years of the web, the dividing line between web designer and web developer was blurry. In many cases it didn’t exist at all; designer and developer were often one and the same person. Back then we called them, simply, “webmasters.”
But over the past two decades much has changed. Both practices became increasingly more sophisticated and specialized. And with specialization came specialized tools targeted at each discipline. Gone are the days of Microsoft Frontpage and a humble FTP connection. Instead designers draw pictures and create prototypes in Figma or Sketch or Origami Studio or Adobe XD. These pictures are then translated by developers into code in some editor of choice—increasingly, Visual Studio—where they (unfortunately) wield ever-increasingly complicated front-end JavaScript frameworks like React, store this code repositories like git, and use CI/CD tools to automatically deploy it to CDN-backed hosting platforms like Cloudflare or Netlify. And that’s just the tip of the iceberg for the ever-increasing complexity of front-end web development.
This division of labor between design and engineering, reinforced by the need for special training in a vast array of tools, creates a problem commonly known as “designer-developer hand-off,” this awkwardly artificial moment when it’s supposedly pencils down on design, and time for developers to open their code editors and start building.
In The Gulf Between Design and Engineering Rune Madsen writes:
The most crucial mistake in the collaboration between designers and engineers happens when we conflate this division of tools with a need for a strong division of labor. Treating design and engineering as two completely separate processes leads to an isolated waterfall workflow where designers first get to dream up ideas in static tools, and engineers then implement the desired features when they are ready for development.
If our tools are reinforcing this gulf (and they’re certainly not helping!) then perhaps—just maybe—new tools (along with new practices) can help us bridge the chasm instead.
At Config in 2023 the Figma team introduced a series of new enhancements to Figma’s prototyping capabilities, empowering designers to build more more powerful, more capable prototypes. They called these new features “advanced prototyping.” For anyone with a programming background, the nomenclature Figma used for to describe these new features—conditionals, variables, expressions, to name a few—probably sounded eerily familiar.
Indeed, on the same day as the announcement—perhaps expectedly but also surprisingly quickly—a designer at Google managed to build an entire calculator in Figma using these new features, showing that Figma had become, in a limited sense, also a visual programming tool.
This is nothing new. Advanced prototyping and programming capabilities have existed in many other design tools long before Figma’s announcement. But what intrigued me about this development, and what continues to intrigue me, is what happens when we break down barriers to disciplines by empowering people to do more with the tools they are most comfortable using, using paradigms that align with how they already think about work. Some of this empowerment has always arrived through “traditional” new features like advanced prototyping, but increasingly I believe more of it will arrive cloaked as generative AI.
I’ve shared this quote before, and I’ll continue sharing it because it is basically an evergreen statement:
We encounter the deep questions of design when we recognize that in designing tools we are designing ways of being. — Terry Winograd and Fernando Flores, Understanding Computers and Cognition
Changes in our capabilities influence both how we see and how we act in the broader world. And right now, no technology is lowering the barrier to entry to programming, and thus giving more people the ability to create software, better than generative AI. Ambitious designers armed with an LLMs can and do create prototype code that was previously outside their reach.
What happens, then, when we meet designers where they are, and empower them to do more, to build ever-more sophisticated prototypes that once required traditional programming skills? What happens, conversely, when we empower developers to participate more fully in the design process, perhaps using AI to create designs that can be further iterated upon by their more design-savvy colleagues?
My perhaps naïve hope is that in broadening this space—in widening the overlap between what we consider the domain of the designer and what we consider the domain of the developer—more people who previously thought of themselves only as designers, or only as developers, or only as product managers, will begin to stretch the boundaries of those self-imposed labels. More designers will explore programming concepts and paradigms, more developers will educate themselves about the fundamentals of great design. We will have more hybrid, T-shaped people. Or, as Kathryn Gonzalez said in her talk on the topic of AI and design systems at that same Config conference, “more generalists.”
This is not unprecedented. There is another quote commonly attributed to Marshall McLuhan: “We shape our tools, and thereafter our tools shape us.” Hybrid design/programming tools such as Flash have previously birthed an entire generation of immensely creative humans who—to this day—fail to slot cleanly into a specific discipline. After all, when your favorite tool allows you to fluidly move between code, drawing and animation, constraining yourself to only one practice feels unnecessary and … well … kind of strange.
Our tools have always been gateways to exploring new ways of seeing and understanding the world. Common, cross-disciplinary tools used by multiple stakeholders on a team expand on this by allowing us to learn about and build empathy for each other’s disciplines.
One of the greatest goals we can have for integrating generative AI into these tools, then, is that in expanding all of our respective capabilities, we do not replace our human teammates, but rather we participate more deeply in the creative process together. We imbue ourselves with greater empathy for and appreciation of each other’s craft. Rather than be just designers or just developers, we become, simply, makers.