Ever since I started contributing to opensource and more frequently since I started sharing articles on LinkedIn, HR people are contacting me with remote work opportunities. Besides that, I usually keep an eye open for companies offering this kind of employment.

The job descriptions always sound interesting, especially emphasizing on the work/free time balance. What bothers me, though, is that they always contain the following three things (expressed in one way or another): “working from home”, “full-time” and “attending Skype calls or video meetings”

I personally see absolutely no difference between an offer like the ones described above and one that requires you to be in the office from 9 to 5. I would even say that the office is a better alternative.

Trap Happy
Tom & Jerry - Trap Happy, by William Hanna and Joseph Barbera (from here)

Where is the gained value? Maybe you save 1h a day because you don’t have to actually go to the office. Other than that, the picture I have in mind is rather sad: instead of being in the office 8h a day, you’re spending the same amount of time alone, in your living room. Communication with your colleagues becomes a lot harder because you are not close to one another (plus, maybe there is a big timezone difference). Add the motivation issue to all this: anyone sitting on their couch is less inclined to be productive than someone sitting in an office. And, who knows, maybe you stumble across an employer who decides that it’s a good and ethical idea to install key loggers and printscreen software on your machine.

My point is that this kind of remote work is an illusion. It only makes you less active, lonelier and overall more stressed, while stealing the same amount of time. Again – being glued to a desk is the same as being glued to a couch. I hope you don’t imagine that someone has ever opened their laptop at the beach, under a palm tree.

I think that the real problems are: 1) full-time, committed, schedule and 2) meetings/calls with the colleagues. As long as you have one of these two, you will be nowhere near the advertised freedom. I assume the full-time part is already clear, so here’s what I don’t like about having to call my colleagues: I have to wrap my schedule around it; I cannot do anything on Tuesdays because at 2pm I have to attend one of those useless, money-milking telcos. I also cannot rely on a Thursday, without my laptop, because my phone will most likely ring: “Hey, could you help us a little, Joe does not understand something here…”.

What is the solution? A freelancer-client relationship, rather than an employee-employer one. But I’m not talking about a classical one where someone hires a consultant, they spend hours discussing, making plans and comming up with some blunt requirements. I, as a developer, expect to come to you and hear something like: “Please, implement this method and unit test it” or “Design this new functionality based on these interfaces” (see PDD), instead of “I have this idea of an application and bla bla bla”. If you don’t have a clear project, with a well-defined set of tasks, then we’ll inevitably end up in a “long-term relationship”, which translates to fake remote work.

In order for work to be truly remote, the project has to be split up in many tiny pieces, tasks that any developer could implement fast! The ideal workflow is as follows:

  • I get an email containing the task;
  • I provide the solution or the outline, if the task is too big (creating smaller tasks for continuing implementation)
  • Code review, discussion and changes (right there, in the ticket’s comments);
  • The solution is accepted;
  • I get an email from PayPal saying that the payment has arrived for said task;
  • End of story;

Now, sometimes I might take on more tasks or leave them to other developers if I don’t have time or simply don’t feel like solving them. Since the tasks are small, I do not become a ‘God developer’ for the project – the client doesn’t suffer from my absence, he simply forwards the task to another developer.

To sum up, this is pretty much what I would expect from a remote client: no fixed schedule, no commitment and no tracking; just clear tasks, payment per deliverable and as little wasted time as possible. If I had ten or fifteen such clients, I would be the happiest developer, but unfortunately Teamed is the only company with such a workflow that I could find so far. If you happen to know other similar companies, don’t hesitate to let me know in the comments.