Friday, February 16, 2007
My department can beat up your department
Last night I attended one of Eric Raymond's talks. He followed his typical plan, 20 minutes or so on the announced topic (last night's was "Programming in the Real World"), then more than an hour of Q&A. A nice format--certainly evidence of a confident and accessible speaker. As always, Raymond was engaging and charming. (You know there's a but coming.)
But.... Raymond began by warning the audience (primarily engineering students) that their productivity (i.e., lines of code per day) was going to drastically decline in the "real world." (BTW: If it is true that the world is all that is the case, how is it that the university isn't "real"?) And why will productivity decline? Because of the "friction" inherent to communicating with users. Not only do users not know what it is they want, often they get what they want "dead wrong," he told us. (Other frictional impediments to communication as well--especially Brooks's n(n-1)/2 avenues of communication--this time among developers). I pointed out that students are constantly told that they need to listen to users but that the probability that a student will be offered (much less take) a course in such communications is pretty much 0. I also pointed out that it is completely unrealistic to expect users to know what they want. They are not experts in computational technology. (My view is that the responsibility for identifying needs rests with the technical team, who should be well-enough versed in the users' application domain to be able say to them, "Tell me about your business, and the problems you are having. Then we'll go back and make some recommendations on how (and if) a software application can be part of a solution.")
Raymond's response to all of this was that the field didn't attract people like that and recommended instead that programmers learn humility. Seems too many programmers are arrogant and that such traits of character interfere with communication. Programmers should try not to act like they know more than users, "Even if they do"!
There we go. That "We're smarter than anybody else" mentality that I've seen at both ends of the academy, in applied science and in the humanities. No wonder there is so little interdisciplinary collaboration. It's pretty hard to work with someone whose intellect you don't respect.
Hey guys! Guess what! A business analyst who has at the tip of his/her tongue the prices of a hundred mortgage products and a mental picture of their discount/rate matrix and another mental graph of the front- and back-end ratios that map to the matrix, along with corporate policy regarding asset and income certification and how every bit of this may be influenced by loan-sized pricing and LTV's and all subject to adjustment to constantly changing financial markets is actually pretty smart. And actually knows a lot. The first step in greasing away the friction of communication is to realize your partner's competence and to respect it.