Design thinking and agile development are methodologies for solving complex problems that include multiple parties involved in generating the best ideas, testing them, prototyping the ones that are best fit for clients needs and implementing them.
The basic principle behind design thinking is understanding people's needs and finding the best solutions to meet these needs. This is not a linear process but more exploration type of endeavor of different plausible ideas and separating the ones that have the most prospect to positively impact end-user satisfaction. 
Simply put creating a product that people want and need the most.


So where does agile development fits into design thinking and creating best solutions possible? Agile development is a group of software development methods that at its core has customer satisfaction as the highest priority, welcomes changing requirements as opposed to strictly following a plan. Simplicity, sustainable pace and self-organized teams are essential for frequent delivery of software and this cannot be achieved in a traditional waterfall approach. Regular reflection and adaptation to changing requirements are necessary for any project that we want to call "agile". 


There is a reason why design thinking and agile development are separated as methodologies that work together on the same goal. Agile development is more structured approach and a software development method while design thinking is a more explorative way of emphasizing with real people and identifying what problems do they face regularly while interacting with the product. Together they combine perfect match, that in the end has enough structure, while maintaining user-centric orientation.   


This leads me to the first step of design thinking process and that is "empathizing" with the people, the end users. This in general means walking in shoes of the user, to have an objective perspective on someone else subjective reality, experiencing their feelings, efforts, and frustrations in achieving the end goal.

The second step of design thinking process is "reframe", reframing is a process of changing the perspective on a problem that is currently present by reevaluating basic truths for example "how to change users from not filling out web form" to "how to reward people for filling out a web form". The end result is the same but reframe can change the way we look at things from different point of view. Often personas are created as a mean to identify with users and create a different perspective on problems. Similarly, as in marketing where target group is identified here, we need to identify who are real users of the product, how they think and feel and in the end how they act. Completeness of understanding the real people is essential in delivering an experience that is both satisfying and goal fulfilling. 

The third step in design thinking is "brainstorming" or idea creation where a number of different ideas are created. The details are still not important but quantity and diversity of ideas are important. Details come only later when we select ideas that have the greatest potential.

The fourth step in design thinking is "prototyping", a low-res version of the ideas with whom the end user can interact and give feedback. 

The final step is "testing" the prototype on end users,  receiving feedback and improving prototype solution multiple times if needed. 
I won't go into details of agile methodology and what are the steps, I wanted to give in this article general overview and feeling of what design thinking is and how it connects to software development methodologies in this case agile.


Based on earlier mentioned steps of design thinking we can conclude that process of continuous innovation and improvement results in a much better product that is achieved by a collaboration of end-user engagement and development team. 

The deeper meaning of this relationship is if end users are involved and valued in the design process they will be more attached to create positive outcomes and continuous provision of the information-feedback loop. This means showing interest in what people want ignites interest and attachment to positive outcomes. The iterative design thinking process supported by agile development treats every product as an unfinished prototype that evolves in time changing as user needs change.