There is a crowd out there that believes work should be separate from home.
These folks tend to think that a job is from 9:00AM until 5:00PM and that as soon as it is 5:00PM work is done and now it is time to head out with friends and/or watch TV or go to the fitness club.
In programming, this act should be against the law. Start up companies especially.
With companies/people I've consulted with, it is essential to mix work with home. Home is work.
At 9:00AM-11:30AM in the morning, a programmer may be discussing with another programmer or manager a problem encountered (through email or by phone). At about 1:00PM-2:00PM there may be a partial or full resolution to the problem, and at 3:00PM the programmer may be on his way with coding.. and at 5:00PM the programmer has another question. So the programmer fires up his email or picks up his phone and calls the 9:00-5:00 guy and says "I have a problem..".
Unfortunately the nine to five guy isn't available, because he's gone home. He's out with his friends drinking or out at the fitness club. So the programmer doesn't have his question answered and he decides whelp... that is it for the day, it will have to wait until tomorrow at 9:00AM.
The next day, the process repeats itself.. a question gets answered at about 9:00AM to 11:00AM, and another problem pops up, and before we know it the work bell has rung at 5:00PM.
This process of working and going home is extremely inefficient.
Home is work - work is home. Especially with startups, a team of programmers and managers must be completely involved and completely drunk on their own work - or things aren't going to get done in efficient manners. One must magickally transfer his craving for friends, fitness, beaches, sex, alcohol into work. Magickally make home work, and make work home.
Exception: one can still indulge in food.. since food can be kept near the computer.. so no need to transfer the craving for food into programming. Food and programming can coexist.
I have a Question, Where the Hell are You
At 8:00PM if a programmer is still working and a manager is still there to answer the phone, it makes all the difference in the world.. and I'm not just talking about a cell phone, I'm talking about the manager and programmers being at their desk at home with full access to their servers in a shell window or through their browser, or through remote control, or heck hopefully even some of the programmers are in the fucking server room eating a pizza with a screwdriver in their hand just in case one of the hard drives pops loose (hiking boots on too).
And if the whole team of programmers and managers are still playing with code snippets at even 11:00PM... and if they are enjoying it too .. then we've got a successful company,
Work and Play must be Balanced?
Some may argue that one must balance life.. and that work must be kept separate from home. This may be true in, say road construction or demolition businesses.. since a home should not consist of road construction, and since a home should not consist of dynamite.. but in the programming business, where all programs and all code always takes longer than anticipated, and where lots and lots of questions and problems arise, the environment needs to be merged. Home needs to be work.. and work needs to be home... programming and managing programming takes long and fun hours, not long and hard hours.
Most of the time at work during 9:00AM to 5:00PM hours, there are a lot of procrastinations happening and a lot of inefficiencies.. and to make up for this inefficiency it is essential to work before 9 and after 5.. and make it fun! This isn't about "overtime hours", this is just about doing things efficiently without making the assumption that 9:00-5:00 automatically means efficiency.
See also Army-Of-Programmers-in-a-Building