I have worked remotely in a couple of different settings and personally love it. It definitely works for me, even without a coding buddy, and saves me tons of time in commute and stress from not having to look at cubicle walls or sit up straight all day.
“Only grizzled veterans who absolutely love to code need apply for remote development positions. Mentoring of newbies or casual programmers simply doesn’t work at all remotely.”
This sounds like the typical yet completely wrong advice that “agile is only for companies that are ok with risk”. The reality is that agile is for ALL companies and helps manage risk better, but since it exposes the inherent risks in development, then people conclude it causes it.
The reality in this case is that “only grizzled veterans who absolutely love to code” make a ridiculously large and valuable contribution to any software development team, way out of proportion with a newbie or competent programmer. That is not as obvious when we all sit together in a room and code for 40-50 hours but becomes much MORE obvious in a distributed environment. A newbie who would not be able to successfully contribute much in a distributed environment would not be able to do much in a co-working environment either, but since they show up for the same amount of time, somehow our brains just don’t notice or care.
I’m not making the case NOT to hire a newbie or barely competent programmer, as there are many benefits to having them (at least the newbie ones). You get a fresh perspective, you can build loyalty and grow a great programmer (if you play it right), etc. But for too long managers and companies have ignored the massive productivity differences in programmers of different skills. I am making the case to make those as transparent as possible, and working remotely (among many other benefits) is one way to do that.