I've been training Brazilian Jiu-Jitsu for a few years now. What I love about it is that it's so focused on effectiveness. A smallish person like me should, with proper techniques, still be able to fight and win over someone larger and stronger (but having less technique). Since our sparring is done with full speed and full force, if I don't have good techniques, I'll use strength instead, and soon I'll be exhausted. The idea is to use the force my opponent gives me. If he pushes, I'll pull. To get him to get left, I actually start by pulling him right, and when he resists, I'll use that force to push him left. It's a bit more tricky than this in reality, but this is the gist of it.
For the longest time, my consulting work has been a lot of force and little technique. It's left me, my colleagues and our customers exhausted, but didn't really accomplish much. I don't mean to say that I'm totally useless for an organisation, just that I wasn't very successful in introducing new, more effective ways of working.
I'm slowly finding new ways of communicating and working with people that makes this type of work easier on me and those around me. I've come up with a set of guidelines that help me stay on course.
My BJJ trainer in England has this natural high-energy way of teaching. He's upbeat energetic and I can't help it, but it makes me happy just to watch him. During my initial Thoughtworks training in India, I had the pleasure to see people like John Johnston teaching, and it was truly great. He is happy, centered and extremely "there" when he is presenting his material. I didn't just lean back and listen passively, he made me care and pay attention to what he was saying.
When I'm working as a change consultant, I have a tendency to feel down and frustrated when things don't move as fast as I'd like them to. I have to actively fight this tendency, and try to stay positive and work with people in a more engaging way. Instead of focusing on the frustration of the current way, I try to make people enthusiastic about how things could be. The funny thing is that after a little while, I actually become happier and have more energy, by just trying to come across as happy.
Focus on the Pain
Any changes I recommend must come from a need in the team. Trying to introduce new practices just because I think it's a good idea is doomed to fail. If it doesn't itch, why scratch?
A great way of introducing agile is to start off by doing a retrospective. During the retrospective I focus on trying to find pain points in their current way of working. I then focus on introducing new ways of working that solve a very specific problem, instead of just because it's A Good Thing&tm;. In the spirit of TOC, other practices can be introduced later, to problems that might bubble up, but I try to solve the most painful problem first.
Dialogue, Not Discussion
People will let me persuade them to try something hard because they feel a connection with me, not because of my superior debating skills. Instead of just pushing my point of view, I try to open myself to the persons I'm talking to. I do this by freely sharing my convictions and my doubts, and to really try to understand the context the people around me are working in. This opens up a dialogue where we can share and listen to each other on a different level.
A powerful technique to achieve this is to watch my own feelings, and steer clear of a defensive posture. Whenever I find that I feel the need to defend something as a knee jerk reaction, I know I'm identifying with the idea too strongly. Instead, I try to find the hidden assumptions behind the argument the other person just made, and ask about it. "My experience doesn't agree with what you just said. Help me understand where you are coming from."
Only Solve the Problem They Ask Me To Solve
Like Jerry Weinberg said in Secrets of Consulting - you should only solve the problems the client is paying you to solve. Often I find myself in the situation of wanting to solve a problem that the client might not even consider to be a problem. To try solving this will at best cause confusion, and most of the time will cause resent. This is the real consultants problem – to get the client to realize their real problems, and ask you to help them with those problems. I value my mental sanity enough that when I feel that the client I'm working with doesn't share my view of what the real problem is, I try to leave. I have my set of priorities, and working with clients that don't share these is a truly frustrating experience.
I'm realizing more and more that what I want to focus on are the soft parts of software development. How we in the development team collaborate, how we communicate with each other and other people that care about our work. This gives me much greater job satisfaction, and I feel like it's more valuable for my clients, although it's very hard to measure.
If you find these kinds of tips interesting, I'd recommend that you read Fearless Change: Patterns for Introducing New Ideas. It's a good book with concrete advice on how to be a change agent.