In my previous post, I was asked in the comments to share my thoughts on telecommuting. As a little background, I started telecommuting part-time back in March, then full-time starting at the beginning of July after a project fell through. At that time, I had gotten totally sick of a long commute from home in a little town just outside Toronto to my job in downtown Toronto. 90 minutes in, almost two hours home via commuter train and bus. Sure, I didn't have to drive but almost 5 years of that ground me down and made me yearn for a job where I could work from home. While I certainly feel a lot less stressed, telecommuting is not without it's challenges.
The biggest problem is lack of human interaction. Yes, I can chat all day long with people via IM (both of my telecommuting jobs use IRC channels on freenode.net as a way for the team to gather) but it still doesn't match being able to see people face-to-face. Despite being labeled as grumpy by some people (my long-suffering wife being one of them) I still enjoy talking to my co-workers, having lunch with them, etc. When I'm down in my basement office (currently unfinished with lots of junk that needs to be dragged away to the dump and then renovations looming on the horizon) all I can do is talk to my cats...when they bother to come downstairs. Do I get lonely? Sure do, but since I'm home I get a mini-break at around 2:45PM to get my oldest daughter from school and I get 15 minutes of talking to her and the other parents waiting around to get their kids from school as well. Then I tell her to go and do her homework. :)
Now, although I am an experienced PHP programmer my career has been one of breadth, not depth. I've worked on a lot of different things, but only one of them was a really in-depth project where I got to know it inside and out. That was the adult dating site, and even that level of in-depth knowledge started to fade 2 years into my 4 year run there. So, I'm constantly having to learn new things and it doesn't always go well. Sitting in your house alone isn't good when you get frustrated with your inability to figure things out to the degree you want. So, even though you are isolated remember that there are people out there who can help you. Don't feel stupid about asking questions, although my massive ego does get in the way sometimes of asking questions.
But most of all, you need to learn to focus on the task at hand. Just because you're at home wearing your jammies (yes, sometimes I've kept my pj's on when I've dropped my kids off at school and day care), with a setup just the way you like it and no boss walking around peering over your shoulder doesn't mean it's a license to screw around. Yes, we all get distracted at times. I'm no saint, and it's easy to get distracted with non-work things. Like the internet. Just remember that your ability to get the job done the way the people who are paying the bills want it done will determine how long you get to work from the comfort of your own home instead of in a cubicle where your boss can keep an eye on you.
Without that constant presence hovering around ("Is my boss going to come over any minute now to talk about something unrelated to work?") I feel a lot more comfortable digging around to find answers via Google to the set of problems facing me. Or taking the time to actually read some documentation about something related to programming. Or experimenting with some prototyping of code before getting on with the actual problem itself. You know, the type of things all good programmers are supposed to be doing. Or at least what *I* think they are supposed to be doing.
As it stands right now, it would be very difficult for me to go back to an office job because I've set my life around being able to work from home: the freedom to go pick up my daughter from school and not pay for after-school care, the freedom to quickly pop out to run an errand that normally would have to get done after work, the freedom to shift my work hours if Real Life intrudes. The self-discipline required can be difficult for some (I have struggled with it from time to time) but I keep reminding myself that learning to work productively from home is a small price to pay for avoiding long commutes to work and being a slave to someone else's schedule (be it train, bus, or local traffic patterns).
There seem to be more and more telecommuting jobs available as companies start to realize that it is possible to run a distributed business, and that if you are willing to trust the people you have hired to work without physically being there you can accomplish a lot. It's really all about trust: you are trusting that the people you have hired can get the job done without you actually having to watch them from your office.