Hi. I'm TobyJoe.
Rick, our precious and beloved COO, has insisted that I post to the company blog.
I’m not at all opposed to that, but have a hard time finding the line between my voice and that of the company. After all, being CTO, everything I do reflects on the shop in some way (sorry, dudes!)
Things like showing up on time, going to bed by 10pm, having a baby, being married… All of this baggage really drags the reputation of this place down. I’m sure we’ve lost business due to my lack of cirrhosis or the fact that I’ve never tried a cigarette.
Hi. I’m TobyJoe, and I’m boring.
I posted on my own pathetic blog about my failings as a geek.
This post will serve as both an introduction (again – HELLO!) and a follow-up to my serialized biography and self-crit.
Geographical Biographical
I’m from Georgia. I totally hate Georgia. That’s why I don’t currently live in Georgia.
But, as with all rules, there’s an exception. I really like Athens. I spent many years there and still have lots of friends and contacts in that area. Aside from the time I was involved in a ~20 person line cook vs fratboy brawl and got my face smashed in by a guy in a ballcap, or the time two crackheads broke into my apartment and held my roommates and I at gunpoint (until one roommate – the son of a WWF wrestler – snatched the gun away and chased them outside), my memories of Athens are AWESOME.
But, as with all rules, there’s an exception. I really like Athens. I spent many years there and still have lots of friends and contacts in that area. Aside from the time I was involved in a ~20 person line cook vs fratboy brawl and got my face smashed in by a guy in a ballcap, or the time two crackheads broke into my apartment and held my roommates and I at gunpoint (until one roommate – the son of a WWF wrestler – snatched the gun away and chased them outside), my memories of Athens are AWESOME.
I really dig college towns. Clean air, relatively smart and cultured folks, big houses, cheap everything, and almost zero stress… Ah, sweet college towns.
My wife is from State College, PA (JoePa!) and I adore the place. It’s got everything: the Amish, a bagel store, and some mountains. There’s a Quaker school for my son. There are even mobile meth labs!
Conflict of Interest
My big personal conflict here at The Barbarian Group is between my small/college town lust and my trendy almost-passion for agile development.
I’ve become quite the advocate of certain agile development methodologies over the past two years. One thing agile prefers is colocation of teams in order to foster better communication. It makes sense. That magical moment of standing over someone’s shoulder, helping them solve a bug or tweak a design makes a lot of the shitty moments (late nights, framework design flaws, Web services) more tolerable.
Here at TBG, we work in a way that only offers partial colocation. We split all projects across all of our offices as a way to ensure whole-company influence. We don’t have an “A Team” and a “B Team” and so on. We have one massive, terribly awesome team of folks who are cross-functional despite their classical titles (which some of our more stodgy clients demand). Every project here is touched or thought about or spoken of by nearly every person at some point in its life cycle.
It works really, really well. We produce amazing work. Nobody reading this can compete with us. We’re retarded good.
The only downside is that, occasionally, implementation tasks can feel a bit isolated. Chandler out in LA can’t easily ask me to take a peek at something without going through a whole SVN branch-commit-checkout process. It kinda kills some of those magic moments.
It’s a minor gripe. It’s an aesthetic gripe, at core. I like these folks, and like to collaborate in the flesh. For one, that sounds really filthy (YAY!). Also, online, I come off as a real dick. In person, I’m super cuddly and lovable. Sexy, even.
So, where’s my conflict, exactly?
The gist is this: I frequently push towards stronger colocation, despite clear proof that our current methods work very well. At the same time, I long to buy a farmhouse with a T1 and work remotely year-round.
I’m thinking I should shut up about colocation and just move to the country. At least then my boring lifestyle of child-rearing, book writing, team building, job selling, coding, cooking and going to bed early will be a novelty.
Maybe I’ll buy a huge Victorian and make it into a Barbarian Bed and Breakfast. I can fly project teams out and put them up in four-poster beds and cook them Berkshire bacon and eggs and make them work their asses off and choke on the clean air.
Barbarian Boalsburg, anyone?
5 comments
but i have also noticed that when i am traveling i feel equally detached from everyone in the whole company and it sort of inversely makes it more likely i will catch up with people in any particular city virtually, and i end up being more democratic with my attention, take a step back.. i dont know if i was permanently offsite if this would change.
in the end though, the ability to have such a diverse bunch of geniuses and to not have to have physical location get in the way of doing the work, i think it outweighs any of the cons of the situation.
What app do you use to help you manage your scrum/agile development?
Thanks.
Colocation is one of my favorite Agile practices, especially in the way it supports so many of the other practices. At a personal level, it helps your team turn into a group of friends, which tends to make work a highly productive party instead of a highly productive factory line. From a process level, I find that not only does it foster better communication in general, it makes it easier to execute on practices like pairing, a physical task board, team-wide design discussions/learning sessions, etc. Oh, and accidental disaster aversion, "Hunh? What are you guys doing over there? Marc and I wrote that last week!".
In particular, I think flexibility among pair partners is really valuable. Being able to choose from the different ways to use pairing, and having the option of not using it when appropriate can really help a team make full use of each team member's specialized skills and makes it easier for teammates to help each other with things they're working on.
That said, if the people that work with and around the team are as awesome as the team, then the social aspects are probably a little less important. And if everyone on the team is technically awesome (and disciplined) enough to be aware of the need for those things, then being dispersed might not have too negative of an effect on productivity/quality.
I've often been curious about trying out different things with remote teammates. Like your "take a look at this"* example: Could the teammate with the code not share his desktop with the other? If iChat isn't an option, then WebEx or VNC and jump on a Ventrilo server for voice coms. Ventrilo/WebEx could even facilitate short design discussions for teams at several locations. Maybe even have an IRC channel for each project so that people could let the irc client sit in the background and beep whenever someone needs help - that may get annoying and thus silenced/ignored, maybe no beeping :-) Something about remote pairing strikes me as really cool in a really nerdy sort of way.
* git might make that a lot easier, too.
As much as I think colocation is the Best® solution, the mountain biker and motorcyclist in me completely commiserates with wanting to move to somewhere where all the gray is instead green and there are mountains much closer. Especially when it's this sunny outside!
Cheers!
Najati