There are many agile methods and frameworks, but what is the essence of agility? And how can one describe it without resorting to the terminology of Scrum & Co? At first glance, the Manifesto for Agile Software Development seems like a good starting point for answering these questions. However, propositions like “Responding to change over following a plan” are not very actionable declarations of intent. The principles behind the manifesto are much more concrete when they, for instance, demand to “deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.” However, in their variety of covered aspects, these principles do not provide a coherent picture of what agility is about at its core.
Now, what can be considered essential for agility? First, and most conspicuously, because it is the antithesis of the prevailing plan-driven analytical approach, it is undoubtedly empiricism: Agile means empirical exploration of solutions and markets in a complex environment. Secondly, agility consistently relies on empowering the teams, who constantly question and improve their working methods and work processes in the best tradition of lean management. And third, agility means ownership and teamwork. Agility abandons small-scale expertise, which entails many handovers for any non-trivial development, favoring small, powerful, cross-functional teams that take joint responsibility for their product and develop it further with deliveries at short intervals.
Empiricism comes from the Greek εμπειρία (empeiría), which means experiential knowledge. Empiricism is the attempt to understand causal relationships through the systematic collection of experience. Empiricism, therefore, works with theoretical assumptions about the world formulated as hypotheses and tested or disproved by appropriate experiments. In contrast to analytics (from the Greek ἀναλύειν analyein ‘to resolve’), the system under investigation is not broken down into its constituent parts, but rather the interrelationships are considered on a large scale. The human brain, for example, can be studied analytically and thus understood as a complicated and dynamic network of neurons. Still, our mind’s patterns of thought and biases can only be demonstrated empirically through appropriate psychological experiments.
Agility starts with honestly admitting the uncertainty and complexity of the project and its environment. The logical response to this complexity is then to work more empirically and less analytically and plan-driven. Every prioritization, every sprint goal, and every sprint planning is thus actually a hypothesis about an expected customer benefit. Reasonable hypotheses will prove themselves; bad ones will be refuted by reality. That is why agility means more than just delivering new increments of the product. It is essential to systematically collect data on the impact of the delivery to confirm or disprove the associated hypothesis.
An empirical-scientific system must be able to fail from experience.Karl Popper, Logik der Forschung 17
Agility is based on lean management and can be understood as applying the five lean principles to software development. Its focus is on the rapid delivery of customer value through working software. And the optimal flow for this is created in the interdisciplinary self-organized team, which covers the complete value stream from idea to operation of the software.
In lean management, all employees are encouraged and empowered to question processes and improve them continuously. This empowerment of “ordinary” workers, and thus the focus on the human factor, represents a significant departure from the previously dominant Taylorist mindset: Those who work in the process, rather than their managers, know the processes best and are consequently the ones who can best optimize them. Taiichi Ohno, the inventor of the Toyota Production System, puts it this way:
Standards should not be forced down from above but rather set by the production workers themselves.Taiichi Ohno
This empowerment is at the heart of agile. It is not the ingenious manager but self-organizing teams that create the best architectures, requirements, and designs, as is unequivocally stated in the principles behind the manifesto for agile software development. And in the best tradition of lean management, these teams are also responsible for continuously improving their processes: “At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.”
Far too often, agile methods and Scrum, in particular, are reduced to optimizing workflows. This misunderstanding is based on the assumption that one can organize the existing work differently and better under otherwise unchanged conditions to become faster or more adaptable. However, this mechanistic view completely ignores that agility is actually about teamwork and ownership. Methods such as Scrum only give the team the framework and structure to focus on its product instead of a bunch of incoherent tasks.
A team is not a group of people that work together. A team is a group of people that trust each other.Simon Sinek
Agility means learning collectively through experimentation and continuously improving both the collaboration and the product as a result. However, this learning only works if the people involved can act as a team and not just work together coincidentally this week because specific expertise is in demand in this particular phase of the project. In a certain sense, belonging to a team and shared responsibility for a product is more critical to agility than expertise, which flourishes in most functionally fine-tuned organizations. Of course, agility still appreciates and requires expert knowledge, but rather where the value is created and not in the expert silo.