Generally speaking, and in a very practical way, Design Thinking is a process applied in order to resolve the client’s complex problems, having its focus on the solution alone. The typical thinking of designers is used for the most varied applications, being them technological or not, in which the central idea is to resolve problems, focusing on the resolutions.
In this article, we are going to reflect upon the way in which the principles and techniques of the design thinking may and must be used in the processes that involve software development.
Keep reading it, so that you may have a better understanding of the application of this concept to organize, qualify and accelerate the development stages!
The relevance of Design Thinking in software development
Assuming you are a solutions developer, how many times have you received an incomplete and defective specification from your client? Clients are normally not aware of the exactness of what they want.
Moreover, how many times do clients/users want changes along the project? It is common sense that changes in the scope might be greatly frustrating for the development team.
Is there a problem with communication or even a deeper challenge? More meetings, more callings and yet a few or no resolutions can be seen? It doesn’t matter how big the project is, there is always going to be a certain level of tension.
It is right there that Design Thinking has been gaining considerable relevance in software development operations. It helps the team to put themselves in the client/user’s shoes, and experience what they experience or expect in relation to the system.
Design Thinking makes it much easier to understand the client’s world, not only what they want, but their whole picture. That is done through critical thinking turned to innovation, imagination and a great deal of patience.
Design Thinking processes that facilitate software development
According to the Institute of Design at Stanford, there are five tactics or processes of Design Thinking, as it follows: empathizing, defining, idealizing, prototyping and testing. Understand how to apply each one of them in your projects of software development.
Empathizing
Get to know more about the target audience to whom you are projecting by carrying out deep observations and interviews. Who is the user? What really matters to this person?
The starting point is always the empathy of the team towards the client/user. When putting yourself in the place of the ones who will receive that application and use it on their day to day, the development team will work in a way that is much more focused on the solution rather than the problem.
Defining
Create a point of view based on the real needs and insights of the users. What are your needs? Which processes do the software functionalities have to go through?
By putting yourself in the users’ shoes, it becomes much easier to listen to the feedbacks. Together with that, it is also possible to understand what is necessary to satisfy the requirements of the user and the business.
Idealizing
Brainstorm the ideas and gather as many creative solutions as possible. Wild ideas (with no filter, letting the creativity flow) may help get to very interesting common denominators.
In this stage, it is important to let the imagination of the team flow. The idealizing stage is not the moment for judgment upon what each person proposes. On the contrary, starting from a “bare” idea makes it possible to work in order to reach innovations that are really great.
Prototyping
Create a representation of one or more of your own ideas to show the project members. Remember, the prototype is only a draft, an idea of how the final product could be. It will undergo adjustments, especially after the users’ feedbacks. Therefore, do not hold to the details.
Testing
Share your idea of a prototype with the original user to get comments. What has worked? What hasn’t happened?
The tests are crucial for the beginning of a formulation on a final software. It is important to be open to what the users have to say. Preferably, ask them to analyze it and take notes; and in sequence call them for a talk.
To finish, it is important to bear in mind that Design Thinking is not something linear, and it will surely include multiple connections. Knowing that one should never start from the definition or the idealizing, but always from the empathizing point. We are dealing with an iterative process with changes and improvements on the way. The iterations of the product will have to be tested with real users, the comments will be collected, processed and used as a learning process for the next iterations.
Have you been using Design Thinking in your projects for software development? For you to have access to contents like this in firsthand, follow us on Facebook and LinkedIn!