Agile doesn’t have a strict definition. People look at Agile and see different things. You can think of it as an idea, a philosophy, a mindset, or as an umbrella term for several practices. Sometimes it’s a methodology, a process, or a buzzword.
Agile at its core is a manifesto. A declaration. Four values and twelve principles that put forth a set of ideas to help you think differently about software development, as an alternative to heavyweight methodologies, with rigid and restrictive practices and processes, often bureaucratic, documentation driven, and demotivating with unrealistic demands.
The values and principles are, in my opinion, the most neglected parts of Agile. With such few (16) conventions to follow, what that ends up meaning is, in fact, a neglect of the core of Agile.
Values and principles are what you find important. They are the support for how you will reason about things or how you will behave. To be Agile means to follow the Agile values and principles.
But many companies only adopt the practices from Agile, not also the values and principles. This way they think they can apply Agile on top of what they are already doing, without the need to truly change anything. They apply Agile like it’s a coat of paint, without regard for how the surface should be prepared before painting. The paint might be new, shiny, and looking really nice, but will eventually dry out and peel off because it’s not supported by the right surface. Likewise, Agile implementations will inevitably fail if they are not supported by the right values and principles.
Let me explain with a simple example: trash.
What do you do with trash? You throw it out, right?
But trash isn’t just something that should end up in the landfill. It contains useful materials that can be recycled, like plastic, glass, paper, etc. So now another question: do you recycle?
Why, or why not?
If you think it’s important, you will recycle. If you don’t care, you won’t.
I personally think it’s important, so I recycle. I separate plastic, glass, paper, and metal and place them in separate containers when I take out the trash. Used cooking oil can also be recycled, but there isn’t a container for it, you have to take it to (certain, not all) gas stations that collect it. So I do that too.
In my town, it’s easy to recycle if you live in a newer apartment complex because you have separate containers on-premises. But even if it’s convenient, many don’t recycle because they don’t care. Garbage or trash is the same for them. As long as it’s not in their house, it doesn’t matter where it is. So they throw everything in the same pile.
When living in an older building you don’t have separate containers on-site, but you can still recycle by using bins on the street, usually located at large road intersections. I did this for a lot of years, taking the trash out for a walk once per week. And when I reached the recycling bins, I would usually discover that they are were full :) So time for another walk to the next intersection, where maybe the containers were emptier. It wasn’t at all convenient. And just to mention it, there weren’t any fines to force me to do it, and I wasn’t losing any money deposit if I didn’t do so. It would have been way easier for me to give up and just throw everything in with the garbage every time, or recycle just some of the time when I didn’t have to walk all over the city. But I didn’t do that. I still recycled every time, because for me it was something important.
Getting back to what occurs inside companies, when you think about your Agile implementation, think recycling and ask yourself:
- Are we adopting Agile or just convenient Agile practices?
- What are the values and principles we are using to frame the things we do?
- Are these values and principles shared by others in the organization?
- What is important?
And while you’re at it, ask yourself if you recycle enough.