What does it mean for an organization to be agile? I don’t mean just in terms of agile software development, I mean for any team or company or group of people working toward any common goal.
I tend to think about it in terms of ships: imagine that you are crossing the Atlantic, and you have the option of using one of two ships. The first ship is unaffected by most winds, but cannot be easily steered once set in motion; therefore, you will probably end up very near where you originally aimed to go. The second ship is potentially heavily affected by wind, but is very maneuverable and changes direction and speeds very easily.
If you have 100% perfect information about where you need to go, the first ship is the obvious choice: just point it toward your destination and then go forward. If you learn something new along the way – say, an iceberg is in your path, or suddenly heavy winds blow you off-course – there is no way for you to account for that in the first ship. You are stuck going the direction you chose at the beginning of your journey. The second ship, however, allows you to account for information you gather along your journey because you can easily dodge that iceberg or get back on course. In other words, the second ship lets your crew act on anything new you learn during your journey.
Many of you will recognize how this applies to waterfall and agile software development, but the same idea applies to corporations and lawyers and even sports teams. Nobody ever actually has perfect information, and situations are constantly in flux. Whoever can best gather information and adjust to new conditions is often best able to come out the other side of chaotic environments in one piece. Therefore, instead of putting time and resources toward being able to predict the future (which of course will never happen), organizations should focus on being able to adapt to any new environment. That is what it means for an organization to be agile.