I went to hear Kent Beck speak on Tuesday and he asked: “when was the last time you were comfortable in your skin as a programmer?” …and when did you last have that feeling at work?

My answer was: last week. It hasn’t always been that way for me, and sometimes there’ll be months in a row where it doesn’t happen at all (of course, lately I blame that on being swept into management, but that’s a topic for a different post).

Kent Beck surprised me by talking about what he called the “genius-shithead rollercoaster,” where one day you are the a wizard, all-powerful, master-of-the-universe because you wrote some magnificent piece of code or found and fixed some harrowing bug, but two or ten days later you are an incompetent idiot who can’t solve the basic problems that confront you. I used to describe this as the “manic-depressive product development cycle.”

The odd thing is that I thought this was a gender issue. Here I was amidst a group of bright, young men who often showed their genius in their code (or at least thought they did). I never saw that they had any dark moments of the soul when they questioned their competence or wondered if they belonged in this profession. I thought it was just me, being female. I worked very hard to overcome these bleak periods of doubt. I found the ability to laugh at myself when I felt like a superhero. And now, most of the time, I can find deep moments of joy in the process of solving problems and writing code whether I’m successful at this moment or struggling with a not-yet-solved issue.

I listened to Kent, as he described in detail what he meant by finding “ease” at work: not freedom from difficult, not freedom from constraints, not taking it easy, but a state of comfort, freedom from worry, pain or agitation, freedom from embarrassment. It’s a good way to look at it that “maintaining illusions is a waste of energy” and that “awareness offers choices.”

Kent talked about responsible development:
– My code works
– My code matters
– Accountability
– Public commitment
– Appropriately valuing feedback
– Acknowledge my contributions

I took notes and I thought: right on! While at the same time, I thought: “oh my god! poor Kent — he’s going to become known as the Stewart Smalley of Agile Development” (my code’s good enough, and gosh darn it people like me). Is this roomful of men really going to buy this? And after the talk, listening to the questions, it appears that they did. What he was saying resonated with them. They asked insightful questions. I kept trying to form my shocked observations into a question, but I couldn’t quite turn it around.

Upon reflection, there have been a number of guys, more recently, who have mentioned this pattern. I was just so wed to my own gender bias that I assumed they were the exception. I’m not quite sure what to learn from this, except I’m glad Kent’s talking about it. I’ll end with my favorite quote of the day:

“Programming so that you’ll feel like a hero is quite different from programming so that you have a program.”

What do you think?

2 thoughts on “Ease at Work (Kent Beck)

  1. All the creative people I know (myself included) have days where they feel great and they’re proud of their work, right next to days where they want to quit and never admit to having even dabbled.

    It never occurred to me that this would have anything to do with gender.

  2. Three semi-related observations about programmer “depression.”

    1) Other people seldom care. You can write a really tight, really innovative piece of code, and it’s hard to find other people who care enough to listen to you describe it, unless it does something neat at the user level.

    2) Bugs always prove you’re an idiot. Bugs, by their nature, are usually simple little things that any idiot should have seen if they’d looked closely. And those that are not are usually much more serious design errors that reveal more serious, higher level problems.

    3) Sturgeon’s Law (90% of everything is crap) applies to you. Because it’s not just about what you do, but also about everything coming together (idea, team, company, market, world) to make it come out great, which seldom happens.

    But none of these bother me in the long run (sometimes in the short run, tho), because 1) I love programming, so the journey is fun, not just arriving at the end-point. And 2) sometimes they do all come together and all the (important) bugs get found and it really does do something cool.

What do you think?