What's the point
of all this camaraderie? Sure, it's fun to get out of the office, it's
great for retention, and it helps with recruiting. We're doing
something more important than all of that though when we're having fun,
though. We're doing something that every software organization needs
help with: we're learning to listen to each other.
software is an isolating experience. Many years ago**, I had a job
where I'd sit down, I'd put on my headphones, I'd bang away at the
keyboard, and I'd go home 10 hours later. That was all day, every day,
for a few years. Actually, there was an occasional exception.
Sometimes, I'd hit a hard problem and I'd spend 20 or 30 hours at the
keyboard before I went home. I wasn't the exception; the rest of the
team was like that too. And let me tell you, we made some crappy,
It was a little surprising at the time, because, individually, we were all smart. As a group then, shouldn't we have been very smart, making very good software? Spoiler alert: no.
No one listened to anyone else, and so each person on the team was
left on his own to make crucial mistakes. These mistakes compounded
over the years until the product crashed.
weren't we talking? I can only speak anecdotally here. My teammates
were friendly enough, but there were differences when it came to age,
outside interests, background, and politics. All we had to discuss were
the typical programming debates (vim vs. emacs, etc.) or company
rumors, both of which were charged conversation topics. In short order,
everyone was still talking, but no one was listening.
had important questions for each other, things like "What do you think
of Feature X?", "Do these requirements make sense?", and "What the hell
is it we're actually building?" Even at the time, I knew I should be
asking them, but not enough to get me to participate in an awkward
conversation with people I didn't know very well. Collectively, we
could've answered those and built something important. Instead, each of
us charged ahead with a deeply flawed idea of what we were building.
tacos, beer making, or a go cart outing have fixed that? Maybe so! At
the very least, it's a shared experience. It's a starting point. We
could begin having agreeable conversations, starting with questions like
"How about these tacos?" or "Wow, we made some crappy beer, didn't
we?" These simple conversations build rapport, and I would now trust my
teammate's opinion on something. All of that is crucial if I want to
feel comfortable asking harder questions like, "I can't figure this out;
will you help me?" or "Are we building the right thing?" That is why
it's only partly a joke when I say we practice taco-driven development.
**The job in question is wayyyy back in time, and has nothing to do with any recent employers.