As kids, we played together. Making things is such an honest, emotional activity. Best experienced together with friends. Now that we’re grown up and work in companies, our creativity is hampered by process. We sit in our various boxes and work on our various tasks, responding to managers and the needs of the process.
Despite these strictures, the heart of creativity and teamwork beats loudly in some of the web’s finest creators. Early product teams at companies like Facebook know this well, their innovations in UI were born, not from separate departments running independent functions, but from designers and engineers getting together and working on the same screen, at the same time, making new connections between user experience and the underlying system.
Sadly, this blessed union does not permeate today’s tech industry. I had a rather sad conversation last week with an engineer at a multi-billion-dollar tech company who barely knew her designer. The work came over the fence, she implemented it, and that was about that. This division is fed by two underlying factors: a toolchain that makes it easy for design to be completely separate from engineering, and a corporate culture that seems to find bland, expected, unenthusiastic design — the kind that can be sent over a fence as a dry specification — acceptable.
It’s not only the mega-corps, I see this pattern far too often at smaller companies with fewer than a dozen people on the team. Occasionally you’ll find a gem, but most teams maintain a division between design and engineering. Sadly, the benefits of the Figma-style collaborative world don’t extend to engineers. A great shared sandbox has opened up to everyone, except for those whose work actually dictates the end-user experience. The Figma creative cauldron brings all functions of a company (except engineering) together to review design files. These pictures of the app (sometimes supplemented with laboriously constructed prototypes that describe a sliver of the experience) feel real, but they’re not. And no one knows this more than an engineer who, upon receiving such files, realizes they don’t align with the underlying app’s structure.
It doesn’t have to be this way. The solution, I wish, could be cultural. Designers and engineers could simply decide to work together. This too I’ve seen — these best of intentions — between very cool and understanding designers and engineers who desperately want to work together. Despite this love, the forces of process and tooling push designers and engineers apart, time and again.
The solution instead lies with different tooling. This I know from ancient times, back when smartphones had keyboards and Flash dominated high-end web experiences. In the Flash process, designers and engineers collaborated on the same source of truth. A myriad of FLAs and their generated SWFs went back and forth between designers and engineers. The designers could do the pretty stuff, and the engineers made it work. And these two things happened in a fluid, back-and-forth process that had no start and end. There was no “fence” that design was “thrown over”. Instead, designers and engineers worked in a shared sandbox — a single set of assets which either party could change at any time.
I’m hard at work with a brilliant engineer building exactly such a product. I’m not yet ready to share our solution (which hasn’t been proven to solve anything yet, tbh). I hope to post updates and continued philosophical musings as we progress. These are my thoughts — let me know yours! What do you think is the ideal way for designers and engineers to collaborate?