When I am speaking with executives, ScrumMasters and other leaders of change in organizations, I often present a simple 3-layer model to understand the relationship between the various moving parts in the Agile Framework:
- The Agile Values and Principles – These describe the culture and, in the Agile Manifesto, are the definition of the word “Agile” as applied to software development. I didn’t write the Agile Manifesto so I don’t get to re-define the word Agile. To give an example: in the manifesto it says “The best architectures, requirements and designs emerge out of self-organizing teams.” As a former enterprise architect at Charles Schwab, I struggled with what I saw as incredibly wasteful up-front architectural activities when I knew that developers would (sometimes) ignore my glorious ivory-tower plans! Therefore, if you are still doing up-front architecture and forcing your teams to comply to that architecture, you aren’t Agile. Therefore, as an individual, a team or an organization, you need to make a conscious decision to “BE” Agile or not… and if you decide not, then please don’t call yourselves Agile.
- The Agile Toolkit – There are many hundreds of distinct tools in the Agile toolkit including Scrum, OpenAgile and other “large” Agile methods, as well as the Planning Game, Product Box, Test-Driven Development and other “small” Agile techniques. Any group of people trying to BE Agile, will need to use dozens or even hundreds of different Agile tools. I call them tools because the analogy with construction tools is a very good one. Scrum is like a hammer. But you can’t do much with just a hammer. Scrum is a great, simple tool. But you always need other tools as well to actually get stuff done. All the tools in the Agile Toolkit are compatible with the Agile Values and Principles. Even so, it is possible to use the Agile Tools without being Agile. A Scrum team that never gets together face-to-face is not an Agile team: “The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.” (Video conferencing doesn’t count.)
- The Agile Organization – When you start using a tool, there is a learning period. We start by being conscious of our incompetence and as we persist, we become competent… but it isn’t natural or habitual yet. Eventually, with continued use, we become unconscious of the tool. IDE’s and version control are like this in most organizations: we don’t even think about them! But getting through that initial stage requires us to change; to develop new skills. This process usually requires discomfort or pain (including psychological pain). An organization attempting to BE Agile and to use many of the tools in the Agile Toolkit will need to make many changes and often these will be difficult. For example, incorporating the Product Owner role from Scrum into your organization requires new role definitions, new performance evaluation practices and criteria, new compensation systems, new communication and reporting mechanisms, new authority and accountability processes, etc. etc. All of the changes required are about creating Enterprise Agility throughout the whole organization, beyond just software or IT. These extensive changes are often started in a very ad hoc manner, but at some point they need to become systematic. This is an important decision point for executive management: are we going to be Pragmatic about our Enterprise Agile adoption, or are we going to be Transformative about our Enterprise Agile adoption.
All of this is summarized in this graphic:
The Agile Framework [PDF]
I sometimes also call this the “Agile Ecosystem” since it is a constantly evolving set of ideas (processes, tools, resources) that does not have a clearly defined boundary. For example, the technique of Value Stream Mapping comes from Lean manufacturing but has also be broadly adopted by Agile practitioners.