The Pragmatist Roots of Agile - John Dewey's Philosophy and Modern Software Development
The Pragmatist Roots of Agile - John Dewey's Philosophy and Modern Software Development. When the seventeen software developers gathered at the Snowbird ski resort in Utah in 2001 to draft the Agile Manifesto, they were articulating principles that would revolutionize how teams build software. What they may not have realized is that they were echoing ideas first developed nearly a century earlier by American philosopher and educator John Dewey. The parallels between Dewey's pragmatist philosophy and agile software development reveal a deeper truth - both represent responses to rigid, theoretical approaches that fail to account for the messy, adaptive nature of real-world problem-solving.
The Pragmatist Roots of Agile: John Dewey’s Philosophy and Modern Software Development
When the seventeen software developers gathered at the Snowbird ski resort in Utah in 2001 to draft the Agile Manifesto, they were articulating principles that would revolutionize how teams build software. What they may not have realized is that they were echoing ideas first developed nearly a century earlier by American philosopher and educator John Dewey. The parallels between Dewey’s pragmatist philosophy and agile software development reveal a deeper truth: both represent responses to rigid, theoretical approaches that fail to account for the messy, adaptive nature of real-world problem-solving.
Learning by Doing: Experience as the Foundation
At the heart of Dewey’s educational philosophy was the radical notion that learning happens through experience, not passive reception of information. In his seminal work Experience and Education (1938), Dewey argued that genuine education emerges from the interaction between the learner and their environment, through cycles of action and reflection. Knowledge, for Dewey, wasn’t something to be transmitted from teacher to student like pouring water into a vessel—it was constructed through active engagement with problems.
Agile development embodies this same principle. Rather than spending months creating comprehensive documentation and detailed specifications before writing a single line of code, agile teams learn by building working software in short iterations. Each sprint produces tangible results that the team and stakeholders can interact with, learn from, and use to guide the next iteration. The agile principle “working software over comprehensive documentation” is pure Deweyan pragmatism: we understand software not by theorizing about it, but by creating it, using it, and observing the results.
The Experimental Method: Inquiry and Iteration
Dewey viewed thinking itself as a form of experimentation. In How We Think (1910) and later works, he described inquiry as a process that begins with a problematic situation, proceeds through hypothesis formation and testing, and concludes with a resolution that transforms the original situation. This “pattern of inquiry” was cyclical and self-correcting—each solution becomes the foundation for recognizing new problems.
This is remarkably similar to the agile development cycle. Teams start with user stories or problems to solve, develop hypotheses about solutions (in the form of code), test those solutions with real users or stakeholders, and use the feedback to refine their understanding and approach. The retrospective—a regular meeting where teams reflect on their process and outcomes—is a ritualized implementation of Deweyan reflection. Like Dewey’s experimental inquirer, agile teams treat every sprint as a hypothesis test, where failure is not a setback but a source of learning.
The concept of the “Minimum Viable Product” (MVP), while not explicitly part of the original Agile Manifesto, extends this experimental approach. An MVP is essentially a Deweyan experiment: deploy the simplest version of an idea that can test your assumptions, observe what happens, and let reality guide your next steps.
Responding to Change: Adaptability Over Fixed Plans
Dewey’s philosophy emerged partly as a response to traditional education’s emphasis on predetermined curricula and rote memorization. He saw this as fundamentally at odds with the nature of lived experience, which is dynamic, uncertain, and constantly evolving. Dewey advocated instead for education that prepared students to be flexible thinkers capable of adapting to new situations.
The fourth value of the Agile Manifesto declares: “Responding to change over following a plan.” This directly challenges the waterfall model of software development, where requirements are supposedly fixed at the project’s outset and any change is treated as a costly deviation. Agile recognizes what Dewey understood: in complex, evolving situations, rigid adherence to initial plans often leads to failure because the plans were based on incomplete understanding.
Both Dewey and agile advocates recognize that uncertainty isn’t a problem to be eliminated through better planning—it’s an inherent feature of complex endeavors. The appropriate response is not more elaborate upfront planning but building systems and practices that enable rapid adaptation.
Democracy and Collaboration: Breaking Down Hierarchies
Dewey was deeply concerned with democracy, not just as a political system but as a way of life characterized by collaborative problem-solving and shared inquiry. He believed that rigid hierarchies—whether in education or society—stifled the free exchange of ideas necessary for genuine learning and progress.
Agile development similarly emphasizes collaboration over hierarchical control. The agile principle “business people and developers must work together daily” breaks down the traditional wall between “the business” and “IT.” Self-organizing teams, another agile principle, embody Dewey’s faith in collaborative intelligence rather than top-down authority. The daily stand-up meeting, where team members share progress and obstacles as peers, is a small-scale enactment of Deweyan democratic practice.
Both philosophies recognize that the people closest to the work—students in their learning, developers building the software—have crucial knowledge that formal authorities lack. Wisdom emerges from dialogue, not decree.
The Continuity of Means and Ends
One of Dewey’s most subtle but powerful ideas was his rejection of the traditional separation between means and ends. He argued that the quality of the process shapes the quality of the outcome—that means and ends form a continuum rather than a simple cause-and-effect relationship. An education that treats children as passive receptacles cannot produce active, engaged citizens. The process educates as much as the content.
Agile embodies this principle in its emphasis on sustainable pace and team health. The agile principle “continuous attention to technical excellence and good design enhances agility” recognizes that how you build software—the practices, the code quality, the team dynamics—directly affects what you can build. You cannot achieve good outcomes through poor processes any more than Dewey believed you could create democratic citizens through authoritarian education.
The agile focus on continuous integration, test-driven development, and refactoring represents an understanding that the means of development (clean code, good tests, regular integration) are not separate from the ends (working software) but constitute the very fabric from which quality software emerges.
Practical Intelligence: Theory Grounded in Practice
Dewey rejected the ancient philosophical tradition that elevated abstract, theoretical knowledge above practical know-how. For Dewey, intelligence was fundamentally practical—it meant the ability to effectively navigate and transform real situations. Theory divorced from practice was sterile; practice uninformed by reflection was blind. Genuine intelligence integrated both.
Agile development maintains a similar stance toward software methodologies and best practices. While agile teams value patterns, principles, and techniques, these are always subordinate to “individuals and interactions over processes and tools.” An agile team doesn’t follow a methodology because it’s theoretically sound or because it’s what the textbook says—they adopt practices because those practices help them deliver better software in their specific context. And they continuously inspect and adapt those practices based on results.
This is why agile methodologies like Scrum and Extreme Programming provide frameworks rather than rigid procedures. They embody Dewey’s understanding that genuine problem-solving cannot be reduced to algorithmic rule-following—it requires contextual judgment informed by both principle and experience.
The Limits of Prediction: Embracing Emergence
Central to Dewey’s philosophy was an acceptance of contingency and emergence. Influenced by Darwin, Dewey saw the universe as genuinely creative and open-ended, not deterministic. This meant that outcomes could not always be predicted from initial conditions—new properties and possibilities emerged through interaction and development.
Agile’s embrace of empirical process control reflects the same worldview. Complex software systems exhibit emergent properties—you cannot fully predict how a system will behave, how users will interact with it, or what problems will arise, no matter how thoroughly you plan. The appropriate response is frequent inspection of actual results and adaptation based on what emerges.
This is why agile teams work in short iterations with frequent releases. Each release is an opportunity to observe what emerges when software meets reality, rather than waiting until the end of a long development cycle to discover that reality doesn’t match the plan.
A Philosophy for an Uncertain World
The deep resonance between Dewey’s philosophy and agile principles is no accident. Both emerged in response to similar problems: the inadequacy of rigid, hierarchical, plan-driven approaches in the face of complex, dynamic situations. Dewey was responding to an educational system that treated children as passive vessels to be filled with predetermined content. The agile movement responded to a software industry that treated development as a predictable, controllable engineering process that could be planned in detail upfront.
Both Dewey and the agile pioneers recognized that the appearance of control provided by rigid plans and hierarchies was illusory. Real mastery comes from building systems—whether educational or developmental—that are responsive, adaptive, and grounded in continuous cycles of action, observation, and reflection.
For contemporary software teams, understanding these philosophical foundations can deepen their practice. Agile is not merely a set of techniques or a reaction against waterfall—it represents a fundamentally different epistemology, a different understanding of how we learn, work, and create in conditions of uncertainty. When teams struggle with agile adoption, it’s often because they’ve adopted the practices while retaining a Cartesian mindset that craves certainty, comprehensive plans, and unchanging requirements.
John Dewey, writing in an era of industrialization and social change, understood that education needed to prepare people not to execute predetermined plans but to think intelligently in the face of novel problems. The agile movement, emerging in an era of rapid technological change and increasing complexity, understood that software development requires the same adaptive intelligence. Both recognized that in a world of change, the greatest skill is not the ability to follow a plan but the capacity to learn, adapt, and create in conversation with an evolving reality.
In this light, agile software development appears less as a recent innovation and more as a contemporary expression of pragmatist ideals that have been with us for over a century. The developers at Snowbird may have been crafting a manifesto for software, but they were also—perhaps unknowingly—carrying forward a distinctly American philosophical tradition, one that privileges experience over dogma, adaptation over rigidity, and collaborative inquiry over hierarchical control.