(A spoof of ProgrammingOutsideTheCube
, a HaHaOnlySerious
by --and with apologies to-- ToddCoram
Programming is a skill in high demand. In many areas there are not enough programmers to satisfy the demand. Hence, some companies hire telecommuting programmers.
Programming is a combination of Art and Science, both of which require focus. However, the home environment is under the control of the programmer, which also requires the programmer's attention. The programmer's current home-related projects and work-related projects and the pile of dirty dishes in the sink and the miserable state of the baby's diaper make the programmer wish he could feel like an office drone.
Programming is an intense activity that requires extended periods of quietness and concentration. The home environment includes a baby, a sinkful of dirty dishes, large empty spaces in the refrigerator because the shopping didn't get done, and an eighteen-year-old cat with a bladder control problem and a delicate stomach, all of which are screaming at top volume even though nobody but the programmer can hear the sink and the refrigerator.
Programming often involves brainstorming (whiteboards are historically one of the tools of choice). Homes frequently do not have safe spaces for large whiteboards, although babies often think of living-room walls as large whiteboards and permanent markers as whiteboard markers, requiring the living-room walls to be repainted before the in-laws show up for the weekend. This is time consuming.
Programming often involves reading books. Books are best read with directed and controlled lighting (reading lamp, natural light over the shoulder, etc). The home offers natural light through windows that should've been cleaned last
spring and which offer a view onto a lawn that should've been mowed last
month and which light the overhead fixture that needs three out of four bulbs replaced. Except for the office, which is dimly lit due to the fact that the natural light and the overhead incandescent make too much glare on the screen, but the soft lamp pops the breaker every time you plug it into the same circuit with the computer.
Take your programmers out of home environments! Give them cubes or better yet, give them environments that completely prevent them from imagining what might be growing on those dishes by now. Ask them what their ideal environment would be. If they say "home," hit them. Feed them flourescent light and caffeine, so they stay wired and tense for physiological reasons instead of psychological reasons. (If they want to be cultivated like mushrooms, give them humus). It doesn't matter what the business does, it is in their best interest to do everything to make sure that the employee is given an environment as unlike home as it can get.
Artists do not work at home, they work in studios. They need space; they need natural light. They need a swift kick in the seat, the lazy bums.
Scientists do not work at home, they work in labs. They need equipment; they need whiteboards. They need funding, and lots of it (unless they work in biotech research.)
Programmers should not work at home...
--Now an anonymous contribution. It should be wiped.
Unfortunately, many artists and graphic designers work at home. Some of them work in a hohum home office (where everything said above holds true for them), and some of the studio's attached to their homes.
Except for when companies are all about that task (whether the task is design or programming), they tend to give the people doing the task improper work spaces. That said, artists are a bit more established as to what the ideal space for them is. Many people think veal pens are ideal for programmings ("If you want something cool to look at, then program something cool on your screen" was a quote I heard from one place.)
see also : LordOfTheFlies
Programming is a social activity.
Even better. To quote AnthonyLander
: "Programming is like sex. It's best done in large groups. PairProgramming
is like having sex with a partner. Programming alone is like ..."
I programmed at home for over five years. I now travel 30 miles by train each way instead. There are pros and cons in working from home. The disturbances you experience at home depend on your home: I had no cat (but was visited by neighbour's cats), I have no children.
- No background noise of phones, chatter (IdiotsWhistling?) etc.
- Choose to work when you want to; within reason.
- Choose not to work when you know it will be fruitless. Some days it is better just to do something else. Go for a walk along the river.
- No time wasted traveling to work. This time is much better spent sleeping.
- I have never found an office with furniture as comfortable as mine.
- I make much better sandwiches at home.
- I don't have to smell other people's meals at home.
- Limited interaction with others. I firmly agree with 'Programming is a social activity'. It is important to share ideas with others, and someone pointing out your mistakes can save you a great deal of work.
- You can never get away from work. It is too easy to work late into the evening, and all weekend. You have to go out to relax.
- People will visit during the day, and assume that because you are at home, then you are not working.
- You get to pay for the phone calls you make, and the internet connection (big issue in the UK).
- No whiteboards
- No access to shared resources (photocopiers etc). I've often needed test equipment I don't own (Logic analysers, digital storage scopes etc.)
I think that the best combination would be to do both: 2-3 days at the office, 2-3 days at home each week. But then (sadly) I don't do PairProgramming
. I've done some of my best work at home, but I've learnt more working with others.
I've been working at home for almost four years now. I go to the office once a week at most (even less frequently these days). Loneliness is definitley an issue. I just started a WikiWeb
at work. It is a good way to increase the bandwidth to other people at the office. It is slow to catch on, but the challenge of getting it going is interesting. You can't work at home without working on something interesting. (and if you can, then you should probably just end it all and do yourself a favor).
Consider how much your employer would spend on an office/cube for you. They pay for the building, the whiteboard, etc. So pay the expense and set up the features at home. Why don't you have a 6-foot whiteboard behind your desk? Set up a second PC dedicated to video+VOIP, VNC, etc and keep those features running all the time, so that you are as close to in-the-room as possible with your coworkers. While being at home isn't as good as being there, very few people actually put effort into setting up the next best thing. -- MartinZarate