Continued from https://leap.emids.com/design-thinking/
Design Thinking as an important concept was established in our previous post. We now look at how design thinking can be implemented within software development to enhance the overall delivery to a client.
Software development is not only about the impact of how well we code, but the final usability and relevance to the end product. Design Thinking involves developing a deep understanding of customers and of the problems they face, rapid prototyping, and experimentation with users. Therefore, by using design thinking into the software developmental cycle, the overall experience and usability for final end-user is elevated.
Here are the key steps in design thinking:
- Empathize: In software developmental cycle, the initial specification document, is the basis of which development process starts. However, design thinking requires you to, try and actually find out more about what you are about to build. For example how is this software going to be used, who are the users, why is it used etc. Many clients have this value-added work fleshed out by consultants or market-researchers. But software firms need to start looking at this data or at least trying to understand the final user and then start building the software. Research, understanding the problems, finding who the customer is and the scope helps build the empathy. Empathy determines the experience
- Define: Construct a point of view, based on all the insights that have been gained. The definition of the problem statement of what is finally going to be built needs to include the customer needs + user needs + the insights and feasibility study that has been built by the team. There have been times, when the final solutions, does not solve the basic problems that necessitated, the software. Critical thinking to drill down to the main issues, defining the scope and understanding the ecosystem is all equally important. Sharply defined problems will help bring about the best possible solution.
- Ideate: When we build for output, we are focussed on the process and the next steps. When we build for outcomes, we try to find many solutions for the same problem or find solutions that have not been attempted before. This is the crux of a systematic approach to creative thinking. To aid ideation, there needs to be a process of continuously understanding the context of problems and looking at possible indirect consequences i.e. by solving one problem are we adding more problems or solving some others.
- Prototype : This is the iteration – validate and refine phase. This process also helps in shared understanding amongst a variety of stakeholders and builds the final context. Representing ideas as models aids in finding the inconsistencies amongst various stakeholders towards the final solution. Remove and skim out the inconsequential ideas, find new ones and discover new solutions. In agile computing, this process is seen as incremental increasing. Where the basic models are built, and then incrementally increase the quality of this basic model to create a solution.
- Test: Testing is part of an iterative process that provides feedback. In this phase, stimulate user behaviour internally and even go back to the end-user group and test the solution. This is the learning process, to find out how solutions that were ideated actually work in the real world. Learning what works and what doesn’t, and then iterating. This means going back to the prototype and modifying it based on feedback.
Wikipedia defines design thinking as a “way of thinking” that helps build in creativity and innovation. Organizations constantly endeavour to move up the value chain, therefore by adopting design thinking; firms have a higher chance of remaining relevant and competitive in the market.