Quick background: We're a small Django consultancy/web app development company based in the UK. 7 people, all remote, split as three developers, one frontend dev, one designer, one sales, one administrator. I'm a developer/managing director.
Our experience with remote working has been largely very positive.
- It keeps our overheads very low. I think that when we remove our staff wage bill, our operating expenses are about £200 a month, which is mainly service subscriptions. If we accommodated everyone in an office, we'd be looking at spending at LEAST £3000/month on rent alone. This cash being available has meant that we can expand the company quickly, pay developers well, and still afford to take the team out to conferences and the occasional get-together and night out.
- Remote working means that your processes and working practices need to extremely well defined from the outset. All our interactions are online, so clear, unambiguous communication and good project organisation and management are essential. Of course, there is an overhead in this level of communication that might not be necessary if we were colocated, but I think that overall it benefits us.
- We are also able to expand our hiring pool. We've recently taken on a freelancer in Poland part-time (we knew him from when he lived in the UK), and we're not making adjustments to suit him; we're already well adapted.
- The tools which exist make up for a great deal of the shortcomings of remote working (we use Skype, Trello and HipChat mainly, with the occasional VNC/Skype screenshare session). This is a huge contrast to even a couple of years ago,
The disadvantages are almost entirely human factors:
- I think it's easy to 'hide' from the team if a developer is having a problem (either with their code, or their motivation). It's easy to coast through an unproductive day and there is often a delay in the other team members realising that a project is falling behind schedule.
- Sometimes working remotely can feel isolating. A few of our developers who live near to each other sometimes meet up at one location and work for a day, and I get feedback that everyone feels refreshed after. We have quarterly 'get together days', where we talk mainly about strategy and review our processes and performance, but I think we need to start having 'work together days', just to keep the morale and motivation high.
I understand the code part of this problem. I think it's good to have a set estimate on how long the item should take so that as soon as you hit that tripwire you stop, send a notification out to the rest of the team, explain the situation and ask for feedback. Perhaps a good way to help with this would be to setup a "feature timer" which automatically hits an "oh shit" button and sends out the notifications automatically.
Like most problems, I think it can be solved with a bit of self-reflection and better communication.
I believe set estimates are not the best way to approach this problem because how do you estimate it? If you are in new territory then what seems trivial to one person may require some research and extra understanding by another. Also when you set a deadline it becomes more of a target for the individual action and instills a time wasting mentality.
It's especially difficult when a new employer enters the company as they feel under pressure that this is the expected deadline. One of the most helpful things Jon has done to elevate this situation when it arises is allow honest conversations without any fear which come from I guess a personal understanding/experience.
I also don't believe this problem is specific to remote working, it's simply a managerial problem within the industry as I am willing to openly admit this (having a problem and not speaking up) also happened at my previous job but the openness didn't exist hence a lot of dodging and ducking was performed until the task at hand was accomplished.
Also, in some cases there actually would need to be a deadline and there would need to be pressure. It depends on your situation. X startup working on their own application may have wiggle room for their timeline, but I do mostly client work where our deadlines are pretty much set. Often I need to give estimates which the rest of the team will use as part of tracking and projecting the overall timeline as well as setting the expectations for the client.
I agree with you though. It sounds like you guys have a great setup.
i think it depends on the culture, but in here (asia) people will hesitate doing business with a company with "scattered" team.
For us, our specific geography is also a factor; my business partner, who also runs 95% of our sales activity, is based in London, and his sales activity is centred around there. Our developers (myself included) are based on the north-west, where developer salaries are lower than in the south. I know that we have used that fact in sales pitches, and it has helped us win work based on that lower total cost of a project.
I have visited the countries where our employees are, registered our startup there and made a non-compete contract ( http://en.wikipedia.org/wiki/Non-compete_clause )with them. But this costs me time and money.
If you don't have any agreements with them, how do you manage your works and where/how do you find good employees over internet?
Finding workers hasn't been a problem to date, as we have generally grown organically, and most people have freelanced with us before they became employees, or we have worked with them in some capacity before we started the company. I think it's more accurate to say that while our team is geographically distributed, we share a really close social network. I did a really quick blog post about this last week:
Even the faintest ink is better than the best memory.
The main problem was, is, and shall ever be communication - but that's the same if you're face-to-face. I actually communicate better via email and forum than face-to-face, so remote work is good for me.
Especially in freelancing situations, it's a natural fit for how people like to do business; you have to organize yourself more carefully than if you were simply sitting next to your customer, but that's not actually all that onerous.
I wouldn't go back to commuting for anything. Life's too short.
So it helps to be a curmudgeon.
I'm from the CET timezone and the people I usually work with are either in PST or EST so there's a 6 to 8 hour time difference. Here are some of the benefits I've observed:
- I'm a night owl, so I can directly communicate with the people paying me
- even though I like long mornings, I still have at least 5 hours to work before employers wake up (makes for efficient-er communication because I already know what I need)
- the US is full of cool startups working with technologies I actively follow and take an interest in. (locally I've been smashed into teams still on svn ... on new projects)
- sad but true, in Slovenia nobody pays you the next day after sending an invoice, you are legally mandated to allow up to 14 days for payment and everyone takes that way too seriously (and often even overshooting) - US people have so far always paid me the day after invoicing
Socializing with people happens over twitter and at college, sometimes at a events, I make sure to go partying at least once every two weeks etc.
The only problem with working from home is the "But you're home anyways, you can take care of this and this and this" syndrome.
Completely off topic, but: is this necessarily bad? Does the world stop when there's a centralized source control server?
I'm in an environment too where people are sometimes reluctant to move to newer, better software (svn is an example, our bug tracker sucks too), simply because of the learning curve / overhead involved. I started out by being annoyed with this, until I realized that at the same time using modern SW development practices is really what matters (e.g. a lot of TDD, BDD, MDSD here). I can survive svn, but I can't survive the waterfall model.
If there's a single central repository anyway (continuous integration, remember), plus you want people to share with master/trunk/whatever after being under water for at most 2 days, the workflow when using git/hg becomes awfully much like the workflow that SVN enforces on you. When I realized that, I stopped investing time in converting my colleagues to git. I use git-svn myself so that I can stash, move files without `svn move`, do local commits, etc, and everybody is happy.
But I may be missing a great argument.
The real power for me is the branching, especially shared branching.
My workflow is like this, each dev has their own github repo which is up to date with whatever is in their local repo.
So even if someone is working on esoteric weird crap, I can see it (ircbot telling you about commits) and I can pull it.
For CI we have a server that is also running a git repo of it's own. Anyone can push branches to it and they'll get put through CI.
So I can now take my branch, pull 3 or 4 peoples feature branches merge them locally then push to CI repo to see if anything is broken. If it is, I can fix some of it and push it back to whoever needs to know if there is something I don't understand.
It's a joy.
It's my "one wrong candy" clause if you will. (can't find the article right now, but some bands make one insane request for their backstage that can be instantly checked, when it isn't perfect, they know to check through the whole list of the stage setup and so on, otherwise people literally die when something breaks)
Although lately a much better model has turned out to be having a "Email me if you need a freelancer" link on my blog - produces, on average, one email per week. All from americans since that's where most of my traffic comes from.
For employees: You need to set your own rules, stick by them, and have a great work ethic, otherwise you will fail.
For managers: You need to find employees that don't need to be micromanaged, and stick to the notes above, otherwise you will fail.
edit: I should mention that I love working remote. I can't imaging myself going back into an office anytime soon.
i am not convinced that the problems are any worse than working locally, to be honest. the problems may be different, but it's still true that a good manager makes life easier, and that a bad manager can be worked around.
so i would say that if you have an experienced employee that you trust (as i hope i am!) then it's not a big deal. and inexperienced people that you don't trust are still a crap-shoot - remote working doesn't change that.
any way of working has its own issues. if you're competent you can solve them; it's your job to do so. if you can't, working locally will only make the misery local.
i guess maybe people want specific advice anyway. the most important thing is that you (as employee) need to force feed status to your employer. there's no feeling worse in the world than hearing "so what have you been doing?". meeting up physically once a year or so is also a good idea. weekly teleconferences help. that's all as obvious as it sounds, which brings me back to my original point...
[ps and personally, i love it. the peace and freedom are great. good pay (compared to local market) is a bonus.]
[pps an observation that might be illuminating - i just realised that half my computer screen is devoted to communication. i have a text console on the left, with (ascii) mail in the current tab; on the right i have an open chat window; in the middle is eclipse). the web browser alt/tabs over eclipse and chat.]
That's what I experienced also. Make yourself heard: a simple mail at the end of the day to your team/manager will do. Ask for feedback. This is important when you are remotely attached to an otherwise locally working team, prevents ending up as "the guy who breaks CI once a month".
When you feel stuck or have the idea you feel disconnected from the flow of the team (or something stalled there) it's easy to ask for a skype/chat meeting with the group. In general I find communication not to be the problem, but it shows that bad or lacking communication locally gets somewhat amplified if you're passive because you don't share water cooler/bathroom with the team.
However, after that period I simply decided to quit, because of the totally absent social life. Now I waste 2 hours a day in commute and waste time in useless meetings setup by some random executive. I'm also paid less comparatively, and have more expenses. I still wouldn't go back. I now discuss openly and face-to-face with great colleagues, work with great problems together, share great ideas, etc. Choosing a good job is so much more important.
I would still happily work remotely one, two days a week. Just for the convenience. Or maybe in small periods throughout the year. Still, I will never work remotely again.
During the period I worked remotely, I was able to knew/meet a lot other people that worked remotely all the time (some since the '90!). We all had, more or less, the same problem: we all scored incredible amounts of hours (compared to normal workers) despite the absence of both work pressure and schedule. We tended to be a bit extremists in quality (of course, you had all the time to think about the best solution), which wouldn't work well with normal colleagues that had to struggle with time constraints. I didn't understand that at the time. Because of your derailed work schedule, you generally tend to be less social even if you have good social contacts. In the end it's a self-inflicting problem: you are less active socially, you dedicate more time to your work, etc etc. It's actually quite difficult to find balance. I couldn't in the end.
Employers should take note, because working remotely sorta-implies a very dedicated person. Being able to work without any social pressure is difficult if the worker is not a motivated person. Un-motivated persons will basically quit by themselves after just weeks (I saw it happening a lot).
It also boggles my mind that employers (and this happens mostly in EU) still don't grasp that concept. Regulating work hours, presence, etc is stupid unless your job is depending on a regulated schedule itself. People slack right in front of the monitor all the time. Allowing people to work from home it very beneficial: it actually increases the production (less time wasted in commute, colleagues, etc). But of course, it really depends on the people that you hire, and how willing are you to thrust these people.
I got myself hooked up with a contracting company. They find iOS jobs for me to do, then subcontract my time to other companies. And I get to work from home 100 percent. I had to take a severe pay cut to make it happen, but for me, it's worth it.
I enjoy that I can make a better environment for myself than any office I've ever worked in. I have lots of space, a window, a door that closes, and a huge Apple monitor. A whole bunch of quality-of-life things I couldn't ever convince employers to give me. I can take an hour off here or there to take a nap or walk the dog. And there's no commute. Eventually, I can move somewhere cheap, to make the most of my income. This is the life for me.
I admit that there are inherent communication problems. As other people have mentioned, you have to be a fiercely determined self-starter to make this work. But looking back on it now, the stuff typical employers expect you to go through -- for me, there is no comparison. You'll have to pry my remote job from my cold, dead fingers.
. Perhaps it is largely personality based, but I've always enjoyed it. Deadlines keep me on track and side-projects fill the spare working capacity. So work does get done and, as others have said, more besides.
. Productivity is not a problem, especially when you learn to down-tools when you feel you need to, rather than waiting for your set break times. You'll probably find yourself working more efficiently.
. Socially you do need to adjust, and make the most of opportunities to meet other freelancers/people where possible. I initially missed the office banter, but less so with time. As with most things, if you accept it will be different and don't resist that, it should be easier.
. As mentioned elsewhere, those around you at home will indeed sometimes forget that your body and mind are often separated (i.e. body at home, mind at work). Prepare to have many thought-bubbles burst, unless you have a good home-office solution. A semi-hack for this problem is to simply take more notes.
. Energy wise, if you care, I've seen studies for and against the savings made by remote working. Heating 25 whole houses in winter compared to a single office, for instance, doesn't guarantee an energy reduction. But then there would be 25 times less CO2 emissions. Swings and roundabouts. Never really been a key issue for me, but perhaps worth consideration.
I'm now moving into a more involved 'startup-style' phase this year, with no deadlines to keep me on track and no team around me I'm going to have to adapt to a new style of remote working. Tips welcome!
The 'no deadlines' line at the end refers to the translation community/tools startup I launched recently - that's a new kind of remote work for me and will need adjustment from the world of deadlines.
Once I start working on a site, I can be absorbed for hours and deadlines become superfluous as I could do in a day what would take a secure-salaried staffer a week. But managing freelance projects and startup promo is a challenge.
The decision to replace a stable job with an uncertain entrepreneurial environment required a huge mental change from me (something that's due to local culture aspects), but the opportunity to simply work on what I like doing became irresistible at some point.
As far as the pros and cons of working remotely are concerned, I think the biggest advantage is that the projects I work on now are infinitely more interesting that any local job I could find. I like to learn and every new project brings new challenges.
I also like to travel and business trips have been a great opportunity to visit many places in Europe and US.
The downside is that if you are a consultant/freelancer targeting foreign market you have to be prepared for idle time in you business. The fact that you have several offers now doesn't mean you will have any 3 months later. It's good to have a contingency plan.
Also, if you are self-employed you have to deal with bureaucracy and accountants. For many companies it's just easier to work with people that issue invoices rather than going through a process of hiring foreigners. The overhead depends on the country you are living in and sometimes can be a real distraction. Outsource as much of that as you can.
Another thing that is a bit frustrating is that many companies back out when they hear I'm interested in working remotely, even though they are unable to find engineers on the local market and I can provide them with comparable if not better service. I've made the mental change, now it's time for you. My only tip is: hire managers of one [1].
[1] http://37signals.com/svn/posts/1430-hire-managers-of-one
That said, I think the experience varies based on your situation. I'd be careful signing up to be the first or only remote worker. You'll find you miss out on a lot of the conversations where decisions happen; people can forget to dial you in or bring you up to speed. Don't underestimate how much work you'll have to do to keep the communication flowing. Working remote is a lot easier on a team that has other remote workers.
The main problem I found in remote working are distractions from family, kids etc (who forget you're physically at home but mentally you're not), and a side effect to that problem is that because you sometimes get gaps in your workday you end up stretching the day into the night, blurring the boundary between home and work time.
- differences in culture that allow you to communicate your ideas and gain trust faster than in a local company (such situations: adoption of agile methodologies are way behind in local companies still stuck with waterfall when compared to US ones); - better pay compared to local deals; - work with international teams connects you to the pulse of a market you would otherwise only "observe" from a distance and maybe think the people running those sites/businesses have an extra "something";
... and bad: - (depending on your location and legislation) all overseas employers I worked with are NOT willing to pay social insurances that are paid by a local employer (this having the right to medical services and retirement income) - the "what have you been working on" syndrom: for managers that have little or no tracking in place BUT do like to "be in touch" and micro manage; - no paid official events: I had a unfortunate event in my family, my father passed away, and had to take 5 days off - did not get paid for it. Local legislation specifies that the employer has to pay 5 working days in such events (also for weddings and child birth). This might variate depending on your local legislation;
Hooray!
The best thing about it is that we have people on the team (myself included) who are experts we just wouldn't have been able to get if relocation was a requirement. I think this is the killer feature of telework-enabled jobs.
The problems, in my view, mainly have to do with trust and communication. With remote employees, you can't just drop by to check in on them—you have to do it over chat, skype, etc., and the same goes for communication between team members. I think a lot of employers have a sort of mental block they can't get past over this.
When I was hired, I was told I'd be visiting our offices once a quarter to check in. I think this was just worry about how a remote employee would work out. In practice, they found pretty quickly that I could be trusted to get things done, and I've never been summoned for such a "check-in" visit with my boss. We do have periodic in-person sprints where team members get together in person, and these are very important and productive times.
Lots of people with prior telecommuting experience warned me about issues like isolation, putting on weight (because of proximity to food) and lack of discipline. Now after telecommuting, I feel that I have none of these issues. I have friends that I play tennis with or meet up occasionally for drinks, and I feel that more than makes up for the lack of social interaction. Regarding food, I used to eat out when I commuted so now I have more control over what I eat being at home. Lack of discipline is a problem only when you see it as a lack of discipline. I have moments when I want to stop work and read HN, do a tutorial etc. This actually helps me getting back to work in an hour or two with fresher focus on the problem.
All in all, I believe remote work is the future. The so-called benefits of an "impromptu technical discussion in the hallway" might seem nice, but in terms of getting things done, it has no advantages over interacting remotely. Its really a puzzle why more companies don't adopt this.
I'd disagree with this.
As someone who has done both, I find if most of your team works out of one place then the lone remote worker often gets cut out of these impromptu discussions.
When 3 people grab a room and diagram something on a whiteboard it's usually easier to not include the remote worker due to issues, like: - time zone, the worker may not be working at that moment - how do you share a vanilla whiteboard in real time - how does the remote worker "point" to specific parts of a white board to illustrate a point or draw on the white board? - most people don't want to spend 10 minutes setting up for a 1 minute meeting, hence the remote worker gets dropped.
I'd say working together trumps remote workers for hallway discussions always.
Also, I was talking about the case where ALL employees in IT are remote and not just some of them. In that model, you all adjust to working in a virtual environment, highlighting actions that maximize interaction and minimizing those that dont.
I believe outsourcing will begin to play an increasingly large role in how society operates due to changes in work/life balance, increasing internet speed and availability, and the number of people working office jobs.
My experience with outsourcing has overwhelmingly been positive, however there's definitely an art to hiring a good employee. Some people who want to work freelance really shouldn't, they need too much direction or micromanagement, even if they're quite good at what they do. It brings a lot of value when your employees can think for themselves, most of the overhead of outsourcing is keeping on top of people.
One thing that people don't consider when hiring remote workers is the experience that can come with it. I've hired people who are experts in PPC. They have used screensharing to walk me through what they're doing while simultaneously delivering value to my company. I believe there is market for this type of remote training in the near future.
Incidentally, I had heard of hacker news but never read it, one of my outsourced employees really got me onto it. He's a designer from California. More than happy to share more detail if people are interested.
In addition to this, two other problems are: the failure for managers to coordinate and oversee "virtual" employees and the inability for those remote workers to communicate effectively.
From the management perspective, you have to be comfortable with not being able to walk over to someone's desk at the drop of a hat. There's definitely a change in cadence that takes some getting used to, but some people just hate the idea of not being able to walk across the room and chat (nothing wrong with that).
On the communication side, quite unfortunately, many people fail to communicate well (i.e. poor writing skills, lack of articulation in speech, etc.). Save for a decent amount of training, this is probably the hardest aspect of remote employment to deal with. If you can't talk the talk and explain yourself properly, you're pretty much useless to who you're working with.
Great question.
Advantages- .No IT jobs locally that i like to work for (mainly high stress financial based IT jobs) .Choose where I work from- I could work from home but I rent a desk in a communal office to be around other developers/entrepreneurs .communication is cheap- use skype .if this contract doesnt work out i feel i could move on to something easier rather than being a full time employee in an office .Never met my boss :)
Disadvantages .Spec gets lost- without proper procedures i find myself sitting doing nothing as boss is nowhere to be seen .you cant nag someone when ya see them. i.e. if your waiting on an email you cant shout across the room at them - you have to lift the phone or get them on skype.
overall i enjoy the experience and some of my main issues are more internal issues- but remote working is made so easy now with the likes of gmail, pivotaltracker, skype, dropbox and google docs
edit- some of the other comments say it can be quite lonely- i work in a communal office and i go to the gym every night after office hours just to get out of the office or away from home
I'll be honest, things do move faster when you're in the same room. But if they haven't replaced me with an on-site designer yet, I'm guessing that means the benefits of working with the right person outweigh the disadvantages of working remotely.
So it's been a very positive experience for me so far, especially since if I didn't work remotely, my only two choices would be A) move to the US (which I can't) or B) work only for French companies (which I don't want to ;).
And the only tools I use are Skype and email, I like keeping things simple, and I like that both tools force you to only talk to one person at a time, it makes things a lot easier.
I also use CloudApp (http://getcloudapp.com) for easy file sharing, it's especially useful combined with Skype to quickly share my progress since it lets you upload images straight from Photoshop and copies the URL to the clipboard automatically.
However, as the company grows I can see that there are certain shortcomings on distant working. The previous comments did a good job describing many of them. You certainly need self-motivated, oriented people - otherwise you will spend too much time on project management. Knowing them from previous projects is a must otherwise it might be a good thing to pay them a visit for some friendly talk (and a few beers) every few months.
As a side note: isn't a unique privilege to work from wherever you want, at your own hours and without constant meetings? I really love technology...
Of course the downside though is that the work/life line gets significantly blurred. At least working at a office when finishing work I 'finished' working remotely it doesn't work like that.. just will finish this one last thing then I will stop... and I don't.. I have a family now so its great to be near to see them grow up... but sometimes families still don't get the fact you are 'working' can you just drop so and so off to school etc...
But after a while I learned how to choose teams and projects too. Preferring long term contracts with the longest elimination process. An interview some trial tasks and even an IQ or math test really makes me feel comfortable about the company I am going to work with.
Well good teams always pays less, but you learn a lot. This keeps my hourly price rising since 2009 in every project.
Currently working in a team in which we have decent work hours, great developers and scrum meetings twice a week.
I have worked for people in US, most of the time, people in UK,spain and even in China. A few years back I used to work for EasyGroup which is(was) quite popular due to different ventures.
Overall my experience is good. I got burnt too when few clients did not pay me and ran away. I also experienced some cool things that clients became friends. one of them even hosted my personal site free of cost on their server so free domain and machine for my home site(adnansiddiqi.com). hehe
It has been a completely positive experience for me, but as others have mentioned it takes a large amount of discipline. It is really easy to get distracted and basically lose a day.
If she doesn't have a quite, separate room with appropriate IT equipment (UPS, printer, backup drives, etc) and furniture (desk, proper chair on which you can sit for hours, etc), the telecommuting project is doomed from the start.
some of the companies i've worked for gave allowance to help setting up your home office and it was plain great. My telecommuting was a personal choice, so i invested a lot to buy my own equipement and never regretted it for a minute.
There were no communication issues or isolation things for me but that might come with more time. My wife would just leave me alone to work, if she needed something that could wait she'd just IM me and there were never any 'watch the kids for 30 minutes while I run to the store' kind of moments. It was great to be able to spend my breaks with my family.
The only issue I had with working from home is that it's more difficult to get to know new co-workers.
Working as a remote employee full time is something I need to achieve. I think I haven't found the right opportunities yet or maybe I'm looking for them at the wrong places.
The main general issues with telecommuting is that when someone says "I'm sure you've heard about Project X", you haven't.
Just like setting a price, requiring remote work filters out the clients I would not enjoy working with. People with remote working habits I've worked with tend to be good at communicating, sharing issues (even psychological ones), giving visibility overall etc. Otherwise you're in trouble.
So yes: the future is now - if you wish :)
As an employee, I enjoyed the freedom and trust that my employer gave me. I had the same issues others have mentioned with feeling isolated, but managed to alleviate that by going to conferences and meetups. Keeping involved in the local community is important.
- I work in Ireland and my colleagues are in the US. The time zone difference is generally handy because I can work in the mornings and they come online around 1:30pm. So my afternoons (or their mornings) are when meetings and scrum calls happen. I don't attend any meetings outside my core work hours, and I'm rarely even asked to. I'm not sure a wider timezone difference would be suitable
- I actually work from a subsidiary office so I have people to get lunch with, even though I don't have any work contact with them.
- Things are usually scheduled around a US working day so, for example, nightly builds were scheduled to run in the early morning so they hadn't finished by the time I started work. And then I'd be trying to download them just as the corporate network start to get saturated by the US employees starting work.
- My line manager is here in the office but functional managers are in the US. This creates odd situations where I can phone-in sick but my teammates don't get informed. Or where my annual review is done in the US but the salary/bonus must come out of an Irish budget.
- "Ramping-up" on the product was pretty hard because if I got stuck in the mornings I had to wait until the afternoon to get some answers. Once that product learning curve is over and you become more autonomous it's much easier.
- There can initially be some resentment from US employees that their jobs are going to Ireland (an uncomfortable truth) and it can be difficult for me to know that an experience engineer has been "resource actioned" because I'm <1/2 the price. Particularly if they've helped train me up on the source code etc ;-(
- Many of my US colleagues are also remote / working from home but this is actively being discouraged. If fact, we all (US in-office, US working-from-home, and me in Ireland) had to attend a rather tactless meeting which listed the disadvantages to remote working: poor career progression, no management visibility, loneliness, poor team cohesion, communication problems etc. It's not like this was my choice!
- Tools: primarily email, instant messaging and regular conference calls. We also have get defect and version control notifications by email.
- I think things would be easier in a non-corporate setting because we'd have the flexibility to choose better tools: something campfire-ish, Git, some visual story planning / Kanban board, perhaps video conferencing over Skype, ambient webcams so you can see each other etc.
- I'm not sure if I'm a typical programmer: I dislike making phone calls and generally prefer to talk face-to-face with people. You get to pick up on subtle little clues (are they bored? are they stressed? are the busy? are they saying yes but only reluctantly?) which are lost in non-visual mediums.
Edit: I work in a very quiet open-plan office and this makes phone calls much harder. Ideally remote workers should have a private office so they are comfortable speaking on the phone. Particularly important if you want to conduct annual reviews over the phone!
- Having said all that, I'm seriously considering moving into remote freelancing or trying to find a permanent remote position but most job sites are focused on location-centric jobs. Any good pointers?
No matter where you live, once you get enough references and track of success - you will get this 2x - 3x rate easily.
But, like most things, the biggest problem is starting... and convincing my wife that I'll able to fly once I step off the cliff.
I was fortunate enough that my wife (although highly skeptical) was trusting enough to go along. Sometimes you just have to make the leap. Wish I had earlier, instead of listening to my fears and the fears of those around me.
What are the steps one takes to get to this stage - to become an independent consultant?
From what I've heard, it doesn't sound easy. Companies (apparently) prefer dealing with large body shops, not individuals. To get work as an IC it seems like you need inside contacts? Or maybe you need special, in-demand skills?
My previous company doesn't hire contractors from inside the country, so those contacts are useless. I'm a good developer but not a rock star, and I don't have special skills (Java developer).
I'm asking because I'd really like to know. In truth, I want to develop a lifestyle business, doing part-time work building something I enjoy with plenty of time off for other things. But meantime it would be nice to get some income doing short-term jobs as an IC.
At some point I found a job posting where client wanted to build simple social site - forum, posts, Q&A. I applied and recommended Drupal as a base. I was still novice, but I "felt" it was good enough long-term wise. By this moment I was charging $15/hr - this is after 3 months after starting at oDesk.com
After another 3 month I was top one for Drupal on oDesk.com and was charging $35/hr for Drupal projects. I felt pretty self-confident in this area. Also, I figured out there much more to learn - I continued. After another 6 months I stopped to apply for new contracts since existing clients kept me quite busy. By this time I was charging $50/hr. For someone from Belarus (where average monthly salary is $250) getting from $8/hr to $50/hr is pretty good.
So. You already have expertise (which I was lacking back in the time). You now need to find place to look for Java contracts (I am not sure oDesk is good place for this. May be eLance?). If this skill is not work good for IC area, learn new skill. Seems like ruby/php/python/nodejs is popular with remote contracts. Stick to it. Eventually you will build clients base and you will not need to market your self that hard. You will be able to choose projects and work as much as you want.
I'm a programmer, and I agree. Phone calls are my least favorite medium of communication. I have the impression this is fairly common. I'm also quite comfortable with email or IM and prefer those over using the phone, as well.
Both our Design and Art directors worked remotely from other states. It was NOT a productive situation.
It did, however, teach me that design is something that happens organically, and in collaboration over lunch, beers, etc. It can't be handed down from somebody hundreds of miles away to implement.
The same for art direction to a large degree.
My main problem right now is getting burned out. I stay at home most of the time and it is quite depressing sometimes.
Things like: going out one or two times a day (walking, biking), taking a regular yoga course (I do that), having periods where you stop working earlier, periods with no computers, reading books etc, seeing people, cooking...
I have a fully self contained development environment on my USB drive for when I absolutely can't deal with down time during internet connection / electricity outages. Then I can just grab any computer at an internet cafe and be back at it. Otherwise the outages are just unscheduled breaks. I have also learned to keep ahead of the ball rather than procrastinating because the outages seem to be timed for that last minute when I can't procrastinate any more.
set meeting times are a substitute for proximity. and audio works better than video. instant messaging is perfect for the times in-between as it creates a presence and has a very flexible protocol between users.
asynchronous development is very, very helpful. dependencies between people that are physically separated is considerably more difficult. this is a tough one to learn but brings its own strengths.
not only do we hire contractors from all over the world but even our full time employees are able to live "in orbit", moving around the planet with the freedom of backpackers. they are tied only to their computer.
freedom is a substitute for pay. once you get to a certain point of income you prefer freedom. i dont know anyone here that could go back to the world of offices; it seems so involuntary, like indentured servitude.
My main problem is: online communication makes discussion much more complicated than face-to-face, so you don't contribute as much ideas when people brainstorm or otherwise solve creative problems. If you have a lot of ideas, that can be depressing.
I visit the office several times a year, mostly to share thoughts and socialize.
If I had my wish, we'd all be in one office or at least local to each other so we could meetup and chat more often.
The biggest problem was always when there were some people local to one another who would get together physically to tackle a problem. Either they wouldn't think to dial-in the remote team members at all, or they would but the discussion would be conducted in such a manner that it was impossible to fully participate (i.e., poor speaker phone, whiteboard drawings, projector w/o webex).
I think remote teams can be very effective, but it is crucial that the entire org be oriented around communication channels that give the remote team members equal footing. I almost think the ideal is all or nothing -- everyone is remote or no one is.
The biggest win I've seen is with ops teams. I hope I'm not betraying any confidences, but a previous employer had an international ops team so as the americans were going to bed the ukranians came on. It made ops a lot less shitty -- I do not like being tired, it makes me cranky and pissed. The issues may still be annoying but at least you aren't being screwed by bad software at 3am, etc.
But if anyone has recommendations for and iPad app that offers a shared whiteboard experience please let me know. We already use Skype on iPad as our sort of virtual office so that would be perfect.
Or... make one! We'll buy it!
SyncPad looks pretty good.