Thursday, 22 March 2007

What's in a (role) name

I am functioning as an Iteration Manager in my current project. This is a role that is rather undefined as far as I am aware. Certainly me and my IM colleagues are still trying to figure out how best to help the team in our current role. I approach it as something between Agile Coach and Team Lead. Anyway over drinks the other evening I was cautioned not to get in the developers way by trying to help deliver stories through pairing with developers since I now have other duties. This is not the first time I received this advice and I understand the position. Curiously I have always received it from excellent technical people who operate squarely on the technical side of the team. At the same time I find suggestions in the air that I should be learning what a Project Manager does now, or I am on the track to Project Manager, or that I am now Post-Technical.

But, of course, I have a problem with this thinking. The incongruency between the ideas above and how I see things is that I am not an IM. I do an IM’s job or I operate in an IM role, or (if I can totally geek out for a sec) I can be accessed through an IM interface. But the important thing is that I can also be accessed through a Developer Interface. I could write automated tests, run a test script and help a team develop a testing strategy, and could therefore be accessed through a QA interface. I even flatter myself to think that I can write a story, create a rapport with the business and function as a BA. So sitting with a Developer for a couple of hours to work on a Story card is not a risky concept as I see it, so long as I am responsible and don’t let my IM responsibilities keep me and my pair from concentrating on the dev task at hand.

So that was the bit about me and my problems.

I don’t think I am special in some way that allows me to function in multiple roles. But I do think plenty of people and HR departments are happy to confuse person and role. Imagine for a second how much better a developer could provide business value or operate as part of a cross discipline team if he had spent six months working as a BA at some time in the past. I think the gains could be significant to team productivity. I also think the cost of this training need not be too high. On the teams I usually operate in at ThoughtWorks a developer and BA are already expected to work quite closely during the course of an iteration, therefore there is an appreciation of the specifics of their job already. To walk a few miles in their shoes could be a great way to further forge teams into business value machines. Of course BA and Developer switching is standing in for role switching in general. There are deep areas of a discipline that won’t be picked up by a six month stint, but the suggestion is not that we can all be an expert at everything only that we can operate in a given role when necessary and better understand the perspective of other roles.

So what would be so bad about switching roles for awhile?

1 comment:

Joe Homs said...

Thanks Jeff. I had a post all ready to go about this same topic, but you've said it better than I could have.

I'm Lead BA on my project at the moment, but I've done development outside of ThoughtWorks for years. Often when I suggest things to our developers, they don't take me seriously enough.

It's more of a people issue for me. They don't expect that I can do both roles among many other things. I've found that often people can't make that transition between roles so easily, so they expect that others can't as well.

I agree that it only makes you stronger as a consultant to be able to step into as many roles as possible on a team. It may take me a little longer to develop something for example, but I should never be discounted because of my title.