I spent some time watching Steve Jobs talk about NeXT from 1992. He touched on a number of things, including his passion for a crazy new idea called object-oriented programming.
It’s interesting to take a look at his insights. One thing that jumped out for me—and it’s right near the very end of the one hour and twelve minute video—is his view on prototypes.
“We haven’t built a prototype in engineering for two years.
“What that means is, manufacturing gets involved from day one.
“A lot of times, when you build prototypes, it’s not quite the same technology as you’re going to use in production. And so all the accumulated knowledge you get from building your prototypes, you throw away when you change technology to go into production. And you start over in that accumulation process.
“Because we don’t change technology, we don’t throw anything away. We don’t waste time.
“And it’s led to one of the healthiest relationships between an engineering and manufacturing group I’ve ever seen in my life.
“It’s really paid off for us and I think it’s one of our real opportunities for competitive advantage.”
I’ve thought often of how our design and prototyping tools for the web are often not of the web. Tools like Photoshop and Sketch and Invision create approximations but need to walk the line between being a tool to build native apps and to build web apps. They do well in their ability to quickly validate designs but do little to validate technical approach.
The rise of Pattern Libraries has allowed teams to have components of a design system iterated upon and improving over time.
We’ve also seen the rise of greater integration of design and engineering as apps like Sketch and Figma allow for greater movement between the two practices, moving these components of the web back into the design tools.
“A huge part of that success is closing the gap between what a designer has access to in Sketch and what an engineer has access to in code.” — Jules Forrest
Airbnb, for example, has been exploring how to automate important design task, such as design linting and building “source of truth” design files.
There’s still the disconnect of the initial design to code process. The design tools still aren’t of the web. A designer doesn’t draw a box in Sketch and then have the ability to push that into production. There are still too many decisions to be made between that box in the design tool and what it would mean in code.
What element is that box made of?
What accessibility needs to be accommodated for?
How does that box behave under various conditions?
How does the box handle different languages?
Our tools are heading in the right direction, though, and I anticipate the day will come where we can move more swiftly from design to production because both will be of the same material.