This is a question that begs for some context. Let’s look at it in three different ways.
What is Agile – generally speaking ?
Here is a dictionary definition of agile to consider:
- Characterized by quickness, lightness, and ease of movement; nimble
- Mentally quick or alert
For me, when I think of agility, both the meanings provided resonate. Of course you have to have the ability to move nimbly, but you also need to have the mental quickness to know that a) you should adjust your course and b) what adjustments to make.
What it means for development teams to be agile
Agile software development teams recognize that the best solutions evolve. They don’t wait for perfect requirements but rather they get started as soon as possible and work from a prioritized list of high level requirements. Requirements that get more detailed when needed. Requirements that may change because the whole team was able to find new information, was able to correct assumptions or was able to recognize a competitive situation and respond to it!
Agile development teams automate their testing. Because they embrace change and let their solutions evolve they rely on computers running and re-running their tests to ensure that breakages are found and fixed immediately.
Agile development teams periodically reflect on their own processes and work towards becoming more effective.
What it means for an organization to be agile
Well why would an organization have to be nimble? The reasons are as varied as the organizations themselves, but at the heart of the matter is the need to respond to change. The situations faced by organizations in the world today change faster than at any other time in history. Competition can spring up unexpectedly from across the globe or instantly with the launch of a website. Regulations can change as fast as the whims of governments.
Long lead times, painfully slow release cycles, acting on speculation instead of real data, staying the course instead of responding to opportunity…these are all things agile competitors are doing away with.
In summary agile means:
- Get started quickly. Go. Get to work on whatever it is that has the highest value to your organization.
- Time box your work. And make that time box as short as you can. 3 weeks? 2 weeks? 1 Week? A day? Keep challenging yourself to deliver value as fast as possible.
- Show your work. Because the whole team wants to learn from it. Have we built the right thing? Do our users approach it in the same way we assumed they would? How can we make it better?
- Embrace change. You got started. You learned. You’re nimble enough to adjust course.
- Continuously improve how you do things. What works in your process? What doesn’t? Change the things that don’t work.
So what is agile – agile might be the very best solution right now to move a business forward to take advantage of new opportunities.
Now for a better question…what can you do right now to lead your team, or your department or your company towards agility ?