Software Development Made Better with Design Thinking

You are currently viewing Software Development Made Better with Design Thinking

In today’s complex software delivery landscape, simply building a product with a handful of “in” features is not going to result in the expected business (or customer satisfaction) results. For today’s products to really make a difference and drive value, teams need to be able to systematically apply user-centric techniques to solve problems in a creative and innovative way. Many of the world’s most innovative brands including Apple and Google have, for a very long time now, embraced the Design Thinking approach, so their products strike a better chord with users. So what is Design Thinking, and what’s all the craze about? 

Design thinking concepts

An iterative process that aims to better understand users, Design Thinking empowers software delivery teams to challenge assumptions and redefine problems, in an effort to recognize alternative strategies and solutions that might not be immediately evident with the initial level of understanding. Imagine a scenario, where a large bank wants to leverage a digital cash management app to efficiently deal with large volumes of cash transactions; here are 5 key concepts Design Thinking would focus on: 

  • Empathize with users: The primary philosophy or concept of Design Thinking is to empathize with users. This means developing a deep interest in understanding users for whom the product or service is being developed. For the cash management app, design teams would need to develop empathy with bank users in their natural environment and get a better understanding of their needs, wants, emotions, and motivations – in relation to the management of daily cash inflows and outflows. They would need to understand how users check account balances, forecast cash, or accumulate cash from various accounts for efficient bookkeeping and informed decision-making.
  • Brainstorm with peers: Once teams have a clear understanding of user needs, the next step in Design Thinking is to brainstorm with peers to define problems, define insights, and take a solution-based approach to solve those problems. To develop the cash management app, developers will need to document the current challenges bank users are facing in managing daily cash flow, as well as enlist ways in which they can overcome these challenges to increase liquidity.
  • Challenge assumptions: While developing any software application, it is normal for teams to make certain assumptions about how users will use the app, or for what purpose, or what time of the day. In Design Thinking, it is very important for teams to challenge these assumptions and look beyond patterns of thinking modeled on repetitive tasks or commonly accessed knowledge. For instance, if teams developing the cash management app assume users to access the app only via their desktops – given the strict BYOD policies in banks – they need to thwart such self-imposed constraints and develop the solution to allow users to access the app just as seamlessly with their mobile phones, laptops, or other smart devices.
  • Redefine problems: Once the assumptions have been challenged, it is time to think out of the box and redefine problems again to create a solution that perfectly fits the needs of the users. For the cash management app, this would mean re-listing problems being faced by bank users and experimenting with different sketches, prototypes, and test cases to try out new concepts and ideas. Teams would need to think of ways to integrate the app with other financial systems, to pave the way for more efficient management and monitoring of the multitude of cash transactions.
  • Craft a story: As a last step, Design Thinking teams need to craft a story around real users and real environments, turning ideas into real features and functionality. For the cash management app, this means refining and validating designs as well as effectively capturing design concepts. Developers also need to test the product on real users and understand how users interact with the app while investigating the conditions in which they operate – to uncover new ways of improving the design of the app – and provide them with greater control of daily cash flows. 

How Design Thinking helps improve software development outcomes?

There are several benefits Design Thinking brings to the table. Here’s how it helps improve application delivery outcomes: 

    Understand user needs: Understanding user needs sits at the core of any application delivery project; although most teams drive efforts in building products that meet user needs, not many take time and effort in really understanding user feelings and motivations. Design Thinking takes a profound interest in users, empowering teams to monitor users in their natural habitat, and assess their interactions, challenges, and motivations. 

    Define problem statement: Instead of immediately jumping to crafting a solution to the stated problem, Design Thinking empowers teams to spend time in determining the fundamental issue that needs to be addressed. At the same time, it allows them to consider a wide range of potential solutions – resisting the temptation to build a solution based on common assumptions. 

    Build a strong product idea: Design Thinking also enables teams to build a strong product idea. Since common assumptions are frequently challenged, it allows them to redefine their problems and build fully functional, robust, and scalable solutions. 

    Prototype the solution: With Design Thinking, teams can carry out comprehensive research into user experience design, allowing them to dig deeper into the ideas that have been created and selected to solve user needs. By crafting a simple and experimental model of the proposed product, it allows them to check how well the product matches what users want while also getting a clear picture of the potential benefits, risks, and costs of the solution. 

    Test and optimize: Design thinking also allows teams to carry out effective and continuous testing, to uncover new ways of improving the product or design. Based on the feedback received from users, it can work on elements where an improvement or refurbish is needed while making sure that all the aspects of the product stay in alignment with user needs. Such testing not only helps in reducing the number of errors but also helps in improving time-to-market. 

The Powerful Combo of DevOps and Design Thinking 

Design Thinking is a natural ally of DevOps in IT. The core pillar of Design thinking and DevOps is the customer. The Design Thinking approach embeds a client-centric mindset within DevOps, increasing the probability of delivering more customer-centric products. Continuous feedback goes back in the backlog as part of the ongoing SDLC process. Both DevOps and Design thinking approach speed up the delivery process, time to market, and continuous improvement without compromising customer experience. 

We know that empathy is the key driver and brings a lot of difference to the Design Thinking approach. While the best DevOps approach is one-click process, empathy can be a game-changer where Operation teams understand what customers, Businesses, and developers are trying to do. On the other hand, businesses and developers can consider the needs of the operation team and address the core issues well in advance. It can bring a different perspective and effectiveness to the overall product delivery. 

In a world where customers have an extreme choice in the products they choose, using a concept like Design Thinking can help develop a deeper understanding of their needs. By developing empathy for users, brainstorming ideas with peers, challenging assumptions, redefining problems, and crafting a story, Design Thinking helps in framing the problem (and the corresponding solution) in a user-centric way.