iteration
So that you can get feedback on it and make it better
Fascinatingly, one of the other big complaints people had about agile is no iteration. I don't understand how being in an agile environment makes people less iterative, but somehow that seems to be the case. And I think it's because people misunderstand and think that agile is just about putting features out faster, and not about the important part, which is getting something in front of users faster so that you can get feedback on it and make it better.
The most rewarding iterations
Initial designs for sophisticated software applications are invariably complicated, even when developed by competent engineers. Truly good solutions emerge after iterative improvements or after redesigns that exploit new insights, and the most rewarding iterations are those that result in program simplifications.
Evolutions of this kind, however, are extremely rare in current software practice—they require time-consuming thought processes that are rarely rewarded. Instead, software inadequacies are typically corrected by quickly conceived additions that invariably result in the well-known bulk.
To anticipate all the uses and abuses
Success depends wholly on the anticipation and obviation of failure, and it is virtually impossible to anticipate all the uses and abuses to which a product will be subjected until it is in fact used and abused not in the laboratory but in real life. Hence, new products are seldom even near perfect, but we buy them and adapt to their form because they do fulfill, however imperfectly, a function that we find useful.
When we make a model and realize it's rubbish
Much of the design process is a conversation, a back-and-forth as we walk around the tables and play with the models. He doesn't like to read complex drawings. He wants to see and feel a model. He's right. I get surprised when we make a model and then realize it's rubbish, even though based on the CAD renderings it looked great.
He loves coming in here because it's calm and gentle. It's a paradise if you're a visual person. There are no formal design reviews, so there are no huge decision points. Instead we can make the presentations fluid. Since we iterate every day and never have dumb-ass presentations, we don't run into major disagreements.
Building is never a straight line
You might think that Mario 64 was built with tickets and sprints, but, according to interviews, there was no master plan, only the principles that the game should feel good and be fun. They started with just Mario in a small room, and tuned his animations and physics until he felt nice and responsive. After that, the levels were also created as they went, with the designers, developers, and director going back and forth using sketches and prototypes.
Building like this is never a straight line. Ideas and code get left on the cutting room floor because part of innovation is questioning whether what you made should exist. The process is cyclical and iterative, looking something like this.
Between the two spaces
It is widely accepted that creative design is not a matter of first fixing the problem and then searching for a satisfactory solution concept; instead it seems more to be a matter of developing and refining together both the formulation of the problem and ideas for its solution, with constant iteration of analysis, synthesis, and evaluation processes between the two “spaces” – problem and solution.
The game discovering itself
We like to think about this process as the game discovering itself over time. Because as iterators, rather than designers, it’s our job to simply play the game, listen to it, feel it, and kind of feel out what it seems to want to become - and just follow the trails of what’s fun.
Deciding what to design
We Don’t Really Know the Goal When We Start
The most serious model shortcoming is that the designer often has a vague, incompletely specified goal, or primary objective. In such cases, the hardest part of design is deciding what to design.
I came to realize that the most useful service I was performing for my client was helping him decide what he really wanted.
Today, we recognize that rapid prototyping is an essential tool for formulating precise requirements. Not only is the design process iterative; the design-goal-setting process is itself iterative. Knowing complete product requirements up front is a quite rare exception, not the norm. Therefore, goal iteration must be considered an inherent part of the design process.
Embracing the mess
Design is non-linear. At Figma, we often talk about “embracing the mess,” and that really means leaning into the chaos and complexity that makes the design process what it is. Even once you have the seedling of an idea, you need to explore and iterate, then pull back and evaluate to see what’s working and what’s not. Sometimes you’ll scrap an idea after a brainstorm session, and other times you’ll get pretty far with a concept, but still need different perspectives and input to move forward.
Models and iterations
Every month or so, Manock and Oyama would present a new iteration based on Jobs's previous criticisms. The latest plaster model would be dramatically unveiled, and all the previous attempts would be lined up next to it. That not only helped them gauge the design's evolution, but it prevented Jobs from insisting that one of his suggestions had been ignored.
The surprising effectiveness of writing and rewriting
An Article by Matt Webb- The act of writing the first draft creates new “essential data” that feeds the imagination and makes possible figuring out the second draft.
- Or: In your head, ideas expand until they max out “working memory” – and it’s only be externalising them in the written word that you have capacity to iterate them.
- Or: Good writing necessarily takes multiple edits, and the act of writing and act of rewriting are sufficiently different that performing both simultaneously is like rubbing your tummy and patting your head.
Asynchronous Design Critique: Getting Feedback
An Article by Erin CasaliGetting feedback can be thought of as a form of design research. In the same way that we wouldn’t do any research without the right questions to get the insights that we need, the best way to ask for feedback is also to craft sharp questions.
Spatial Interfaces
Software applications can utilize spatial interfaces to afford users powerful ways of thinking and interacting. Though often associated with gaming, spatial interfaces can be useful in any kind of software, even in less obvious domains like productivity tools or work applications. We will see spatial interfaces move into all verticals, starting with game-like interfaces for all kinds of social use-cases.
There is no app that replicates a deck of cards
It seems that the only way to build an app that replicates the full functionality a deck of cards is to build a 3D simulation or game. Model the cards in 3D and put them on a 3D table. As long as you have controls for reaching out and picking up the cards, and moving them in space, you can do anything you can do in real life.
Preserving the higher dimensionality makes it simpler and more intuitive, not less.
Humans are spatial creatures
Humans are spatial creatures. We experience most of life in relation to space. We sit in a circle with our family. We drive down the left side of the road in Ireland and try to stay in our lane. We ride scooters down a path along the water. We sculpt a human body out of stone. We follow signs to our train. We walk, through arches, or on crosswalks beside bike lanes, or to follow our brother across a bridge. We position our camera to frame the shot while our friend leans out over a balcony. We sense ourselves in space in relation to all of the other objects in our environment.
And this is powerful knowledge that we've left out of lots of software. In fact, while most obvious in 3D, this thinking does work outside of just three-dimensional software. Almost any software can use spatial concepts to become easier to understand.
Web trails
There's more room for spatial concepts to become part of our web browsing experience.
One example is an idea I call "trails." It's based on the story of Hansel and Gretel walking through the forest and leaving a trail of breadcrumbs behind them, so that they could find their way back later. What if you could do this on the web?
A breadcrumb in this case is a single pixel that you can place in a precise location on a webpage. Placing a breadcrumb could be as simple as Option + click. While navigating the web, you could leave breadcrumbs on different pages you find interesting over the course of a browsing session. When you're done, that sequential "trail of breadcrumbs" would be saved. You could then jump back into the trail and navigate "forward" and "backward" through the things you found interesting in that browsing session. Or share the trail with a friend, and they could step through your spatial path of navigating the web.