© 2021 Strange Loop
Agile, in software development terms, is characterized by a set of practices and strategies that emphasize communication and collaboration within teams focused on delivering high quality software that satisﬁes an immediate business need. While there are different approaches to Agile (the most widespread of which are eXtreme Programming and Scrum), common principles can be found in all: the importance of quality, early feedback, high communication, group cohesion, etc. These principles guide Agile teams in making decisions on how and where to spend their time to solve business problems with software.
While Agile is not generally thought of as a software philosophy, the ideas and principles behind it have a balanced, Zen-like quality. Zen thought is devoted to self-examination and mindful existence by following simple practices that can help one achieve a better understanding of life and the interconnectedness of things. The philosophy says that only by letting go of preconceptions, ambition, and other distractions is it possible for an understanding of our true nature to emerge.
Where Zen's focus is on individual improvement, the activities of warfare apply to groups and include planning and estimation, cooperation on shared objectives, reﬂection on successes and failures, among others. Behind the details and organization of warfare lives the Warrior Spirit, which embodies an ethos of discipline, courage, selﬂessness, duty and honor. These values strengthen the resolve of the warrior, particularly in the face of adversity, and provide a purposefulness to everyday activities whether mundane or exciting.
Two mindsets, each grounded in disciplined practices, have parallels with the Agile software development mindset. Balancing principles from these two opposing perspectives is necessary for Agile developers to mature and evolve professionally. This technology-neutral talk will describe how both Zen principles and the precepts of the warrior mindset can inform Agile developers seeking mastery of their craft as well as better results in their business.
Mario Aquino is a St. Louis software tinkerer with passionate opinions about testing, design, simplicity, and team dynamics. His main technology preoccupation is Ruby, but he generally tries to enjoy whatever sorts of problems his consulting career presents him. You can read more of his thoughts via Twitter (@MarioAquino) or his often ignored blog: http://marioaquino.blogspot.com.