ruby! rails! kids! oh my! … and other fun from terry heath
RSS icon Email icon Home icon
  • You’re Right

    Posted on October 18th, 2009 terry No comments

    A few weeks ago, there was a fun argument over a feature at work. It was split down the middle. Feature arguments are a lot of fun, because everyone gets to pretend they know what the ambiguous “User” wants, when nobody really does.

    The lines were clearly drawn, I was on the opposite side of our PM, and he had to go to a meeting. While he was gone, a (really smart) fellow dev hopped into the conversation, asking what we were arguing about. I explained the issue (surely with dripping bias), and asked him what he thought.

    He sided with the PM, and explained his (different line) of reasoning. It was cogent and persuasive. As he was closing his argument, I just cut him off. “No, you’re right.”

    The PM came back in, my boss in tow, started up the discussion again, and I exclaimed that I’d switched sides. I regurgitated the (really smart) fellow dev’s reasoning, and that was that.

    There were a lot of important things that happened there for me. One, I just outright said that someone was right, which until then I hadn’t done very much. When I was younger it’d get to the point that I’d draw up ridiculous straw men or insane special pleading fallacies to make my point, even when I knew I was wrong, and would “win” the argument.

    When you “win” with shit reasoning, everybody loses, for two reasons. One, other smart people recognize your shit reasoning, and even if they can’t argue their way out of it, they lose respect for you. Two, and this counts especially if you’re making something that other people have to use, shit reasoning leads to poorly modeled and horribly thought out products.

    There’s a lot of value in being honest and working hard to identify the best ideas. One of the consequences of this is the realization that your ideas aren’t always the best and aren’t always right.

    The unpredictable effect of me conceding the argument with, “you’re right?” Feeling liberated. Suddenly I wasn’t stuck to a losing side, had seen the light, and was then arguing for something that made even more sense. Also, I think by reiterating the (really smart) dev’s reasoning, I’d helped bring everyone onto the same page, but that was only by luck – if the (really smart) dev had been in the original discussion, the discourse probably wouldn’t have lasted more than 2 minutes.

    There are arguments that are fun to have, where neither side can be 100% right, and there are arguments that aren’t fun to have, because one side is 100% wrong. In the second type of argument, it’s important to be on the right side, even if you’re late to the game.

    Most importantly? Make sure your teammates and coworkers know you’re aware of your own fallibility.

  • Get angry and make stuff happen

    Posted on May 21st, 2009 terry 1 comment

    I really like passionate people. Even if you’re wrong, you’ve got enough energy to care and to fight for what you think. Just the same, I can’t stand apathy. Have an opinion, dammit.

    Some of the best meetings I’ve been in involved raised voices. It’s not because we’re calling each other stupid, it’s because we have ideas and we’re defending them and attacking others, trying to let the best solution rise to the top.

    If you presented a solution to a meeting and it was shot down and you just said, “ok,” then I’d think that either you didn’t put a lot of effort into your solution, or you didn’t care, or both. None of those are good.

    Earlier this week, a buddy at work approached me about a UI thing I’d been working on. Now, I’ll be the first to admit, UX is not my strong suit. I don’t think like other people. I love vim. My shell is in focus more than a browser. It’s just how I roll.

    Said buddy started talking about how I’d laid out some things, and suggested another way to do it. I disagreed, because the change seemed superfluous to me. The other guy thought it made things more consistent and simpler. We disagreed. Voices got raised. It was clear he was angry. He even tossed a bottle opener (yes, we have bottle openers in my office, because it’s awesome, and because real developers like beer) in frustration.

    Which is awesome. I went away unchanged, but I think the other guy got enough fire out of it that he’ll end up redoing it and making it probably awesome for most users. It’s a lot more fun to work with people who care about their work and actually want to put in the time to do things right.

    If you get 8 hours of sleep a night, you’re spending at least 30% of your waking hours at work. If you have a commute or different hours, it might be closer to 45 or 50%. If you don’t get angry or passionate about what you’re working on, you should quit. As far as I’m concerned, you’re not doing good work*.

    * Unless you’re Spock. But you’re not.