How Design Thinking Can Help in Software Development
Mar 124 min read
According to IBM’s authors and Tim Brown:“Design Thinking is a methodology applied by project teams for innovation activities focused on satisfying user needs”. It can be applied to virtually any creative area – however, in this article, we will focus specifically on Design Thinking in software development.
Here are some of the main characteristics of Design Thinking as a problem-solving methodology:
The working process consists of 5 steps: Empathise (with the user), Define(the problem), Ideate (possible solutions), Prototype (selected solutions) and Test (the prototype with users). These steps don’t have to be linear though; Design Thinking leaves the flexibility to move, for example, from the “Test” stage back to “Define”, and redefine the problem.
Empathy and understanding of user needs are the starting point to developing any project. This includes interviews with users, creating their storylines and even researching how they interact with their everyday environment.
Assumptions about the established way of solving problems are challenged. In this sense, Design Thinking encourages “thinking outside of the box’, looking at things from a new perspective and adopting the “beginner’s mind”. (more about that below)
Design Thinking is a methodology that, by default, forces the team to aim for the best results. This approach is not just about solving a problem, but solving the most burning problem in the best possible way. This is achieved by trying to get to the root cause of an issue, rather than just scratching the surface with mediocre solutions.
DT combines humanistic approach with data-driven methods. This means that in order to arrive at the final solution, both scientific research and more ambiguous elements of the problem are taken into account.
The “beginner’s mind” as the bottom line of Design Thinking
“In the beginner’s mind there are many possibilities, in the expert’s mind there are few.” – Shunryu Suzuki
Design Thinking is all about being open to possibilities. This is why the mindset of a beginner is so important for anyone who wants to incorporate this methodology into their workflow.
Of course, the “beginner’s mind” doesn’t refer to a low level of skill – it is rather about the attitude with which one approaches their tasks. Adopting the beginner’s mind means to be able to look at the state of affairs with a fresh eye, without preconceptions based on the past or speculations about the future. It is also about being open to challenge current assumptions and established beliefs about how things “should” work.
This attitude is a must for any team that wants to adopt Design Thinking in software development. As the term itself suggests, it all starts with the style of thinking of the developers, UX designers and other people involved in a project. Being able to think like a beginner is a crucial skill if you want to design innovative software.
A vivid example of how beginner’s mind can help with solving difficult problems is the popular urban legend about a truck driver getting his truck into a low tunnel. The truck, being just about the same height as the tunnel, got stuck in there and paralyzed the traffic.
A crew of expert emergency workers who arrived to solve the situation spent hours trying to figure out what to do. While they were discussing whether it would be better to dismantle parts of the truck or the tunnel, and how to make sure this was safe, a young boy on a bike came by. He looked at the whole scene and all the efforts people were making to find a solution, drawing on their professional expertise. Then the boy asked: “Why don’t you just let the air out of the truck’s tires?”
The best solution to the problem wasn’t found in the expertise of professional emergency workers. It came from the ability to assess the situation with a fresh, unbiased mind of a beginner.
Why Design Thinking is the only way for the software development industry
Adopting approaches such as Design Thinking and beginner’s mind is essential if you want to create new standards for any industry. Quality software development is all about innovating and coming up with new ways of looking at problems. Why is that?
The growing demand for digital products – and digitalization of human life in general – create the need for a completely new standard in the software development industry. The reasons for this are twofold.
Firstly, the digital reality is not just an addition to human life anymore – it became an integral part of it. Mobile applications and software are omnipresent as tools for dealing with virtually every area of life. Because we all spend so much time with those tools, software developers need to not only “solve problems” with the digital products they create. They also need to make sure that those products do not generate new problems (e.g. they don’t encourage addiction or cause mental health issues).
The other reason for employing innovative solutions and Design Thinking in software development is that today’s users’ tastes are more refined than ever. People have such a big range of digital products to choose from, that they will only go for those that are tailored to their specific needs. If they aren’t – they can always look for an alternative product elsewhere.
Any software development agency that wants to be successful has to take the above-mentioned into account. On one hand, software developers hold the responsibility to make the UX design as beneficial as possible to the end-user. On the other hand, they need to answer the demand for the highest possible quality of their digital products in order to simply stay in the business.
To achieve both, it is necessary for software development agencies to think about their products holistically and to be innovative. This is exactly what Design Thinking brings in to the development process.
At Ideamotive we design all our projects through agile processes, Scrum and Design Thinking methodology. If you have a good idea and are looking for a development agency to bring it into life –contact us to arrange a free Discovery Call.