Agile as a Mindset, not a Methodology
I was having a conversation with someone recently, about the possibility of doing some work for him. His biggest concern was about the fact that my resume highlights Agile expertise (with a capital A, as he put it). Because he is someone I have worked with before, and I consider him a friend, he was fairly honest about his concerns (Something rare and enjoyable). The bottom line was – in his experience, people who say they have Agile experience or expertise really mean something like “I know the Scrum Methodology and I think if you change your process to match it I can fit in there.” This is probably because a lot of people do mean something just like that when they reference Agile.
I think it is unfortunate that so many people say Agile when they really mean Scrum. If you get involved in the Agile Communities, you will encounter people who say Agile when they really mean Xp, or Kanban – though usually Scrum. It’s become the new religion of the software programmers – now firmly entrenched in our churches of Java, Ruby, or C – we must identify which of the Methodologies we shall claim – the one which is superior of course. I’ve been involved in plenty of conversations about the merits of scrum vs xp vs Kanban, and the merits of each – they are filled with the software equivalent of fundamentalists.
We need to try and minimize this type of thinking. We need to stop saying Agile when we really mean Scrum (or any other methodology). Agile is a mindset, which embraces the facts we like to ignore about software development. Requirements are never “done”; QA can’t wait until the end of a project; things change, often; the team is what makes you succeed or fail, period. One of the things I personally like about Agile is it makes the often ridiculously chaotic and changing world of Software Development feel like a craft; less like a game of whack-a-mole. I use Agile as a way to improve my ability to navigate the chaos; along with my team, my stakeholders, and my customers.
I don’t mean to be one of those people who points at the aging Agile Manifesto and cites it, but I do think they had the right idea in the midst of their vagueness. Agile should really be a mindset among our community, regardless of our methodology. We need to get into the mindset of embracing change – even change in our precious methodologies. We need to take on the mindset of continuous improvement – especially in our methodologies. We need to embrace the mindset of perfect being the enemy of good – and I have yet to see a “perfect” scrum implementation.
In order for folks like my friend to accept and even embrace Agile as a mainstream concept in Software Development, we need to try and decouple it from the religious wars of methodologies. Agile is about how you think, view your craft, and prepare yourself to build something valuable. Who cares how you do it, if you are Agile?