Design Thinking is about ability and learning. Abilities like dealing with ambiguity, empathetic learning, synthesis, and experimentation, among others. A designer’s ability to make meaning, frame a problem, and explore potential solutions are key. If you're solving a problem, you're designing a solution.
Lean offers a different mindset for managing any system of work. It’s fundamentally about exploring uncertainty, making decisions by experimenting and learning, and empowering people who are closest to the work to decide how best to achieve desired outcomes. Lean says be adaptive, not predictive.
Agile is related to Lean. The differences are mostly about what these mindsets are applied to, and how. In conditions of high uncertainty, Agile offers ways to build software that is dynamic and can adapt to change. This isn’t just about pivoting. It’s also about scaling and evolving solutions over time. If we accept that today’s solution will be different from tomorrow’s, then we should focus on meeting our immediate needs in a way that doesn’t constrain our ability to respond when things change later. The heart of Agile is adapting gracefully to changing needs with software.