Design Thinking and Software Development: Architecting for Success
One of the most powerful tools in
the hand of today’s innovator is Design Thinking. Gaining popularity as a method
of creative problem solving, it has been used successfully in various fields to
create significant innovations. The
annals of Design Thinking lore are replete with inspiring examples like how an industrial
designer re-imagined MRI scanners to make them kid friendly [1] or how design
thinking was used to improve patient experience at Stanford Healthcare [2]. There are many more examples just a web search
away that are truly insightful and show how this approach truly keep the user right at the center of the innovation process.
Therefore, it is no wonder that the tech industry, which thrives on innovations, is the perfect domain for adopting
Design Thinking in diverse areas including software development and testing. In fact, many groups and organizations have
made rapid strides in using Design Thinking to aid Software Development.
So… What is Design Thinking
Like every popular concept, Design
Thinking has many definitions. One
definition among many that I have liked, is this à
Design thinking is a non-linear, iterative process that teams use to
understand users, challenge assumptions, redefine problems and create
innovative solutions to prototype and test. Involving five phases—Empathize,
Define, Ideate, Prototype and Test—it is most useful to tackle problems that
are ill-defined or unknown. [3]
The following diagram for d.school
at Stanford[4] is often used to depict Design Thinking Process.
As an architect, I find Design
Thinking so appealing because it is a methodically, actionable and most
importantly an end-user focused approach to evolve a solution concept. And I say evolve deliberately here, because
just like evolution, every iteration reinforces what really resonates while weeding
away the weak ideas. Not just, in my
experience, if done right it also gets more than just a regular dev team
invested in the solution. It never hurts
to have some of your target users as your promoters. And, no, it is not magic, but it does take some
experience before you start getting it right and can guide your team away from
the typical pitfalls.
A few questions that I have often
heard being asked in talks that I have given on this subject or have attended can
be paraphrased as follows:
- How do we use Design Thinking for Software Development?
- What are the steps involved?
- Why is Design Thinking even a thing in Software Development
These questions are not much different from those that I challenged myself with when I was first introduced to Design Thinking. These are deep questions and let me share my perspective on a couple of them, starting with the all-important question àWhy?
Why Design Thinking matters in
Software Development
A few aspects that make Design
Thinking an attractive means to conceptualizing solutions are:
User Focused: A design
thinking-based solution is done with the user right in the center of the conceptualization
process. Both the empathy analysis and test steps are conducted with complete
user involvement to ensure their point of view drives the solution design. Mind
you, design thinking is nothing like going with a pen and paper just once in
the beginning of the project, asking some questions to users, drawing your
conclusions and building something. Here the mode of evolving the solution
concept is based on user empathy and proceeds in iterations with rapid prototypes. These prototypes could be just paper or
cardboard models but allows users to get a feel of how the idea is shaping
up.
De-risking of Project: One of biggest risks in solution development
is that you do everything that you thought would really wow the customer, but either
during the User Acceptance Tests or worse after you are live, you suddenly get
a set of users who are quite unhappy with the results. Doesn’t matter, if you
had done a few demos, the result may turn out to be less than desirable. Design thinking removes these risks because during
the prototype review or test phases your users are actually handling your proto
and you are getting an immediate feedback of what works versus what doesn’t.
More Robust Technology Solution: As the functional aspects of the solution,
the boundary conditions and even nonfunctional aspects evolve through the
process of design thinking, it allows the underlying engineering aspects to be
given more careful consideration. Not
only it allows for a more holistic application architecture, but it technology
choice decisions are more grounded on what the actual needs are.
Creating your Promoters: I have mentioned this earlier as well. The collaboration
with your user groups in order to create for them something that they would actually find useful and recommend others, is a tremendous value that accrue out of an well-executed projects
that adopts design thinking.
Adopting Design Thinking
The advantages of adopting
Design Thinking are obvious from the discussions we just had. But I would be
remiss if I didn’t add a note of caution.
The adoption and execution could suffer if the practitioners are less
than convinced on the process. As software developers we often have propensity jump to a
solution than to go through the iterations, which is counter productive in a design thinking scenario. The other area to take note of is the
appetite of the organization to adopt this paradigm shift in the innovation approach. A good grounding in Design Thinking theory
and practices, proper training and most importantly having some one to get
guidance from is of much help.
In the next few weeks and months,
we will explore details of some of the key best practices together. Meantime I hope
you will explore this concept more and see for yourself how it leads to success. In fact, there are many resources which can guide
you to your initial Design Thinking exercises.
Happy Innovating.
References:
[1] https://www.goodnewsnetwork.org/terrifying-terrific-man-redesigns-medical-machine-delight-children-instead-scare/
[1] https://www.goodnewsnetwork.org/terrifying-terrific-man-redesigns-medical-machine-delight-children-instead-scare/

Comments