Design is a fundamental driver of society’s advancement. The design process allows us to find solutions to increasingly complex problems, and to create ever more advanced physical systems and mental constructs, which in turn enable us to grow and thrive.
Through history, the design process has itself been supported by an evolving set of tools and methods, from pencil, paper and modelling clay, to well defined qualitative methods for helping to understand needs and opportunities.
How do we define design?
The diagram above from Stanford d.school lays out the high level process of design as comprising fives steps:
- Empathise: Gain a clear understanding of the problem.
- Define: Describe the problem in away that is comprehensive and clear.
- Ideate: Take this definition and come up with many ideas for potential solutions.
- Prototype: Take some of these ideas and turn them into something more tangible that can be interacted with.
- Test: Evaluate these prototypes and select the best ones.
Over the past eighteen months, I have begun to notice a trend across a number of startup teams, taking the design process and applying new computational techniques and algorithmic developments. Through doing this, they are demonstrating their ability to find better solutions faster than a human designer might be able to unaided.
These companies are working on design problems across many areas. Most work has been done to date on applying these techniques to the rapid design of more attractive and intuitive layouts and interfaces, but we are now seeing them applied to design problems in areas including engineering (a component for a specific purpose), architecture (a layout for a new building) and biology (a molecule to target a specific disease).
So what computational approaches are people using here? Let’s look again at the five steps we outlined above:
- Empathise: This is generally still human led, with the work to understand the problem still being undertaken by the designer.
- Define: Programming frameworks are being created in each domain that allow the designer to encode the problem definition in a machine-understandable way through a set of rules or constraints.
- Ideate: Computers explore the search space set by the definition, performing a ‘brute force’ generation of potential solutions, and using evaluation heuristics including machine learning algorithms to narrow this list of solutions.
- Prototype: A subset of the solutions can then be prototyped, often through building advanced computational simulations which enable you to both visualise them and analyse their performance.
- Test: With advanced simulation, you often get the ability to test your idea in many situations or environments and generate quantitative results which allow you to benchmark different options. On other occasions, people may still rely on humans to evaluate the prototypes, and this is an area where crowd testing or A/B testing can be used to do this quickly and at scale.
Summarising this process in somewhat technical language, one could say that design is the process of exploring the solution space specified by a set of rules, evaluating options using heuristics to narrow this space down to a short list, simulating these potential solutions, and then benchmarking their performance to pick an optimal solution. Perhaps this design process then looks more like the below:
We are already seeing commercial applications that use these new design processes, but a number of interest challenges and areas for improvement remain:
- Creative spark: While good solutions to design problems often exist within the initially specified constraints, some designers would argue that the best solutions come when you break out of these in a ‘creative’ way. While the debate about whether an algorithm can ever be truly creative is ongoing, those building these new systems should think about how they can capture some of this creative rule breaking essence at the generation stage.
- Problem input: How good a result you get is today still governed by how well the input framework and rules allow the problem to be specified. As the power of AI increases, computers may be able to better comprehend the underlying problems themselves, more closely coupling problem discovery with solution generation to allow even more powerful exploration of the result space.
- Compute cost: While compute power continues to drop in cost and is today rarely a consideration I was surprised that, in some applications I have seen idea generation can still consume many hours and thousands of dollars. Advances in exploration and evaluation techniques will likely improve this, which will also allow for quicker iteration during the design process.
- Result presentation: User experience questions still exist about the best way to present back results. Those building these systems will need to establish how much of the internal reasoning and analysis needs to shared for designers to trust that the solutions outputted are good ones.
Are designers worried?
A 2017 survey by Adobe of ‘creatives’ (limited to those involved in the kind of design problems that can be solved using Adobe’s suite of tools) reported that 69% of respondents see themselves using more AI in the next five years, but 55% say AI will not take over their responsibilities.
I would say that is a positive response, with designers already understanding the potential these solutions can have to improve their workflows and outputs, and showing willingness to make increasing use of them. A number of great pieces have been written providing deeper exploration on how AI is impacting this kind of design and some of the new tools available here, including “Algorithm-Driven Design: How Artificial Intelligence Is Changing Design” by Yury Vetrov and “How AI has started to impact our work as designers” by Fabricio Teixeira.
Designing for everything
Applying these new tools to the design process makes it possible to discover better solutions faster and at lower cost. Taking this to its extreme, we can repeat this process not just for every problem but for every end application, feeding increasingly specific rules and data into the specify and benchmark stages, and creating outputs tailored for a specific user, environment or situation.
Designing in this way, the solutions we use in our everyday lives can become ever more effective, allowing us to become increasingly efficient, and driving society’s progress at ever greater speed.
If you are reinventing a design process, I would love to speak with you.