I lived in Denver, Colorado for 10 years. I met my wife out there and like many in Colorado we weren't natives. We decided that we should attempt to get closer to family if we could so that our two boys could have some good years with their grandparents.
I work at Time Warner Cable and on a case by case basis they will make allowances for people to work remote. It's a big leap of faith and a progressive thing to do for a big cable company. To me this buys a lot of good will towards my employer. I appreciate it and my wife appreciates it. That's a factor.
I won't say that me, being remote is better than me being on-site. There are good things and bad things. Maybe it's a wash but I don't know. But I am confident that me, being remote is better than the general population of software engineers.
Things that Make it Work
History with Team
I had a couple years of proving myself to the team before I went remote. It also helped that a few of the guys on the team were long-time colleagues prior to my current job. So there's some history and trust already. I could do remote without that but it helps.
You need to have an office with a door that closes. This is a no-brainer. Of course good Internet access. Fortunately, the community I'm at in Louisiana has metropolitan fiber to the curb.
I don't keep the work hours of the home office, I'm just an hour ahead. We have engineers in every time zone so I might as well work 9AM to 5PM in my time zone. By 9AM I have worked out, had a shower and I'm sipping on a fresh cup of coffee ready for work.
I'm also completely dressed just as I would be for work in-person. I know others can work remote without being dressed but I see this as yet another slippery slope. In fact when I worked on-site there were days that I would wear shorts but since I've been remote I always wear pants during work hours.
I've read warnings from remote workers that a danger you may run into is not knowing when to stop work. That has not been a problem for me. Sure there have been a handful of times where operational concerns will have me working after hours but this hasn't been worse than any other situation. So yeah, at 5PM my time I'm out of my office and thinking about dinner with the family.
Team meetings that happen regularly with cameras and voice are great for getting back in touch to what your team is doing. If these meetings go away then you can go days without seeing or hearing people. That isn't good.
We use a lot of tools to make the remote thing work. What we've found is that the quickness at which we can use a tool is almost more important than the features of different tools. We use join.me for quick screen sharing and sometimes voice, also Skype for chat and voice.
We hardly pair-program but at the times where I did it was great with voice and screen sharing. join.me will even let you hand off mouse and keyboard control to the person who is looking on the other end.
Prior to working remote, when I got on voice, the first thing I would do is figure out how to get off the phone. Being on the phone with others was kind of creepy. So yeah, you have to get over that. Sometimes we'll even just leave Skype on and not really say anything in particular. You can mention things casually just as you would if you were co-located.
Of course another nice thing about tooling is that you can turn it off or ignore it. I'm not the first person that'd say the ability to focus is one of the best things about being remote.
Nothing beats getting out into the same place with people, talking, having a meal and maybe a drink. Most any amount of friction and sharp edges can be overcome by having food and drinks with people.