This last week, I was out speaking at the Better Software Conference and Expo in Las Vegas. While I was in the area, a large, well-known company contacted me and asked if I could pop in and given them a talk about transitioning to an agile software development method—my Pragmatic Agility talk. I had an available spot in my schedule, so I agreed. The manager who contacted me was very excited, and announced my presentation which was scheduled for the next day.
But the Powers That Be heard a speaker was coming in, and immediately cancelled the event.
It seems they felt that the manager “hadn’t gone through proper channels” in setting this up. The manager pointed out that no proper channels existed; they’d never had an invited speaker before. Since there was no existing procedure in place to follow to invite a speaker into the organization, they cancelled the whole thing—permanently.
For an organization trying to transition to an agile approach, I dare say they face more than a few challenges.
Agility is all about flexibility and adaptation. If your organization is inherently inflexible, you’re just not ready for agility. You can read the books, hire the consultants, try the practices, but it’s probably not going to work out. Your organization just isn’t ready yet. In fact, it seems to me there are at least a couple of these contra-indications.
You’re not ready for agile if you:
- behave territorially. You mark your territory like an aggressive dog, refusing to share power or information, and let everyone know if you weren’t included in the decision. When something new comes up, avoid it or kill it.
- are inflexible. You’ve got a policy for everything. If it’s not in the book, it doesn’t exist. This is the way we’ve always done it.
- grow uncomfortable with uncertainty. In an agile project, you will not know the project end date or even what features will be delivered in the next iteration. You cannot stand this, and will insist on fixed dates and costs right up front.
- treat developers as a commodity; a uniform, fungible resource. They are all alike. You can’t trust them to think for themselves, you’ve got to make the important decisions for them.
- believe development is a linear process. You ignore unpleasant feedback. Rather than acting on it, you always stick to the plan, just like a politician in an ill-advised military quagmire.
If any of these descriptions are true for your organization—or for yourself—then you’re not ready. It’s not time to start transitioning to agility just yet.
Agility is not about practices. Some practices facilitate an agile approach, and some practices make it nearly impossible. But the practices themselves aren’t that important: Agility is a mindset. It’s a flexible, adaptive approach to software development. The first step in transitioning to agility is to realize that:
Agility is a mindset
Once you and your organization are okay with that, and you’re ready to drop a lot of preconceived notions and established procedures and try a flexible, adaptable approach, then we can talk about transitioning to agility.
Next up: Step 1.