Building Software Together as a Type of Translation
Eric has a great piece called âVisit for a surpriseâ. In it, he sets the scene by acknowledging the wisdom of providing clear names for your links â e.g. the text âlearn more about elephantsâ for a link is more effective than âclick here.â
He extends that idea to âproviding instructive names for your interactive controlsâ, e.g. a button represented solely as an icon needs a good, accessible label.
Then he asks: what about a situation where you deliberately want to be cryptic? For example, âa small icon that Rickrolls the curious participant by linking them to Rick Astleyâs iconic music video.â How should such a link announce itself while remaining true to the spirit of accessibility guidelines?
Eric suggests preserving an equivalence of experience â a great term â regardless of how people are accessing the content.
This is all about maintaining an equivalent experience by not over-describing something for only a certain subset of people. Here, the goal is to preserve the authorâs intentional act of creating a sense of curiosity, regardless of the way someone interacts with technology.
He notes how this requires a kind of mindfulness, given that accessibility-related work habitually involves creating more clarity, not less.
This is an area where an auditor reflexively seeking to be as literal as possible may err. I say this because in an accessibility auditing context we are usually so focused on creating clarity where there is none that we donât get to dabble much in the areas of whimsy and nuance.
This is one reason I find accessibility work so fascinating: it trails being conquered by automation â this in contrast to much of modern front-end which, IMO, too often keys pivotally on automated scores that steamroll nuance which humans are better suited to evaluate. Eric describes this well in his Rick Roll link assessment:
Automated accessibility scans can detect a link without an accessible name, but they canât determine if the linkâs name is meaningful. Thatâs where us humans come in.
Moreover, automation canât operate with the level of nuance needed to determine if the authorâs intent is being carried through in the linkâs accessible name.
I find Ericâs description of this work acute. Accessibility work like this is a form of translation. Itâs an art form. You must take liberties in translating the intent of the original experience â a linked icon, intentionally cryptic to produce the effect of surprise and humor â into another form that doesnât afford equivalent materials (i.e. give it a textual label).
To create an equivalent, accessible experience, you have to give words to something that was originally created without words.
Linguists deal with this kind of subtlety all the time. Words can be translated literally (word for word) but can easily lose their meaning when compared to a semantic translation that looks to balance the literal and figurative meanings of whatâs being communicated. (Not to mention the fact that many words simply do not exist when translating across languages; you often hear people say, âThereâs no word for that in Englishâ.)
This metaphor for building software as a form of translation really strikes a cord with me. It feels relevant to the world of design and front-end engineering â an idea I want to explore a bit more in this post.
Design & Front-end Engineering as Translation
Design is a creative act, full of intention born out of research, synthesis, and problem solving. Without thoughtful, disciplined communication, the insights from design work can be âlost in translationâ as a project progresses to the proverbial âhand-offâ between disciplines, e.g. the transition from visual design to implementation.
Unfortunately, we often conflate âgood communicationâ in the hand-off phase with the use of commercial software tools meant to facilitate this phase of the work. âOh, my Figma file has everything youâll need. Just look at âInspectâ tab for anything you think is missing.â The entire context, and therefore intent, can easily get lost for people downstream of visual design â code and prose being perceived as artifacts that can merely be âplugged inâ later in the process.
Each discipline â design, front-end, copywriting, etc. â is part of the creative act of building software. Without good communication, the original intent â which is likely full of discipline-centric insight and research â is too easily lost along the way.
I suppose some might say this is where Product (with a capital âPâ) comes in. They are the ones responsible for defining, communicating, and vetting the intent of any solution through the process of making software across a multitude of disciplines. In practice, however, Iâm not so convinced it plays out this way.
Better, in my opinion, to follow the idea of small, iterative demos which can propel a team of people to accumulate positive, iterative change together over time with a continually-renewing, shared understanding of context and intent. Ken Kocienda, who worked on the original iPhone team, described it well:
When we got an idea, we cobbled together a first cut on the algorithms and heuristics we would need to illustrate it. Then we pulled together the supporting resourcesâcode, graphics, animations, sounds, icons, and moreâto produce a demo. After we showed the demo and shared some feedback with each other, we made decisions about changes that might be an improvement. Many times this came down to tuning some heuristic, or modifying how an algorithm and heuristic combined. Whatever it was, the concrete and specific modifications we chose to make led to the actions items that justified making the next demo. Repeat, then repeat again. Doing this over and over again set our projects on the slow path to accumulating positive change. This is how we started with an idea and finished with software for a product.
Itâs easy for meaning to be lost when translating from one language to another. The original authorâs intent is invariably interpreted by the person doing the translation. They cannot know the authorâs original intent or thoughts and therefore the translation is always an interpretation of the original work, not a copy merely expressed in a different language.
Similarly, in software work, design intent â whether in visuals or code or words â can easily be lost through the chain of hand-offs. The more software production looks like an assembly line, where people from individual disciplines are given a pre-fabricated widget and expected to merely plug-in their part, the more intent (again, informed by research and discipline-specific knowledge) is lost.
This is the value I see in interdisciplinary roles like design engineering, where individuals can span traditionally disparate disciplines and help reduce the seams where intent can be lost.
This metaphor of translation, and the possibility for losing something in translation while trying to preserve an âequivalence of experienceâ, feels like a deep well Iâm going to draw from to understand and explain the process of designing and building software. Thank you Eric.