AMIA#06 | Navigating Complexity: A Guide for Agile Teams (Part 3)
Aha! Moments in Agility
Live in your inbox every Sunday to help you build valuable software sooner
AMIA: #06
Reading Time: ~ 5 minutes
Hello. Welcome to the 5 new subscribers this week.
And… 74 new connections on LinkedIn.
Thanks for choosing to be part of the conversation.
In today’s email:
The story: Navigating Complexity: Part 3 - Applying design thinking to agile workflow
Navigating Complexity: Part 3 - Applying Design Thinking to Agile Workflow
Welcome back to the Navigating Complexity series.
In part one, I discussed the Cynefin Framework and how it can help agile teams identify the domain in which they operate.
In part two, I introduced you to leveraging levels of ignorance to understand requirements and choosing an appropriate agile way of working.
In today’s email, I’ll discuss applying design thinking to the agile software development team’s workflow.
I. Understanding Design Thinking
Design thinking is a human-centered approach to problem-solving that emphasizes empathy, ideation, prototyping, and testing to create innovative solutions that meet user needs. In software development, applying design thinking can help agile teams better understand user needs, generate creative ideas, and validate solutions through user testing.
II. Applying Design Thinking to Agile Software Development Workflow
Here are some ways that agile teams can apply design thinking to each step of the software development workflow:
1. Define (Requirements Analysis)
During the Define stage of design thinking, teams clarify the problem and create a shared understanding of user needs and pain points.
In software development, this stage aligns with requirements analysis during the develop step of the agile workflow. To apply design thinking, teams can:
Use user research to understand user needs and pain points
Understand the user’s perspective through user personas and empathy maps
Explore the problem in terms of user needs and pain points
Create user stories and acceptance criteria to ensure the solution meets user needs
2. Ideate (Solution Development)
During the Ideate stage of design thinking, teams generate a wide range of ideas and potential solutions to address the problem.
In software development, this stage aligns with the analysis of the user stories and further breakdown. To apply design thinking, teams can:
Brainstorm potential solutions with team members
Use ideation techniques, such as mind mapping or reverse brainstorming, to generate creative ideas
Prioritize ideas based on feasibility and impact on user needs
Categorize the ideas using the levels of ignorance and Cynefin framework from part 2 of the series.
3. Prototype (Code Development)
During the Prototype stage of design thinking, teams create low-fidelity prototypes to test and refine ideas with users.
In software development, this stage aligns with code development. To apply design thinking, teams can:
Create the simplest possible working software that meets the acceptance criteria of the user stories. Software development is an iterative process, so with the first iteration, there is no need for extra bells and whistles.
Conduct user testing to validate assumptions and gather feedback
Iterate on the software based on user feedback and refine the solution accordingly.
4. Test (User Acceptance Testing)
During the Test stage of design thinking, teams test and iterate on prototypes to refine solutions and validate assumptions.
In software development, this stage aligns with user acceptance testing during the test step of the agile workflow. To apply design thinking, teams can:
Conduct user acceptance testing to validate the solution meets user needs and acceptance criteria
Incorporate user feedback and iterate on the solution accordingly
III. Benefits of Applying Design Thinking to Agile Software Development Workflow
Here are some benefits of incorporating design thinking in the agile software development workflow:
Improved User Experience: By focusing on user needs and pain points, agile teams can create solutions that meet user needs and enhance the overall user experience.
Enhanced Collaboration: Design thinking can foster collaboration and create a shared understanding of the problem, which can help the team work more effectively together.
Increased Innovation: Design thinking can help teams generate and test a wide range of ideas, which can lead to innovative solutions that meet user needs more effectively.
Finally, it focuses the team’s effort and time on the most valuable work.
IV. Conclusion
Design thinking applies to two streams of work each sprint.
The workflow for implementing the user stories selected for the current sprint.
The workflow for defining work for upcoming sprints.
Both streams are being worked on in parallel in the team.
The hypothesis based approach, from design thinking, aligns very well with the iterative approach in agile software development.
This concludes this series for now. I may return to add more to it in the future.
From next week, I will be starting a series on the basics of the Scrum framework for new Scrum Masters. See you then :)
When you’re ready…
I can help you in 3 ways:
Check out the resources list
Forecast timelines like a Pro in under 1 minute - Zero Estimate System
Fix the root cause of bugs & defects in your team - Root Cause Analysis Template
Book One on One coaching with me - Become a go-to Scrum Master in your organization.
Find me on LinkedIn and introduce yourself :)