Martin Rue

Making things. Writing code. Languages.

Agile – 'A' For Adjective

Are you doing happy? No, seriously, are you doing happy? OK, what about this, are you doing flexible? You probably think I’m talking nonsense, and that’s because I am – I’m using adjectives as nouns.

In addition to being entirely incorrect, there’s another more subtle issue with using adjectives as nouns. First, let’s consider what a noun actually is. A noun is a named thing, an object or an idea, right? Nouns are generally well defined things, rarely ambiguous in meaning; a table is a table, a payment is a payment and a rule is a rule.

If I ask you "do you have a table?" or "have you received a payment?" you don’t need to pause to consider what it is to be a table or a payment in order to answer the question.

On the other hand, if I ask you "are you happy?" or "are you flexible?" it’d be normal for you to consider the question more carefully, since, what does it mean to be happy or to be flexible? An adjective places an attribute on a noun to better describe it, and sometimes that attribute can be ambiguous, or at least have different criteria for different people, rightfully causing us to consider it more carefully.

When we use adjectives as nouns, it suggests they are well defined things that we all agree upon. ‘Are you doing happy?’ makes it sound like we’ve all had a lovely big committee meeting, drank coffee for a few hours and decided on an absolute definition for happy. We’ve made happy into a named, well defined thing. We’ve made it more absolute. But when we use it as an adjective, i.e. ‘are you happy?’ it keeps the definition more open and more relative.

And this is the problem with the question "are you doing agile?" It makes agile sound like a well defined process that you’re either following or ignoring. But agility is an attribute that should describe a noun such as your organisation or your team. You can be agile, sure, but that won’t necessarily be the same definition of agile as someone else.

Of course we all have roughly the same goal in aiming to be agile in software development. We all want to be able to respond to change as quickly and as safely as possible. To large teams, being agile might require having a well defined process that allows work to be prioritised and delegated efficiently across the team. To tiny teams, being agile doesn’t necessarily have the same communication challenges and might not require a process such as scrum, but instead work better with a lighter approach such as kanban.

Some will argue that testing is the best way to agility while others will argue that simplicity is the best way. Some will insist that pairing produces the best results and others will preach the benefits of short iterations and daily stand-ups. The point is, all of them are probably agile in ways that work for them individually.

Let’s start asking people if and how they are agile, rather than asking if they’re doing agile. Asking if we do agile makes it sound like some kind of strongly defined process that can’t be moulded into your organisation in a way that works for you – it most certainly can.