An Office Made of Software
geoff.greer.fm
geoff.greer.fm
The advantages of working from home are obvious. Short commute, convenience, midday naps, no pants required... no wonder people want it.
But the disadvantages are really only apparent once you try it. It's hard to get motivated. It's hard to feel a sense of accomplishment. No sense of office "buzz" or excitement. No one to carry you through the mid-afternoon doldrums. When collaborating, all that rich human emotion and nuance is squeezed through a soda straw. Can't go for a walk and talk through a challenging issue. No commute to transition from "work mode" to "family mode." No high fives.
I'm a hard-core introvert, and I miss people.
My business has been a one-man business for the last thirteen years. One of my greatest hopes is that, when I'm successful enough to be a sustainable multi-person business, that we'll have a kick-ass office where we all work together. Because working from home isn't all it's cracked up to be.
- I had trouble mentally getting into work mode at home.
- Since my home windows are not tinted (I've since noticed that most office windows are), I was readily aware whenever the weather was nice. In those cases, if you can imagine this, I felt guilty for working because I should be enjoying the weather!
- I only ever felt proud of a day's work during a stellar day. Anything less made me feel inadequate (in the office, I feel good about what I accomplish and don't feel guilty about less productive periods).
- My pets do not come to the office. I love them, but they are distracting!
This. Surely this should be considered a fair drawback of office work?
My qualms are with the fact that office work seems to sorely hinder one's ability to self-report about actual productivity. Whilst this is lovely for one's mood (the value of which should, admittedly, not be understated), it seems to bode ill for effectively self-managing one's efforts to get work done.
See what just happened there? The author jumped to the conclusion that "software companies" employ nobody except "programmers". That might be true for a tiny start-up, but once you reach a certain size, all types of other jobs spring up:
- Managing payroll, health insurance and other benefits
- Sales and marketing
- Legal and accounting: someone has to negotiate the contracts for data center services (even if all the services are outsourced); someone has to pay the company's bills; someone has to do the taxes and other legal paperwork (lots of extra paperwork if it's a publicly traded company); someone has to reimburse employees for travel and other expenses.
- Recruiting
Imagine a software company with just a hundred employees (not a very big company at all, compared to Facebook's 5000 or Google's 45000) that consists of just people working from home. It doesn't seem to scale.
In tight shops where sales sits next to engineers and personal relationships are built, those small issues tend to get resolved rather quickly, leading to happier parties on both end, happier customers and higher product quality.
In distributed shops request must flow through a gatekeeper, such as project manager, who then keeps and prioritizes a list of such requests. Sales people then complain that nothing ever gets done, and requests go into a vacuum, while engineers complain about too much bureaucracy and inability to concentrate on large projects with all the pesky requests streaming in.
Why not a web forum or a chatroom? Some chat software even allows screen sharing.
Even though we are literally across the street from each other, and even though we are together with like co-workers and departments, we've felt the same issue you've described here.
This is because we have grown lately and expanding our physical space has been... a complicated procedure. I'll be glad when we've moved into a single office again, which should happen by the end of the year.
The hardest part is motivation, not necessarily because the temptation to goof off is higher at home (sometimes it can be the opposite, if you are in an office where goofing off is common).
You don't get the human reactions to your work. For example you can't build some feature and just grab the nearest person to show and see their subtle reactions to it. You don't get to walk past another part of the building and see a room full of people using your software to get their work done or whatever the effect of what you are doing is.
Instead you end up sending an email at 7PM saying "I have completed item #232" and you get one back the following morning saying "ok, proceed with item #233".
Social isolation, stress, illness, lack of exercise, are things that people who work from home face. Without deliberate action you can develop life threatening conditions after just a few years of neglect.
Offices, working together in person, can add a great deal of value and productivity to a task. I'm not convinced it is so valuable as to do daily.
Be mindful and pay close attention to your own personal health and relationships, and working from home can give you the opportunity to live a drastically higher quality of life.
Everyone in this thread seems to be talking about remote collaboration as it exists today, but I'm talking about how it will be in the future. The software isn't there yet, but it's bound to get there eventually.
Also, the way your write it sounds like you and your teammates communicate so tersely as to be an impediment. Don't do that.
In every office I've ever been in, all the programmers type to each other all day long on IRC. In all the distributed workplaces I've ever been, they do the same exact thing, miles apart.
Talk to each other. All day long. Constantly. On IRC. Just like you do in an office.
IRC can also be easily ignored as people go "AFK" or "busy", it's harder to ignore someone standing in your face.
I'm not sure about that. The whole point of an office seems to be to allow management to verify that you're getting work done. Or, to put it even more accurately, to allow management to feel like they're verifying that you're getting work done.
I'm not sure Floobits addresses that. In fact, I'm not sure that it's possible for a product to address that. It seems like the sort of thing that'll require a generational shift (as newer managers comfortable with remote work replace older managers who aren't).
This part is pretty easy. Whether remote or working in an office space, daily standups, commit logs and the delivery of results can go a long way in figuring out if someone is actually getting stuff done, or is just pretending to busy at a desk.
There are a couple of things people don't seem to address enough though.
- A lot of software development involves a group people designing and debating the architecture in front of a whiteboard. Most of this discussion is not preemptive, but rather happens on the spur of the moment.
- I strongly believe (but no data to back this up) that you are more productive when you work with a team you are comfortable with, both technically and on an informal social basis. This involves intense coding sprints through late nights or just having a couple drinks at the bar in the corner of the street.
I would be happy if working remotely really works for programmers, but everyone seems to be talking about the wrong issues.
You hit the nail on the head for some offices. In some offices there's a clear ridiculous condescending paternal feeling as if punching a clock is going to affect the quality of the work in any way other than damaging morale.
What is happening though is that the valuable work of today is conducted by internal deliberation (building apps, predicting prices, writing compelling blog posts).
As it becomes more possible for people to distribute their work without a company (app stores and the like), the office will be bled dry.
But at the end of the day our efficiency/productivity in making major decisions is much higher when we gather. Technologically, this is driven by 2 things: 1) Whiteboarding software just isn't there. I can't as effortlessly sketch something out and share it with remote people as I can on a physical white board (which is arguably as relevant to "software companies" as actually writing code). 2) Audio/visual latency still exists. Even if I closed my eyes, I could still tell who's in the room and who's not. Sometimes I'll come in just for a meeting because of this.
I do think a happy medium exists in much smaller offices/coworking spaces where most people are WFH a lot but come in once a week for meetings.
As the article points out, private offices are considered more expensive. The question is, how expensive are they? Is it the increased floor space they take up? The cost of the materials for walls and doors? More complex heating and cooling?
It's a sad trend indeed; here in Tokyo private offices are almost unheard of, and even back home in the SF Bay Area private offices are quickly going out of fashion.
The fact is that, for some engineers, auditory and visual distractions can ruin the focus needed to achieve goals. Open plan and cubicle offices are hell for these engineers.
Thought the Second: It's going to take some really _good_ software to replicate the intangible benefits found when people work in the same office. Overheard hallway chats, oh-by-the-ways in the break room, impromptu white board discussions.
Thought the third: Because these intangibles cannot be measured, a majority of HN readers are going to have a difficult time seeing the value of them. Commit messages, working code doing something - you can measure that, and it is good.
How do you measure the value of a game of ping-pong during lunch?
most of our programmers work remotely from their homes, and our systems administrators work from home and in the datacenter.
equilibrium.
How are programmers different than bloggers, secretaries, online and social media marketeers, customer service reps, etc.. in this regard?