How to make better software for users? Here's to so-called "soft" skills and fewer jerks.

I had a discussion with someone today who said something like "It's amazing how much of the process of software development isn't about software, it's just about communication and cross-group collaboration". My response was that "Actually that's not amazing to me - what's amazing to me is how many people don't realize that's what it comes down to."

On that note, Mini's recent post about getting to level 63 at microsoft, and the resulting comments, are a must read. There's some great advice in the post and the comments, and it's also really interesting to read other people's stories of how they got to each level.

One of the themes I saw in some of the commenters I agreed with the most was the emphasis they put on the value of "soft skills", aka those dirty words: communication, collaboration, etc. In particular, this comment stuck with me, and how he talked about his transition from being a star IC (individual contributor) but a jerk in his behavior - and that he hit a wall at level 62 and wasn't able to make it to 63 until he "finally figured out how to play well with others and was able to show some major cross-group gains in addition to my own leet prod dev skills".

I've worked with plenty of jerks over the years - the persona of the 'prima donna developer' used to be nearly universal. I distinctly remember the "trial by fire" I went through ten years ago when I got an "interpersonally challenged" developer to finally respect me by making a point he hadn't already thought of (gasp!). At the time, I was so proud of myself. Only years later did it occur to me that that shouldn't have been necessary.

But I've noticed recently - there seem to be far fewer 'jerks' at the company now than there used to be. And many times when I see jerk-ish behavior, it really just ends up being a case of miscommunication[1]. A year ago, I got an email out of the blue from someone who had been particularly challenging to work with many years back, explaining that he'd grown up a lot in the intervening years, realized he was really difficult to work with and apologizing for his behavior. That mail made my day - and boy was I glad I hadn't burned that later bridge by flaming him back during the days while he was a thorn in my side :-) (not to say that I've never been a jerk, of course - we all have moments we're not proud of).

I'm not sure what to attribute this gradual change to - are we as a company (finally) moving towards a culture where that kind of behavior is not rewarded? I'd like to think so. As a people manager I try to encourage steps in the right direction. Change at this level is slow and gradual... but I like the direction we're headed in. This year marks ten years for me at Microsoft - I was a kid when I started, and in some ways I think the company still was so childish as well.

[1] I often do what I call an "MRI", or Most Respectful Interpretation - I forget who I picked this up from, but it's a useful tool. When someone does something jerkish, ask yourself: what's the MRI? Maybe her kid's in the hospital. Maybe he has a newborn at home and got 3 hours of sleep last night. etc...