Design thinking for developers: Step by step guide
How to combine agile with design thinking without breaking your product roadmap
Steve Jobs was right. “Design is not just what it looks like and feels like. Design is how it works.” And no one knows how a product really works like a developer does. You made it, you understand it. Period.
So does that make a developer ito a designer, by Jobs’ definition? Not exactly. But it does mean that people increasingly recognise the importance of developers in a good design process. And developers need to get comfy with combining design methodologies with software development processes. Design thinking can be a great way to do that.
Justinmind takes a step by step look at how developers can mix design thinking tactics with agile processes while still shipping on time.
What is design thinking?
First, for any developers out there who don’t know, design thinking is a way to solve problems. Using a process of iteration, design thinkers challenge assumptions and redefine perspectives.
Design thinking a great way to tackle ‘wicked problems’ through a combination of brainstorming, prototyping, testing, iterating and conceptualization. It’s also a great way to deliver products that are fine-tuned to user needs, which usually happen to be products that users love.
If that all sounds a little waffley, take a look at the phases of design thinking as defined by the Interaction Design Foundation:
- Empathise with users
- Define the problem/user needs
- Ideate to help challenge assumptions
- Prototype solutions
- Test those solutions
Variations on this five step system are used by heavyweights such as IBM and Samsung across their design projects worldwide. When Justinmind spoke to IBM Designer Doug Powell he told us that “to do Design Thinking you need more than just designers….” That’s why developers at IBM get involved too – just check out Kelly Churchill’s rundown of how she uses design thinking.
Download the best prototyping tool for designers and developers
Do developers need to get into design thinking?
You might feel that your product roadmap is already pretty packed, thanks very much. Requirements, scrums, sprints – as Jonathan Farrell points out on Medium, developers are supposed to be agile thinkers, not design thinkers.
But agile doesn’t always produce flawless development results. As Farrell notes, agile methodologies, while great, can result in problems such as:
- Code sloppiness
- Heavy-handed management
- Constant lack of ‘perfect’ finished product
Design thinking can be seamlessly (and pretty painlessly!) combined in development processes. As Scott Stitner explains in Forbes, “design thinking truly enhances development; it prompts developers to solve complex problems yet remain focused on the solution rather than the problem.”
Design thinking for developers: Get started step by step
So how do you start introducing design thinking practices as developer, whether you’re the only programmer in a start-up or one of a development team in a large enterprise?
Step 1 – Introduce a developer ‘ambassador’ into design meetings
This will ensure that the dev team is thinking about ‘design’ from a user experience perspective from the get-go. At this stage the developer will also bring useful things to the design team, such as deep product knowledge, recognition of the possibilities and limitations of the information architecture.
Put your UX hat on. No one knows the product better than developers, but UXers know the user better. Either sitting down with the UX team (if you have one) or trying out a few UX techniques will help you start thinking like a user. Try user interviews, surveys, review mining and Lean UX observation tactics to increase your empathy towards the user.
Step 2 – Try Journey Mapping
At this point you want to break out does, thinks, feels. That means, the actions a user takes at each touch point of the product experience, what they think about and how they feel at that moment. This is a revealing way to discover what you already know (or assume) about the user experience and where your knowledge as a developer is lacking. And it doesn’t have to be a fancy process – breaking a wall or whiteboard into three columns – Does, Thinks, Feels – then have developers place post-its with different parts of the product experience in these columns.
Step 3 – Get used to making storyboards
In the spirit of challenging assumptions, you need to come up with as many solutions as possible to the problem, not just one. You can either download some storyboard templates to print off and fill out in a brainstorming session, or use fancy storyboarding software. Either way, the aim is to work through from basic functionality through all the possible functionalities of the product and their user impact. Storyboarding the software can be a great way to start thinking laterally. Just think of storyboards as more detailed user storie.
Find out more about storyboarding for software development on Forbes.
Design thinking with Justinmind prototypes
Step 4 – Prototype with a tool made for both designers and developers
OK, time to prototype those solutions you’ve been cooking up. A tool like Justinmind comes in handy here – there’s one interface for designers and one for developers, meaning that team members see the exact information they need depending on their interface. The developer interface incorporates lots of features that devs expect, like red lines, a design inspector and CSS styles. Work up a ton of prototypes quickly to see solutions in action – remember that these are throw-away artefacts at this stage in the design thinking process.
Find out more about Justinmind for developers here
Step 5 – Implement
Aaaand let’s come back round to agile, because all these verified assumptions now need to be worked into code. Based on the validated solutions produced in the previous steps, what product features are you going to have to build? Create agile user stories around each of these features, and then prioritize them.
Awesome design thinking resources for developers
If you’re interested in bringing design thinking methodologies into software development processes there are plenty courses and resources out there.
- Stanford: Innovation Masters Series: Design Thinking and the Art of Innovation
- General Assembly (at select locations) Design Thinking + Rapid Prototyping
- MIT Professional Education: Mastering Innovation and Design Thinking
- IDEO U
- Design Thinking for Strategic Innovation by Idris Mootee
- This is Service Design Thinking by Marc Stickdorn and Jakob Schneider.
Design thinking for developers – the takeaway
Design thinking isn’t just for designers. Organizations are increasingly using design thinking methodologies across silos to creat user friendly products and experiences. It’s not the end of agile as we know it, but it could be the start of a beautiful friendship.