Skip navigation
2010

Dan's Blog

May 2010 Previous month Next month

I received an e-mail from a buddy informing me of a likely, but involuntary, job transition. His situation made me recall a primary reason I prefer to work on Open Source projects: Free will.

 

The funding from our grant will run out at the end of the month and therefore my employment is a bit uncertain at the moment. Many forces are working hard to secure more funding, so I don't know when my last day will actually be.

 

It can be frustrating when you invest a lot of time, energy and creativity into software project, only to find out one day that you can't work on it anymore, either because your contract has expired or the funding for the project runs out. While you earn plenty of paychecks and experience from the project, what do you really have to show for it? You're forced to walk away without your creation, left only with memories (and whatever code you managed to transfer to that flash drive).

 

Of course, we all have to make a living, so working on proprietary or internal software projects is inevitable--some may even say a necessary evil. I've been in jobs where I felt like one brain in large matrix that feeds the company's information technology. But a job is a job. The company is paying you for your work, so you should certainly work hard if you value your career.

 

But you don't have to leave it all behind when it's time to move on.

 

Reserve your most passionate work for something you can control. In my talks, I often encourage developers to go home and create an application for themselves. It's yours for life and you can design it however you want. But there's something even more satisfying than working on software alone - working on it with others.

 

Why not get involved in an Open Source project so you can collaborate, share ideas, build reputation within a community and learn from each other? What you end up with is something you collectively own that's likely better than anything you could create by yourself. More importantly, you can show your contributions to anyone at anytime.

 

While you may be forced to let go of your investment in a company's software project, no one can take away your open source contributions. Your contract with Open Source never runs out.

A fellow remote employee (remotee) at Red Hat recently sent a message to the remote employees mailinglist with the subject Team Building. In the e-mail, he laments about the day a fellow team member left the company whom he had never met.

A member of my team is leaving after 20 months, a fellow remotee based in Colorado. I've never met him. As far as I know he only met two of his immediate co-workers: his manager and another engineer on our team who was hired at the same time. They met during orientation in Raleigh. He never went anywhere else during his tenure.

 

I haven't been to any Red Hat office in 16 months and counting.

 

I hate contrived team building. I don't really care what personality type I am, don't want to see if I'd end up on my butt in trust fall and most of all don't want to be in anything resembling a skit. But it sure would be nice to sit with my team once a year or so.

 

Are other remotees feeling disconnected as well? Have you been to the new Westford office in the last year? Did you even know it moved in 2008? Do you know what your team members look only only because they've received a Service Award?

 

This story prompted me to answer two questions I'm often asked:

What is it like to work remotely? How do you manage to stay connected?

 

I'll share how my team has dealt with the distance and how I've managed to maintain personal connections.

 

I work out of my house in Maryland on a team (Seam, Weld, Arquillian) that, like many of the teams at Red Hat, is extremely diverse geographically. We may even be one of the most diverse teams, and I count community members as part of my team as well. No two team members live in the same city except for our QE guys (Brno). We represent more than a half dozen countries and we're spread across most of the world timezones (no matter when we schedule a meeting, someone is up in the middle of the night; on the other hand, it's always 5 o'clock somewhere cheers_hat.gif). To put it simply, there are oceans between us.

 

That is so cool.

 

I consider myself fortunate because I do get to meet the members of my team regularly. That's because most of us are speakers. So where we meet up is at conferences. It's quite a thrill when you get to meet someone for the first time in person that you've communicated with online.

 

At Devoxx 2009, Seam had it's annual team meeting right alongside the conference, bringing everyone together in Antwerp, Belgium. At that point, I already knew the team very well (though I did meet some new faces). The main reason was because the previous Seam meeting was at a Tuscan farmhouse in rural Chiusi, Italy, in almost complete isolation. It was sort of like a retreat. I believe that conversations I have with the team today, nearly two years later, are still influenced by the interaction we had that week. When compared to the conference meetings, well, the retreat doesn't even compare.

 

My take on these meetups is that a single face-to-face meeting can keep you "connected" for several years. That's because it gives you an image in your head. All IRC chats, phone calls and e-mails that occur after that point are with people, not just with handles, addresses and voices. There's just no way to replace that experience.

 

It's important is to keep that image fresh in your mind, though (no, this is not a vanity contest, it's about knowing the real person...the expressions, movements and yes, the hair and face). To get that refresher, I recommend video chat. I meet with my managers and teammates from time to time on video chat and frankly, I think it's almost as close as being there. (If you want to get a real sense of how far this might go someday, rent the movie Up in the Air).

 

Another tool that helps establish the human interaction is for all the team members to maintain personal profiles on internal or community sites. For me it's JBoss Community (dan.j.allen). A picture and a short bio go a looooong way to connecting with a person.

 

Finally, a great way to connect with other employees, even if you can't connect with your teammates, is through local user groups. I'm researching getting a DC JBoss user group off the ground. Sometimes, it just feels good to feel good about your company and maybe hear the names of colleagues mentioned, even if you can't meet them. It's also a good way to discover people that are local, without the lameness of trying to figure out what to do together, or keep a colleague's butt from hitting the ground in a trust fall.

 

In summary, here are the ways I recommend to stay connected while working remotely:

 

  • Get together at annual or biannual team meetings: good, especially when away from distractions
  • Attend conferences where you can meet teammates and managers; speaking makes it cheaper
  • Video chat with teammates or managers
  • Follow community profiles (I think all employees should try to interlink in a "social network" and there should be lots of picture sharing)
  • Join local user groups

 

When you work remotely, there's always that chance of a team member joining and leaving without ever getting to meet that person. But that's far outweighed by the flexibility to work from wherever you want and to learn about people who live in different parts of the world than you. And what I like the most is that it gives you an opportunity to travel. The way we work is changing. But that doesn't mean we have to lose touch.