Taco-Driven Development
Join the DZone community and get the full member experience.
Join For FreeWe try to have fun together at Famigo.
Every Wednesday we have Taco Twednesday, in which we all leave the
office to eat at and review various taco establishments. (We're also
logging these reviews, taking steps towards the world's first big taco
data powerhouse.) I also regularly invite everybody over to my house to
make homebrew beer. (Ask about our not-quite-award-winning ale,
Electric Brewgaloo.) Finally, we devote one afternoon a month to
Mandatory Fun Day, where one rotating employee plans an afternoon of fun
for the rest of the company.
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.
Writing
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,
crappy software.
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.
Why
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.
We
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.
Would
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.
IT
Conversations (software)
Software
career
teams
Trust (business)
Data (computing)
Electric (software)
The Establishment (Pakistan)
Homebrew (video games)
Published at DZone with permission of Cody Powell, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments