March 25, 2006

...Learn TDD with Codemanship

We Asked 100 Liars...

Douglas Adams once quipped that, according to Internet surveys, 90% of us are CEOs of our own companies. Joking aside (yeah, like that's going to happen), he makes a serious point. People don't always mean what they say, and simply asking people can be a very hit-and-miss way of getting good information.

Exaggerating is one thing - we all do it (I mean, like, I do it about 400 million times a day). But not all lies are intentional lies. So you could argue that we should be brutally honest when good, hard information is what's needed. But that doesn't work either.

The problem is that, even when we really, really, 100%, truly and completely believe what we're saying, we're probably still not telling it like it really is.

Try this little experiment. First I want you to answer the question with total honesty.

Are you a racist?

No? Okay. Now take this little test. I want you to arrange the words in the middle column of this list into one of two columns on either side. Each word should go into the column you think it belongs in. Do it as quickly as you can, and time how long it takes you to complete the test.

Now, do the same with this list:

Did it take you longer? It took me longer. Actually, it takes most people longer - whether they're black or white. I am not consciously racist. If you ask me whether I would hire a black person, I would answer emphatically "yes, colour makes no difference". However, subconsciously, I associate being black with bad things - like criminality. This is partly because I grew up in a predominantly white community, but also because the media has largely painted an image of black people - and especially black men - as criminals. So much so, that even black people have the same subconsciuous prejudice towards other black people.

This is, of course, deeply concerning. I don't like to think of myself as a racist. But the experiement clearly reveals some kind of prejudice. My mind is quicker at associating white with good and black with bad than it is the other way around. It's quicker because those associations already exist. It turns out I'm also sexist. I take longer to group words into "woman and career" than I do into "man and career".

So, despite my rational, cosmopolitan exterior, underneath it all I'm not the person I think I am. And I would be very surprised if that doesn't colour my actions and therefore impact on my reality in some way.

Similarly, ask most project managers if hiring more developers will help meet a deadline, and they'll consciously tell you that they know that adding more people to a late project makes it later. It's Project Management 101. But when the shit hits the fan and the deadline is approaching fast, what do the same project managers actually do? They hire more developers! Just as sure as your knee jerks when the doctor taps it with a hammer...

I don't think it's a deliberate, conscious decision. They know it's the wrong thing to do, but they do it anyway. Underneath the visible world of stuff we say with our conscious minds, there's a whole unspoken universe of things we didn't even know we were thinking. And, just as the hidden racism in most of us undoubtedly manifests itself in the real world with disproportionately more unemployed black men and less women in the boardroom, our hidden culture can be seen and felt in the performance of our projects.

My issue is with any kind of process improvement that deals only with the surface world of conscious beliefs and rational choices. What a bunch of managers in a meeting room tell you about the way they develop software is, even with the best of intentions and the maximum fidelity, a universe away from the reality of what's actually going on.

That is why you must rely more on what people do than what they say. If we ask 100 people in Acme Inc. "are you racist?", and 99% say "no", that doesn't mean that 99% of people there aren't racist. It just means that 99% either think they aren't, or don't want to admit that they are. If you want to know how racist Acme Inc. are, compare the proportion of employees from ethnic minorities to the proportion in the local area. Or ask what percentage of applicants from ethnic minorities get hired compared to the percentage of white applicants who are also successful.

Same goes for software development. Don't just ask people "what do you think?". Get some data. See if the reality matches the sentiment. A software team may say they're 100% committed to quality, but if their code gets buggier with every release then - even if they "really, really mean it" - they don't REALLY mean it.

First rule of Process Improvement:

Establish the reality and then deal with that
Posted 15 years, 5 months ago on March 25, 2006