“So how did you find a job with Sugar?”
This is one of the first set of questions that always comes out when people ask me about what I do ( alongside “What’s SugarCRM?”, “What is CRM?”, and “Where’s Ohio?” ). I can actually see how this is a pretty relevant question; SugarCRM has no presence in Ohio other than me ( although now just recently another fellow just joined us ). And it’s not like SugarCRM was doing some sort of hiring campaign in Ohio at the time; heck, Northeast Ohio isn’t exactly what I’d call a “tech hotbed”. So how did I end up here. Let me tell a bit of the story.
It was the fall of 2007, right before gas prices shot up and the economy tanked. I had been working for a small, financial services company for a number of years, looking for something new to do. Becoming more involved with the PHP community, I saw a post by Travis Swicegood that SugarCRM was hiring Engineers. I sent him over a resume that day, and within a few days my interview parade began.
When I say interview parade, I do mean parade. Lots of phone interviews, two coding assignments, and a trip out to the SugarCRM HQ with a day full of interviews with even more people, all over the course of 3 months. While many people gasp at the lengthly interview process, I look back at it and realize to an extent it made sense. Hiring someone that won’t be working in the same physical space as you can seem like a bit of risk if you aren’t used to doing so. While many parts of the organization had remote employees or were completely virtualized, it was somewhat new to this team with at the time just two remote team members ( one of which was originally non-remote for quite sometime ). But ideally hiring remote shouldn’t be a risk, provided you have the infrastructure to support it.
So what is that infrastructure? Here’s a few things I find to be essential parts of it:
- Excellent communication channels. Having everyone on instant messaging is becoming more and more common these days as a replacement for the desk phone. If you are supporting remote team members this becomes a requirement, as it is really the primary way to keep in touch with your teammates. It’s also helpful for remote team members to help establish “available” and “not available” times, as you can indicate an unavailable status when you are in a meeting, getting some “heads down” work done, eating dinner, having family time, or sleeping. However, don’t restrict yourself to just IM, as being able to talk to people is also a necessity ( if for nothing else but your own sanity, as being remote can get lonely and sometimes you need to talk to someone ). Make sure everyone has access to each other Skype or some other VOIP tool for team meetings or if you just need to talk something out.
- Collaboration tools. This extends the communication channels above, but give you a better way to have planning and brainstorming sessions. Think WebEx or Gotomeeting here as starters, but even more specialized group whiteboard or pair programming tools could also prove valuable.
- Mentorship program. While this may be consider more of a “nice to have” for organizations where everyone is under one roof, it is absolutely essential to have if you have remote team members. Remote folks are expected to be self starters and not need much handholding in general, but they need that person they can plug into to help learn the ropes of the organization. I’m thinking this doesn’t necessarily need to be a manager, but perhaps a team lead or another senior team member. And this mentorship program shouldn’t have a finite end, but at the same time shouldn’t be the only way a remote team member interacts with an organization. There should a bond between the mentor and the “mentee” that is continous, with the goal to foster the growth of more bonds into the organization. And this should be just as much for professional and well as social reasons; if the folks in the office are having a team lunch, the remote folks should be able to go have a “lunch on the company” for example. This where the mentor should stay on top of to make sure that even though the remote team member may be 1000 or more miles away, they feel like they are sitting in the next desk over
- Regular Face to Face time. The whole team should schedule regular times where everyone can get together, on whatever interval makes sense. I think once a quarter is a pretty good sweet spot, as it’s not too often to be burdensome, but not too infrequent as to make the team feel disconnected. This is a great time for long-term planning meetings, code sprints, and lots of social activity. These are the times where your team will bond together, and these bonds will help make the physical distances between team members become less significant. This will cost money ( hey, plane travel ain’t cheap ) but it will pay dividends over time.