Friday, October 19, 2012

Making working from home an attractive option for developers (and their employers)

Warning! This is not a technical post about EclipseFP or Haskell in particular, but rather some ramblings...


I’m a software programmer. I work mainly from home. I love it. But I’m aware that very few job postings offer the possibility to work remotely, and that if ever I have or want to change jobs, I will need to move somewhere else, where there’s a decent job market, to be able to work.
Now, I suppose it’s easy for me to work from home, for a variety of reasons:
  •           I have been working on the same project for a few years with success, so my management can trust me to do the work well;
  •           I manage a small team of people I’ve known for a long time and that have worked, like me, for years on the project, so instant messaging, emails, a few phone calls and the occasional meeting in person is sufficient interaction: they know what I expect from them, and for better or worse work mainly in their comfort zone;
  •           I work in a company that has grown mainly by acquisitions so has development centers all over the globe, in which taking time zones into account for meetings is natural, for example;
  •           I like to think of myself as self-motivated, organized and committed, so I don’t need somebody behind my back telling me to work harder ;
  •           I enjoy the technical work so I don’t want to be promoted to a management only role, where office politics and being physically close to the movers and shakers of the company matter.

A few of these reasons are specific to me and my situation, but it seems that generally speaking, a few factors could be seen as promoting working from home:
  •           The technology is here. At least in the western world, most houses have fast internet access. We have email, instant messaging, phone and video over the internet. We have distributed source control management. We have web interfaces for most tools we may use. We have cloud computing and virtualization so you can log into a remote machine and work on it as if it were local.
  •           With the wave of outsourcing, managers should be used to have remote workers, even in different time zones. Of course there was a backlash against outsourcing, but I think the bad experiences with it were more down to the unreasonable expectations (pay less money, get more work done) than to the actual distance between managers and workers.
  •           Companies may want to be seen as environment friendly. Encouraging people to commute and/or move to big cities is not a good thing in that regard. I barely use the car during the week now that I can work in my slippers.

Of course I’m well aware of all the objections a company can raise.
  •           How could I pay a good salary to somebody I don’t see? But are you only judging the value of an employee by the number of hours she puts in? The end result, working code in a shipping product, can be evaluated the same.
  •           How can I build a team spirit if nobody is in the same room? Well, we’re talking computer programmers here. Of course social interactions are good (and I get plenty of that in my personal life, thank you), but I strive on writing good code, making a successful product, and feeling I can satisfy customers and win new ones. I don’t need to be in the same office as the sales people to have that motivation. Meeting the people in the office from time to time is of course OK, the cost of travel and some hotel nights is nothing compared to the office lease and fuel savings.
  •           How safe is my code going to be if programmers log on from any kind of location? Well, it happens that I have to travel (to a customer, to another office) so the problem is there even if your employees are not traveling remotely most of the time. Use efficient security procedures (the ones that don’t get in the way of getting work done so that people don’t get so fed up with them that they try to bypass them at all costs) and encrypted connections, I suppose…
  •           How do I train my new or junior staff? That is a real issue. If somebody needs to be hand-held to get started, it won’t be doable remotely. So you may want to organize a few face to face sessions between new recruits and senior employees at the beginning. But when hiring experienced developers, this should not be an issue. Your code and your processes are well documented, right?

What more can we do to encourage companies to offer home working? Do we just need higher fuel prices to that employees cannot afford commuting? I hope we can be a bit more proactive. Can more technology help? Do we need more tools?
  •           Integrating IDEs with communication tools so that communicating over live code is easier
  •           Helping distributed design sessions using things like touch screens and motion capture sensors to better communicate the hand gestures that sometimes help conveying ideas better than word (but on the contrary, I sometimes feel that having to put down an idea in word helps it make clearer, and a trace of that thought can be kept)

Or do we have the tools and just need to get used to them?  Or is it just a shift in employee-employer relationship that may happen slowly and can’t be rushed? In this case, we need to push more stories like 37Signals, about how successful software companies are hiring remote employees and loving it!

2 comments:

aaabbbddd said...

The scientific method itself demands you work from home, preferably in double blinded environment!
Of course, some organizations
are not based on science, but on
certain economic monopoly powers.
case: simply pay late your electric bill three times. After
three times, your electricty may be
cut off. It will prove difficult to provide a 'substitute.'

1.)the sm aka [scientific method]
values hypothesis and counter-
hypothesis and results.

2.)social media popularity, 'reputation', ten thousand likes
and a friend of a friend of a friend
of yet another friend count FOR LITTLE.

3.)case: google Map-Reduce and the
'third generation algorithms' are
scaleable without 'reputation.'
how many venture capitalists
turn down the co-founders of google
because they are just PhD dropouts/
washouts?

4.)many negatives of working at
headquarters aka 'fancy building
in Silly Valley ... err silicon valley aka [HQ] is groupthink.

5.)test me for the truth! case:
NASA and the various shuttle explosions. Heat shield made of
'soft foam' becomes a hard rock
at such high velocities. Physics
law of ft=mv.

insert quote: Tao Te Ching about
water.

6.)this appears to be to me mostly
a CEO vanity 'control propensity'
personality order or DISORDER.

7.)Dear Mr. CEO: you are clueless!
My personal goal is to DREAM IN HASKELL. It is self directed.
When, I lift weights in
the gym, in between I think of MONADIC control sequences. Will I get muscle cramps this time??
My personal goal is to DREAM in
Haskell while I sleep. So, in theory I am working at home... :)
I rarely would share this with a boss. A significant proportion of
bosses are just clueless as their
worker's REAL MOTIVATIONS.

PS. No, as a gentleman, I don't want a young, beautiful woman
programming pair programming over my shoulder... Might be more distracting to me than to her.

PPS. Never touched Javascript. MUCH MORE IMPORTANT and financially lucrative than even Haskell.
Language Seems a bit strange, but think in Haskell then transform/map to Javascript??

aaabbbddd said...

PPS. additional insight as to motivations.

consulting - the need for experience
and SOLVING UNIQUE PROBLEMS. Tendency to get bored easily in
routine, administrative positions.

employee at large company - very
helpful if you are SINGLE like me.
Sure, I am on the 'career track.'
Sure, I have 'certifications.'
But, I have seen many BETTER THAN ME FAIL AND GET FIRED FROM THE COMPANY.

Work at home, means you control
the ESSENCE OF YOUR LIFE - your time.

PPS. As a boss or manager, I MEASURE MYSELF as
1.)top coder competitor - sure I suck. even suck really badly. so, what?
2.)open source bsd contributor.
I not only eat my own 'dogfood'
but I have sweated many times compiling from scratch from bare metal.
3.)long term goals. Never a 'quickie' last minute, give me
low quality report on Friday at
1/2 hour before closing time.
Obviously, I tell my subordinates,
think BEYOND HASKELL, to Math, to
Science and even to Logic.

4.)most of the 'team spirit', including even FOR THE OLD, MATURE
FOLKS, EST == Erhard Seminar Training tends to be somewhat BS or
bull****. ends with 't'.
case: not an endorsement, just
an example. New York City Swim
Around the Island. Easy to volunteer. Participants must be
EXTREMELY highly motivated to swim
in the dirty and dangerous waters
around new york city, manhattan,
new york, USA.
even some sessions at defcon,
las vegas. been there; done that.