views:

791

answers:

13

For people who do real actual programming from home, either part time or full time:

What are some of the most important requirements, for encouraging productivity? Other factors to consider, for a home with a family and the normal distractions.

Assume this is web application development, but open to comments for other types of systems or general development.

+19  A: 

The biggest IMO is achieving a clear, unambiguous separation between family and work space and time. If you don't establish physical and logical boundaries between family time and work time, you will likely do a poor job at both. The computer hardware and software tools are definitely a distant second to this, I find.

Chris Farmer
+8  A: 

Got to have a quiet office space, and a clear understanding from your family that they have to keep away while you're working (my cats still don't get this). Also good to have a path to the bathroom that doesn't go by anything interesting like the TV. Have the things you need (office supplies etc.) handy so you don't have an excuse to get up and sharpen a pencil or something.

In graduate school, I used to study with a stopwatch that I would run only when I was actually reading or writing or doing something productive. I would stop it when my mind wandered or when I got up to go to the bathroom. If you set a real-work goal each day (of 2-3 hours, and you'll be amazed at how hard just that is to achieve) it will really focus you, plus you can hold up the not-yet-at-3-hours stopwatch to ward off your family silently.

I've found that my productivity has soared without the office-related distractions, but I imagine having a family around would work against that. It probably helps if you don't all like each other much.

MusiGenesis
To me, having an excuse to get up is a chance to let eyes and boy relax for a while, which I find I am unwilling to do mostly otherwise as I sit continually in front of the computer.
ayaz
I agree having a quiet workspace is very important, I remember reading that researchers found this was why many programmers claimed they were more productive late at night because there were simply far fewer distractions.
Element
+2  A: 

First, get everyone at home to acknowledge that you're there to work, and that for all their intents and purposes, you are not home. You need your time to yourself.

You'll also need a decent internet connection, and a big wide screen. A laptop, so you can escape to starbucks to work is also good...

dicroce
+1  A: 

I write desktop applications from home, and honestly my needs are pretty basic. I have my MacBook Pro, a 22" LCD, a good keyboard and mouse and speakers or headphones for music. Even the LCD is kind of a luxury; running dual screens along with the MBP is nice sometimes, but I got along fine before the LCD. I suppose a good coffee maker is a must too, of course.

Really though, the most important thing for me isn't anything about my home office, it's the ability to get away from it every now and then. When you're working long hours from home there are times when you'll need a change in environment to stay sane. I consider myself lucky to have some great cafes nearby, most have great food and coffee, and a few have live music too during the evenings. Even if it's only for a few hours during the day, I've found that kind of change of pace can be very helpful for the creative side of programming.

Marc Charbonneau
+1  A: 

I work from home part-time. A good desk chair is essential, and the work computer should not be the same one used for entertainment.

e.James
I thought work was entertainment! Since when is there a difference?
baash05
If you've managed to find a career in which you do exactly what you want to be doing 100% of the time, congratulations! (and please tell me how :)
e.James
+1  A: 

John Torjo has a good article on the equipment and such you'd need. It doesn't discuss the distraction issue, but covers the technical aspects well.

Harper Shelby
A: 

a good set of earphones, a mouse, a laptop, and a coffee pot :) The earphones keep out the noise of the house and very quickly send a message, I can't hear you right now. Even if you don't have any music, as soon as they go on, you'll not be talked to. (same works for pesky sales associates in clothings stores).

AS to the chair.. I like my lazyboy and I've spent weeks coding from it. A desk is cool too but there are days when I just want to recline.

baash05
A: 

You don't need much. I work from home full time. It's important that people know you actually work from home. They shouldn't expect that you can vacuum / do laundry / etc.

When it comes to desks/chairs etc you can choose whatever you like - you're not limited to whatever is supplied at the office, which is great. For months I worked on the sofa then I started to get a sore back so now I use a desk (most of the time). Make sure it has enough desk space - a tiny desk will just frustrate you - and make sure it is your desk - kids/wives etc should stay away from it and not tell you to tidy it.

You may need a printer.

You will need a good internet connection. If all you've got is dialup it's not going to work.

The company will probably have to set up a vpn for you and they'll need to make sure you can send email on your work email account without being in their office/behind their firewall.

dan gibson
A: 

I took my budget for desk and chair and bought the cheapest folding table I could find and the nicest chair (I love my Aeron). I have never regretted either decision.

Kent Beck
A: 

I do freelance development exclusively from home as my sole source of income. (I won't call it "full-time" because I can't remember the last time I worked a 40-hour week.) I find that all I need is a laptop and a little bit of self-discipline to get me started. Once I've got my head in the code, I just roll with it for hours, but, if I get into something else first (like, say, StackOverflow...), it's very hard to get on-task. If you have family, then you also need their understanding to not distract you, of course.

Most of the rest of the suggestions so far have been superfluous, at least for me. I work just as well laying in bed with my laptop as I do sitting at my desk beside my gaming rig. (I generally don't program on my gaming rig, but that's just an OS issue - it's Windows and I write code on *nix. I do use it to test websites when I'm doing that sort of work, though.)

Dave Sherohman
A: 

At home you won't have certain resources that would be available at the office. I'd want to take steps to fill in some of the blanks:

A Windows Home Server to back things up nightly.

A spare computer. You never know when your main machine will be at 100% CPU with something important, or have a hard disk failure, or have a blue screen you want to hold on to. You can't ask a coworker to get you internet access. My main computer is a $1200 Lenovo T61. I have a $300 Dell D600 off E-Bay.

Good ergonomics. I have a cheap chair, and I hurt. My desk was at the wrong height. I did get out a good keyboard and mouse, which helped a lot.

Jay Bazuzi
A: 

Do spend defined time with your family as well. Try to maintain the balance. When with family dont think about the work. When working try to put productive hours. Dont hang in between the two.

+6  A: 

I telecommute 3000 miles and work at home full-time.

At a high level, you need a place that you can focus and be away from your spouse/roommates/kids. You need to be able to organize. You might need some redundancies that you might not normally consider--if the power goes out and you can't email a document to a client/customer, it's your fault. Same thing if you lose data or a computer breaks and you're "down".

I consider these items specifically to be crucial in my home office:

  1. A physically separated room with a door that closes. If you have young children, you need day care, even though you work at home.
  2. One or two phone lines separate from the rest of the house, with call waiting, and voicemail.
  3. Multi-function laser printer/copier/scanner. I use a fax service, so the fax part isn't important to me--but scan to USB memory stick with the auto-document feeder with no computer is a HUGE win.
  4. Good lighting.
  5. Plenty of desk space.
  6. Plenty of electricity. In the past, I've had to put test gear or printers in other rooms because my office was out of juice. My custom-built office has a 60 amp subpanel. I would say at least 2x15 amp circuits for a few heavy duty computers and a laser printer, once you add in lights, shredders, etc.
  7. Some mechanism that gets you out of the house from time to time. Fitness, lunch out, whatever. Fridays are "burrito days" for me.
  8. UPSes for phones / computers. Residential power can be flakey.
  9. Commercial Internet if you can. I have a 4 hour downtime SLA with Comcast. 1 or more Static IP addresses is handy if you forget a file on the road and need to get in reliably (sure DynDNS works, but do you trust it?). If you're running services at home, even on a small scale, commercial Internet that gives you control over PTR records is good too.
  10. A WebEx-type service if you need to give presentations, demos, etc.
  11. Plenty of storage for paper, folders, documents. Highly recommend a file cabinet close enough to where you sit that you actually use it. I also recommend a good label printer and using it to label your file folders so that when you open a drawer, it looks so clean and professional that you will want to keep it that way.
  12. A reliable way to back-up your data.

Good luck.

Mitch Haile
Very thorough and detailed answer!
pearcewg