Telecommuting is the next black
Recently as several quite known and respected people in the PHP community are looking for new challenges, I've been following their efforts a bit (hard not to, with Twitter these days). One thing has been surprising me all along: Companies still don't get it: They still require developers to be local.
The pool of PHP developers is big. There's a lot of them out there. Quite a few of those are junior or medior developers. These have skills to offer and are usually not as expensive as seniors and architects. However, most companies for some reason are mainly looking for seniors and architects. For "PHP rock stars", as many companies seem to call them these days.
I've seen quite a few companies show interest in the available so-called rock stars on Twitter, only to step back again as soon as it becomes clear the developer is not willing to relocate. These same developers are usually very open to telecommuting, however the companies interested in hiring them require them to be local.
Well, those companies will be getting quite some disappointments I'm afraid. Many of these high profile PHPeople will not be willing to move. They either own a house (now is probably not the time to sell), have a family and social life, or just have a nice life where they live. There is no reason to move. And in the end, a job is there to support your life, life is not there just so you can have a job. If a company does not even want to have a serious talk on employment options, then why would the developer go out of his/her way for this potential employer.
Cal Evans, in his blog post
Remote Developers, also talks about this and even offers companies/managers an easy checklist for requirements to successfully manage remote workers. I wish more people would look at this, because they are missing out on some great employees by not doing this. That, and I (and with me many other PHP developers) keep getting calls from recruiters and headhunters for the same job over and over again. Most of these jobs are usually quite cool, except that it gets annoying after a few calls.
I was talking over Skype to a friend from the USA. He recently talked to someone at a Drupal user group meeting he attended. This person was working for a company that was doing it all right. They had no office, all the employees worked remote. They were using Skype and e-mail for all communications, and it worked fine for them! They are the proof that indeed, this can work fine. They proof that telecommuting can work, and as more PHP developers give their personal life a higher priority than their work happiness, I suspect companies will encounter more and more people that will prefer to telecommute.
If you are a company, and you really want to have the a top crew for your PHP work, seriously look into the options for telecommuting. Use
Cal's checklist. Make sure that you're ready for the future. Either that, or use the only other serious option: Go for those great junior and medior developers that are most probably available in your region, and train them to become the next generation of top PHP developers. It is the only serious alternative to telecommuting most probably.
November 10, 2009 - tags: php, telecommuting, work, opinion
Comments

Rick: Unfortunately, there are two problems with that scenario:
- Who's gonna train all those juniors when the rock stars stay at home? Especially since we're talking about a group that largely consists of people who won't go out there and get the knowledge unless they have people to help and guide them. The main reason companies are seeking senior devs is to lead the juniors. You can't do that over Skype.
- A lot of senior devs might have all the technical skills, but not the discipline needed to work in a remote team. Especially the "team" part is a bit of an issue for most.
Unless you have an awesome group of self-motivated and disciplined team of off-site developers (who preferably already know each other offline), telecommuting isn't going to work for teams. And even then, nothing beats the dynamic and direct communication of a co-located team.
It has nothing to do with "the future". Skype and alike are simply very low bandwidth forms of communication compared to face-to-face, and communication is essential in a team. Never mind the fact that most of us work for *clients*. Regular communication with them is even more crucial.
left: Rick: From experience I can tell you that communication over Skype and IRC can work just as well as dface to face communication. Even with juniors. The main reason why juniors or some mediors need to be on-site is so that a manager can keep an eye on them doing their work. Training, and also other communication, can just as well happen online. Or in some situations even better, because the senior can point the junior to a good resource they can use for background reading.
I will agree with you that telecommuting is not for everyone, but most people I've recently seen looking or new jobs did not deserve a simple rejection over their unwillingness to relocate. These were, each and every one, serious PHP developers that would just as easily be able to work remotely as they would on-site. And also communicate with the same ease, and help their juniors and seniors raise their skill level.
Also, telecommuting does not exclude face to face contact as a whole. Yes, face to face is harder when you're talking about several 1000s of kilometers between the company site and the developer, but even then you can schedule visits of a few days every month or somesuch.
Bertrand: Well, this topic is a good one, but imho there isn't any direct and definitive answer.
We have experienced the opposite: first tried accepting that people can work from wherever they live, using every communication medium we can (jabber, irc, skype, emails, etc).
A clear fact is that such a structure indeed requires self-discipline. Even if I'm an online communication believer, I also still believe in face to face communication, and physical coffee breaks
Brian: My opinion is that most employers don't really know enough to manage a team that isn't able to come together and talk in their meeting room. Unless they have somebody to bounce ideas off of face-to-face, they'd get nowhere. Evidence of employers being clueless is the ads for "rockstars"; developers with just about every skill a developer could potentially have, and "photoshop skills a bonus". All that for $10 a hour... yippee!
Michael Herchenhahn: I'm currently seeking for other german speaking web devs to create a co-op. The co-op should be totaly remote and offer web projects. This is my answer on companies not accepting remote. Just make your own company!
BTW: I'm using a pseudonym as long as I'm employed.
Stuart Herbert: The trend for a non-migratory workforce is a modern one. Even a hundred years ago, workers and their families relocated for work.
Remote workers can be incredibly successful, but remote teams are really hard to pull off. It isn't a trust thing; it's about communication, and many good developers sadly lack the basic social skills required to communicate well enough for a remote team to be effective.
This was a problem that plagued us in Gentoo for many years.
Cal Evans: Stuart,
No, managing remote developers is not easy. It takes planning and commitment, but it can be done. Forward thinking companies see that developers that aren't forced to uproot their families are happier and thus more productive. They are looking to telecommuting as a way to build teams that otherwise couldn't be built.
Rick,
Being remote doesn't impact mentoring. I've mentored and been mentored remotely. the technologies exist today to easily allow us to share information, code, even screens and whiteboards. it's just a matter of mindset.
I will agree with you that many developers, of all skill levels, lack the discipline to telecommute. the simple answer is don't hire those developers, or, if you do, don't let them telecommute. It's the hiring manager's ob to make sure that he makes the right decision there. The right decision is NEVER, we won't allow telecommuting.
Like any technical skill, the discipline needed to telecommute can be taught to any developer with the proper attitude. Companies should stop wasting time arguing about why it can't be done and start a pilot program to allow it.
Managers who don't want to allow telecommuters can find an endless supply of reasons why it won't work. Forward thinking C-Level's though will see that those managers, not telecommuting, are the real problem.
IMHO, etc.
=C=
p.s. Thanks skoop for the link love!

Rick: "From experience I can tell you that communication over Skype and IRC can work just as well as dface to face communication"
YM: "can work just as well for *specific* forms of communication"...
First of all, there's so much more happening in the communication between two people than just words. Most of those things are absent with Skype, IRC and such.
What you're also missing out on as a telecommuter is things like overhearing stuff, jumping in and helping out unasked, hallway conversations with people not directly involved (the accountmanager, the marketing-guy, the sysadmin, the receptionist).
All these things are often as important, if not more so, to the overall success as the communication that is formally part of the project.
Telecommuniting works fine for very specific contributions with a narrow focus ("build an API for X") or routine jobs. Companies that need such a contribution will often look for contractors, in which case being off-site is usually not an issue. I've done that kind of work for years myself, and I've been involved in projects where contributers rarely met face to face, so know it can work.
But basically, we're not talking about working on-site versus telecommuting, we're talking about entirely different kinds of roles. In which case one could argue employers should make more of an effort to create specific "telecommutable" positions. But developers who try to sell telecommuniting as being equal to being on-site actually tell a prospective employer that they don't understand the employers needs. IMHO that is exactly the wrong way to convince employers of the benefits of telecommuting...
Jose da Silva: Well, i have been myself trying to be the priest of this small corner of the world, that is Portugal, makes no sense at all, when we have serious problems searching for qualified PHP developers, not to look into Remote Workers.
There are a bunch of challenges to be aware of, like most of the previous comments shown.
From my point of view, the main issue with managers and team coordinators is the false sense of security that they have by, looking at the developer in the office from 9h to 18h.
It is our job to convince each of the managers that the 2/3 hours that we loose in traffic increasing our levels of stress doesn't help our productivity at work neither our personal living standards.
If companies start to look to employees as somebody that is in the to achieve objectives, maybe this would change, right now, they tend to give more importance to number of hours that you are in the office other than objectives attained.
As this is a cultural thing, i believe that only in a chaos situation will change, meaning, when the senior PHP developers start to not be available for onsite projects.
Just my 5 cents.
till: There is no easy right and wrong here.
I work from remote 90% of the time, yet there's circumstances where getting together in one place accelerates everyone.
Or, think pair-programming. It would be interesting to be able to pair-program remotely, but I'm very skeptical. In the end, I go to co-working places, etc. to get together with people, to be able to brainstrom issues and so on. All of the above is lost when you work from home all the time, by yourself. Of course you can get in touch with people using Skype and so on, but I really prefer the real deal.
Ideally, companies allow developers to work from home as well. And for sprints or whatever, they all come together "on-site".
Also, in a perfect world, well scratch that. We just don't live in a perfect world. Working from remote also requires a lot of trust. That's beyond "he's an awesome PHP coder". The question is, is he reliable, focused and dedicated?
left: till: Remote working/Telecommuting !== Working from home
Coworking places are huge these days, there's more and more of them. And chances are, one of those is much nearer than your office. Especially when looking at international employees. Or even those from >50km away.
I don't exclude working in the office every once in a while, I realize that it is important to meet every once in a while, I'm simply pointing out that requiring a 100% attendance these days is not a good choice when wanting to recruit high profile senior developers.
Matthew Weier O'Phinney: I've worked remotely for >4 years now, in roles ranging from simply developer to team lead. As Cal has written in some of his posts, the key to making it work is communication. Yes, you miss out on non-verbal cues, and yes, you don't get the same opportunities to collaborate as you do in the office, but note that I say simply "don't get the same" -- you still get those opportunities. I've shared "screen" sessions over SSH, I've used virtual whiteboards and desktop sharing applications, I've used IRC and pastebins, I've used skype and every form of IM out there... they are all viable solutions. The key is to _use_ them, and to find what solutions work for you and your team.
Currently, my entire team is distributed, currently over two continents and 4 timezones. Contrary to Rick's claims, we're not working on simply an API or a routine coding task. We're developing a comprehensive framework, and delivering releases regularly. Telecommuting clearly can and does work -- as long as you have a disciplined team and good communication lines.
Rick asserts that you cannot claim that telecommuting is the equal of in-house employment. I agree, but for a different reason: I think it's better, particularly for developers. As developers, distraction from our tasks is the enemy. Being in an office makes it much too easy for drive-by meetings, such as a sales or marketing person stopping by and asking for assistance on a call, or a support person stopping by to ask a question regarding the product. While these are certainly important interactions, they also interrupt the developer's flow, and a simple 5-10 minute conversation can often lead to 30 or more minutes of lost development time. All of these interactions can easily be scheduled, if those needing them can be patient and do so. The result is that your developers can be more focussed and get more work done in a shorter amount of time -- leaving more time for these meetings in the end.
I could go on all day... but I think Stefan's key points cover anything I would say: it really takes an effort on the part of management to adopt new habits for telecommuting to work -- and if that isn't happening, it's time to get in fresh people who can make it work.

Dave: I agree with some of the other sentiments here. There are some types of work that are much more amenable to telecommuting.
Im lucky enough to be able to tellecommute when I want however I still find I work from the office 95% of the time.
For project work I can see how it would be an attractive option but in the case when your developing something that has a longer lifespan or with a bigger team it is really useful to be aware of what is going on in the background. What the hot issues are, what is changing, what customer issues are hot at the moment and so forth.
I don't know how many times I have been saved from duplicating work because I have overheard another team member discussing a similar or identical problem in the office.
With a large codebase its impossible to have deep knowledge of every line of code and I think working on site makes it a lot easier to tap into the expertise of others both passively and actively.
Eli White: Chiming in as well, as someone who has telecommuted fulltime for 3 companies in the past 5 years, and also partial telecommuted for 5 years running before that.
I've seen it work, and I've seen it not work. It simply takes a mindset change in all those involved. You have to think about using the technology, and getting EVERYONE to use that technology.
For example, a few people here have talked about how the problem w/ telecommuting is that you lose out on the 'water cooler' talk, of listening in to other people's discussions, being able to jump in, etc.
If that's happening, then it's being done wrong. At Digg for example, we had an internal IRC server. There was a main channel that ALL diggers hung out in. And that's where 95% of discussion happened. It was out in the open, anyone could 'listen in', 'chime in'. If something needed discussing in more detail, and/or it was taking over the channel, it was quick and easy to create a new channel and tell everyone interested to hop into it.
Meetings were often held in IRC channels. Decent conference call setups were created (w/ Video) to pull the remote workers in, etc.
Also, email-threads were king. If something needed discussing in long form. You didn't do it on the phone, or in a hallway, you started an email-thread.
But I disgress into too many specifics. The point is just this: Yes, it can work. I will argue however a good and bad:
1) Making it work requires a commitment from the company, for everyone to fully embrace the various technologies (IRC, Skype, IM, Asterisk, DimDim, etc) that make it possible.
2) Given #1, I'll admit that it's easier if the company embraces it fully, and has LOTS of teleworkers, making it harder to ignore. Than if the company just 'tries it out with one remote worker'. While still having a shop of 20 local. Which doesn't change the mindset.

Rick: @Cal: "Being remote doesn't impact mentoring."
I disagree with that statement. Being mentored remotely is the same is working remotely: it requires certain individual qualities. Lots of people won't easily ask for assistance and further explanation, and if you can't see the confused expression on their faces and their frustrated body language, you can't mentor them as well as you can on location.
@Matthew: what you're describing as the downside of co-location is simple a bad working environment for developers. Sure, you avoid that crap by telecommuting, but that's not the only solution.
Anyway, I mostly agree with you, Stefan, Matthew and others about the virtues of telecommuting. Hell, I've done it for years.
I just don't believe it's just a matter of companies and managers "not getting it". There are many scenarios in which telecommuting doesn't work, because developing software isn't just about coding, and in many cases requires lots of very regular human interaction.
Jake Smith: @Rick a junior or mid level developer has to posses the willingness to learn and put forth the effort. I never had a mentor, but I constantly read and interact with developers via IRC. Being a Sr. Developer I am able to help my Jr. Developers when they need help, but only after they've spent some of their own time researching the problem.
I'm a huge fan of using skype as a virtual office communication tool, and you can always screen share to show people where they are going wrong.
Great post Stefan.....you too Cal.
left: I was not saying it will always work Rick. Instead, I said, if companies are looking to hire high profile PHP developers, they'll have to be willing to support telecommuting.
I also do think that, though face to face communication is important, many of the situations you currently consider need face to face communication probably will be replacable by remote communication over any of the many online ways of communication.
Paul: I have worked successfully for over 4 years remotely and have avidly followed the (thankfully) now growing discussion. The one thing I hear thrown about frequently as a barrier to telecommuting is the supposed inability for people to communicate effectively...if they can't communicate effectively remotely...how are they going to communicate effectively in-house? Good communication skills are important regardless of geographic proximity ... and, in my opinion, someone's inability to communicate via email, im, or even phone should be a big red flag in the hiring process...as this is probably a person you would not want interacting with clients and vendors...and in today's world it is increasingly hard to isolate and shelter workers.
I do agree that team and project management techniques need to change to make telecommuting more viable...but am living proof that it is possible..but I know that I (as I am sure others that have come before me and are currently enjoying such opportunities) have helped smooth and even create those changes.
I can say, without a doubt, I get more done remotely than I get done on-site. While on-site it is easy to get called into meeting after endless meeting after endless meeting...working remote requires everyone to be more aware of time and time management and I find lots of things that would have required several meetings that pulled me away from my work are accomplished through a couple rounds of email that allow me to continue my work as the discussion is taking place.
I guess the bottom line is this...if you can find someone that can produce a good amount of workable code that satisfies the management team...grab them and use them...regardless of where they are actually producing that code...if they can't produce, you don't need them (in-house or out).
Ben Dunlap: These discussions often seem to take for granted that remote communication is more difficult, or inherently of lower quality, than in-person. Happy telecommuters then reply that as long as you have the right tools and use them with discipline, you can surmount those obstacles.
I'd argue that, especially with software developers, remote communication can be much better than in-person -- even beyond the good points Matthew makes about drive-by interruptions, etc. I'm thinking of the quality of the interactions themselves.
It would be interesting to ask a large roomful of professional software developers for a show of hands: "Who here feels more comfortable communicating about work-related matters in writing than in person?" I suspect that a significant majority would raise their hands.
I personally find it much easier to be diplomatic, to consider the other side of the argument, and to express my own side persuasively, when I'm not discussing something in-person.
If I get a bizarro request by IM, I can take time to cool off and then write a pleasant reply. It's much harder to do that when the requester is standing in my office doorway. The end result is more time and energy spent on the issues themselves and less on emotionally-charged meta-activity.
Then there's the question of language and accent, which can be a serious impediment to in-person communication. I worked with a team lead once who did not speak English as a first language, but wrote it better than most native speakers. In person he spoke very quietly, with a strong accent. I often came out of meetings wondering what he had even said, but his emails were always crystal clear.
Come to think of it, there were a lot of very smart people on that team who spoke thickly-accented English. Not a problem at all when you're communicating in writing. Potentially very awkward and inefficient in person, especially if you're asking someone to repeat himself for the 3rd time that day.
And that's not even to touch on formal meetings. If, by embracing telecommuting, a company is forced to cut back on formal meetings, or revisit the way meetings are conducted, how is that not a win for everyone?
Artur Ejsmont: I have to agree with Rick. Remote developer does usually do his job but it does not work the same way as local person.
In scrum you get less transparency, less 'team gel', less communication.
You have a problem with your code, you start gasping or swearing or just look really stressed out and there it is .... helping hand from your team mate. You go for coffee and you find out that the new release of another product requires you to update your component. You discuss your family life, sports, trips or just go for beer ..... the team is being bound.
You dont have to explain what you are trying to do or what you are working to your team mates so much. They know it all already. You have talked about it non stop every day on every break and every QA question or problem was overheard etc.
So i would say if you want person to do particular thing and do it well alone ... it does not matter if they are local or remote. If you want person to be part of the team ... you will probably have to get them into the devtank.
Well thats just my opinion, im sure many people would disagree ..... i just love team spirit and SCRUM really takes off when all practices work together and team becomes a being itself.
art