What are the shared values?

I recently was working on a project with a small group really skilled and talented guys. Everyone in the group (excluding myself for the sake of modesty) could safely be called brilliant.

We had a pretty important but straightforward task.  Something that any of us should have been able to complete on our own.Piece of cake, right? This should be a total success story.

We failed miserably. Of course.

Well, maybe we didn’t fail miserably, but we did get into a stalemate, the collaboration on the project was essentially killed, and there’s now one guy working on it by himself.
At the time, I was thinking of it as mostly an interpersonal issue. I like to say (and I believe) that “all software is interpersonal”.

I was thinking about it a little more yesterday, and I realized that we failed because we didn’t have any common understanding of shared values. One person in the group valued management mandate, and a fixed timeline. Another person in the group valued agile/lean/empirical processes and didn’t want to design the entire thing up front.  I valued egalitarianism and consensus-building, so I tried really really hard to negotiate and mediate between these two different values, trying to reach compromises, giving people a chance to save face, etc.

Which of those values should have been important to the project? I don’t know. My instincts lead toward the values that I try to bring to every project (the pre-packaged set of “agile” values, and my general anti-establishment bent). I can’t really say that if everyone thought like I did, the end result would have been as good as possible, although we wouldn’t have imploded in at least that way.

All of the things that I consider “qualities” or “best practices” such as strong cohesion, loose coupling, the ability to test things in isolation, those are really values. In collaborative projects, I’m not going to get anywhere unless I know that the other people on the project value them too.

I think that if more people were self-aware of the values they bring, and discussed them with a group to try to reach a set of “this is what we, as a team care about”, projects could go more smoothly.

It’s a lot better than one alternative, where you have one evangelist (often me) saying “Well Kent Beck says you’re supposed to…”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: