Aion University

So you want to be a DApp developer?


Well you've come to the right place. You'll find comprehensive guides and documentation to help you start developing with Aion as quickly as possible, as well as support if you get stuck. Let's jump right in!

Let's DApp

Design Thinking

What is design thinking and why is it important?

What is it?

Now you may be thinking - what is design thinking and why is it important? It is a fancier way of describing a model for innovation based on human-centered observation and prototyping. An important aspect is to realize that the design thinking framework is not a linear process, and certainly not some magical formula where you can just learn, apply, and see results. It is not a one size fits all type of strategy.

It is a mindset that focuses on how to look at challenges around us, adapt to a more mindful process, and start taking a step towards innovation. It is not problem oriented - it’s a solution focused and action oriented strategy towards creating a preferred outcome.

No design process is meant to be linear - it is meant to be iterative. So, it’s not just about following the steps from 1 to 5 and you’re finished. It's more like, 1 - 3 - 2 - 3 - 4 - 5 - 2 -1 and rinse and repeat until you've come with an innovative new product that matches the needs and expectations of real-world users.

“Most people make the mistake of thinking design is what it looks like. People think it’s this veneer — that the designers are handed this box and told, ‘Make it look good!’ That’s not what we think design is. It’s not just what it looks like and feels like. Design is how it works.”
-Steve Jobs, from the New York Times article “The Guts of a New Machine.”

The Design Thinking Process

Hasso-Plattner-Institute of Design at Stanford University, California.

Hasso-Plattner-Institute of Design at Stanford University, California.

The Four Principles of Design Thinking

  1. The Human Rule - Everything in design activity is social in nature and any social innovation will bring us back to the "human-centric point of view"
  2. The Ambiguity Rule - Ambiguity is inevitable, and it cannot be removed or oversimplified. Experimenting at the limits of your knowledge and ability is crucial in being able to see things differently.
  3. The Redesign Rule - All design is redesign. While technology and social circumstances may change and evolve, basic human needs remain unchanged. We essentially only redesign the means of fulfilling these needs or reaching desired outcomes.
  4. The Tangibility Rule - Making ideas tangible in the form of prototypes enables designers to communicate them more effectively.

The Five Phases of Design Thinking

Here, we will focus on the five-phase model proposed by the Hasso-Plattner Institute of Design at Stanford, which is also known as d.school. We’ve chosen d.school’s approach because they’re at the forefront of applying and teaching Design Thinking.

1. Empathise

Empathy is the ability to understand and share the feelings of another. You have to put yourself in the user's shoes and spend time understanding their wants, needs, and objectives. In order to understand them on a psychological and emotional level, you will need to observe and engage with the users. During this phase, the designer comprises and set asides their assumptions to gather raw insights and details about the user.

2. Define

It all starts with focusing and defining the problem at hand. Gather all the information that was found during the Empathise phase and let's start making sense of them. What are the current difficulties and obstacles that your users are facing? Are there certain patterns emerging? What is the ultimate user problem that your team is focusing to solve? At the end of the definition phase, there should be a clear problem statement. The important aspect now is to present the problem in a user-centered way. For example, "We need to ..." to "Millennials in Toronto need to ..."

Once the problem is translated and defined into simple terms, then the next step is to explore solutions and ideas.

3. Ideate

Now that you have a better understanding of your users along with a clear problem statement - it's time to brainstorm potential solutions. This is where creativity should flourish and come alive, as exploring all different angles possible gives the designer a bigger picture to work with. There are many different techniques that you can use, such as brainstorming or writing down all ideas on a sticky note and posting it on a wall. At the end of the ideation exercise, you'll zone in on the ideas that make the most sense and proceed forward.

4. Prototype

Prototyping is all about experimentation and turning your ideas into tangible products. It includes building a scaled-down version of the product which features the ideas you identified in the previous stage. This is important because you get to put your potential solutions in drive and get to observe the outcome, highlighting what went wrong or what went well. This is part of an interative phase, where your app or product may be accepted, criticized, redesigned, or rejected depending on how they perform during testing.

5. Test

Test, test, test! As you create your prototype, this step naturally comes next - but that's not the end of the road. You observe, gather information and understand what works and what didn't. You'll find yourself back in the prototype phase and improve the product based off your observations. In this iterative process, each step you will need to document and provide insides and sometimes may have to redefine the problem statement to think of other ideas that weren't originally mapped out.

Design in Decentralized Apps

Blockchain developers are pushing forward the grand vision of a decentralized future, but the experience of that vision through decentralized applications still resemble a non-polished version of web2 applications.

What's prominent is that most of today's users who are the target for these dApps still live the web2 experience, and probably don't have a full grasp on the power and promises of a decentralized web3. Even if they land on these new and shiny apps, there's no doubt there is still friction to user adoption. This includes different words (they probably haven't heard), purpose, how the application flows and mostly, the distinction between a decentralized app versus a normal web application.

Blockchain Design is more appropriate to define the properties, and their interactions, of the network architecture itself. This includes things like the consensus algorithm, the supply base, the block rewards, computation, NRG costs, on/off chain governance mechanisms and the like.

Today, a user interacts with a smart contract in several ways:

  • directly in the command line or terminal
  • through the form-like interfaces of their digital wallet or dApp browser,
  • through pretty front-end interfaces built on top of the smart contract functionality

It seems clear that the path for mass adoption of dApps is simple: provide an intuitive user interface along with seamless integration of interacting with the blockchain.

Decentralized apps are fundamentally different from normal web or mobile applications due to the fact that they should clearly convey the powerful principles enabled by blockchain:

  • Decentralization
  • Transparency
  • Verifiability
  • Security
  • Immutiability
  • Trustlessness

The objective is that, once applied correctly, a user that lands on a dApp is immediately aware that she is interacting with one and, more importantly, understands the powerful properties of the blockchain and therefore, knows she can trust every interaction with the application.

Things to Consider

  • Main target in mind is a non-technical user, although some principles are geared towards more tech-savy users
  • Not all dApps need to utilize all the principles of blockchain
  • Different principles can be implemented in different and creative ways, based on the use-case
  • Take advantage of the frameworks, tools, services, or libraries rather than try to have a developer recreate it all in the solution

Approach to Design

Design is also about anticipating problems and offering solutions. Let's explore some questions that users may have when they're interacting with a decentralized app:

Questions like:

  • Is it safe to do this? (an action that prompts from the application)
  • Do I risk losing money if I screw up?
  • Can anyone see what my interactions are on the blockchain?
  • What happens to the data I send? Where will it be stored?
  • Can my actions be identified?
  • Where is the code being executed?
  • What happens after I do this? (action)
  • How am I supposed to do this with cryto?
  • What does this unfamiliar blockchain/crypto word mean?
  • Sure blockchain can be trusted, but how can I be sure the data can be trusted on this app?
  • What information is coming from the blockchain?
  • How do I verify the the information is really stored on the blockchain?
  • And so on ....

This design thinking session is designed to allow you to get into the mindset of designing and constructing your application.