Run through a de-weaselizer, this reads:
"Be a good little pet, and do an extra set of tricks when we take you out to the park, so you feel good about running around in the park and we feel good about granting you the privilege to go out once a week."
Yeah, bullshit. Place where I work operates on a culture of complete trust, period. Example: Once, a guy on my team had to go to his parents' house out in the country and was stuck with a slow internet connection. No problem, he did some stuff, stuck it out for as much as he could and then shelved it. I bet he enjoyed his time there much more than he would have sitting in a bunch of chatrooms anyway, and he did it on company time. He was much happier when he came back, and probably did twice the usual amount of work when he did on average.
As his co-worker who was working when this guy was at his parents' house, did I feel slighted or angry at him? No, for heaven's sake -- he was seeing his family, and enjoying a few choice, uninterrupted hours with them. Webapps can fucking wait. I was perfectly happy doing his share of the work.
The culture in the American software industry glorifies ass-in-seat hours (directly or indirectly -- this notion of "exhibiting your productivity" is just another version of ass-in-seat hours) at a cost to actual productivity, happiness, and general well-being by waving the distant promise of some sort of vague payout in front of you, and getting you to constantly compete with your co-workers at "putting in more time". Reject this sort of rubbish unconditionally if you have even the slightest choice.
I know, because I've experienced about 70% of these frustrations. I usually ignored them, and thought "whatever, I'm sure things are fine," and then I realized my views of remote work are impacted negatively by these slight annoyances.
Maybe if people had that slightly better headset, or a connection that doesn't piss you off due to choppiness, hey, maybe it would make things work better. I think it might help. These aren't bad suggestions taken at face value.
Codifying them as rules is a bit harsh-sounding I agree, but it seems like they're just Things That Work, and in the sense of Paying People Real Money For Doing Things, they might as well be Things That Work, and not things that are just annoying and less functional, even if, as you say, in the unmeasurable ways they are beneficial (which I still think is true).
It sounds like they're not trusting people. I don't like that part, and I don't think it's effective to reduce autonomy like this. Maybe they need to work on the wording, or the philosophy, I don't know.
What I don't like is making them into a "remote work policy" rather than "here are some things which might make your remote work more smooth for your team". That basically means (as you said) that there is a lack of trust amongst your team members. And lines like the suggestion to "Over-communicate and over-deliver." are just plain Microsoft-management-style bullshit which prevents anyone who is actually working remotely from enjoying their day.
> Maybe they need to work on the wording, or the philosophy, I don't know.
Probably both, the post would be pretty good as a set of suggestions without the hubris, and if they actually gave technological suggestions that you might not know off the bat. A set of scripts that makes remote VPN login seamless and smooth? Perfect. A set of things that sounds like Captain Obvious combined with some pseudo-motivational nonsense from an IBM manager training session? Probably not so much.
As a remote worker: I wish my main office wouldn't use shitty conference speaker phones and actually had an internet connection half as fast as I do. :-)
(Seriously, just today I sat through a WebEx conference call with six people in the room and six people online--all our devs are remote--and ghhhhh mumble mumble mumble ghhhh was the order of the day.)
Back when I was working for the company on site, my father had his leg broken by an out of control snow boarder right before Thanksgiving. When I was home for the holiday, I realized he needed help around the house, so I asked to work remotely for a week to help him out. Joel and Michael gave me the time and told me to do whatever work I could, but not to worry if it was less than usual. I fully expected to sacrifice a vacation day or two, but they made it clear that wasn't necessary, even though I spent half of my time helping my father.
And what did I do while I was working? I wrote longer commit messages, checked in on chat, and updated my Fog Bugz cases because I didn't want to feel like I was taking advantage of my company's generosity.
It's also important to remember, in most industries, trust like this is totally unheard of. We are very fortunate to work in an industry where it is a more common practice.
 I left the company about 18 months ago to pursue my own startup.
You should probably work in more industries. There are plenty of industries where workers have to roam (like high end sales or service) and have to be able to manage their own time effectively.
I'd rather pursue my own startup than have to do Google Hangout checks everywhere!
Your case does sound like a fairly decent work-at-home case, which would have turned out around the same at the place I work. And you working half as often, but a lot harder also tallies with the things I said.
I guess the only things I had a problem with from my original comment are:
a) Putting it into policy that workers have such-and-such a setup. People who work in this industry tend to resent rules and replace them with common sense. I mean, sure, if a person is not getting a good connection or a decent headset, talk to them. Don't make it into a bloody policy document that is fodder for HR.
b) It should be an implicit gesture of faith on your part and trust on theirs that you worked harder for the short time you were working remotely. Having it spelled out in policy like that somehow makes it feel rotten.
b) If you step back and imagine taking a non-cynical view of this, it really is just a simple suggestion. "We've found everyone's happier if you try to do this." Add to that the fact that it is under the huge header that begins with "Suggestions..." and you might actually believe it is a suggestion, not a policy.
Otherwise, asking someone who works in technology if they want to work in fast food is kinda pointless.
Yes, if you work in the industry equivalent of a low morale Taco Bell (dunno, Oracle?), Fog Creek sounds like a great place to work.
I've used Fogbugz for years, have been a fan of Joel Spolsky's writing, and I'm pretty familiar with what he has strived to achieve with his company in terms of creating a great work environment for developers. From everything that I know of Fog Creek, it is a good place to work.
I really don't understand the point you're trying to make. Personally, I don't prefer micromanagement, but it doesn't make me unhappy if other things are being run productively.
What is this I don't even. So you don't prefer to be micro-managed, but you're fine if other people are? It doesn't work that way. This is a pervasive company culture. Either your company has these rules and everyone is micromanaged, or no-one is.
At the very least, you have poor reading comprehension. You are not trying to understand what I'm saying, you are deliberately taking the worst interpretation of what I've written, to the degree that you're literally attributing to me things that I didn't even say.
Humility, civility, understanding, thoughtfulness, etc are very valuable and somewhat rare traits in the technology industry.
People who don't need/want this bullshit leave, don't get hired or decline, people who need hand-holding stay.
Management-style is a self-fulfilling prophecy.
We call this "vacation". Our leave policy is plenty generous to take things like this into account (unlimited sick, unlimited unpaid, and 4-5 weeks paid).
This policy is about long-term remote work. For short-term things like that, it's not worth the hassle of working at all.
Whats the worst that could happen if one of the workers has a less than ideal setup while temporarily working remotely for a few days? Would it really affect company outcomes? If not, I think developer happiness would be improved by having a more laissez-faire attitude from management.
Joel's rules strike me as a little more specific than necessary, but I can very much relate to his feelings. I have experienced devs "working from home" who disappear all day and hold up the whole team because we can't find them to ask a quick question. The point is that when you say you are on the clock - then you should be working. I personally wouldn't care so much about the exact specifics of your internet connection or whatever. But, if you tell me that you're working then I expect that you're actually at your computer working and not laying by the pool or playing video games.
It's equally easy to say that you'd just fire somebody who you did not trust to work at home with no rules. But, as with many things, it's easy to take this hard line approach with your imaginary company and theoretical employees - quite another thing in reality though. Some people are very productive but maybe not so disciplined. A few sensible rules and expectations can prevent problems.
The HR industry terms this "Employee Engagement." If I had to guess, Fog Creek has quite a few "disengaged" employees.
Good managers are nearly extinct species, whom you encounter once in a while in years. The remainder get to become managers by their political work and a results oriented work environment is something they will never build. Because if we were to measure progress by results, those managers will be the first to be fired.
>>As long as the goals are being met, management should allow their developers the freedom to choose their own work environment and hours
Their goals are very different than our goals. The goal of leaders is to produce results. The goal of management is to keep the wheels running, regardless of whether the running produces any results.
A good manager is automatically a leader.
Further, their goal is to encourage good work/life separation even when working from home. If you can't maintain that separation, it seems FogCreek would rather you clock it up to 'life' time than blur the lines. That's just good management - working with distraction is going to result in poor output. Goal oriented management in this scenario, particularly when this may not be a normal part of the workers routine, could result in stress and poor work. Far better that if you can't have a good work environment then you just take a break and increase your output when you get back.
Down the page they mention The burden is on you to show that you’re being productive. -- that just sounds outright authoritarian and demeaning. Strict policies calling people out as "do this ... or else" don't exactly engender trust.
I think they cover most of our complaints in the poorly worded Known availability and overlap with your team section.
Most places have three levels of "work from home." There's full speed "work from home" where you're getting more done because you're not distracted by office shenanigans. There's half speed "work from home" where you're not plowing through, but you're keeping up with all communications/chats and fully available if anybody needs you. Then there's fill-in-the-gap "work from home" where you're checking into work systems in the morning, getting some things done, going to an intermediate step in the middle [an appointment at the house, going to a doctor on the way to work at 11am, going to the DMV at 10:30am], then going into the office for the rest of the day.
I think they're saying all of the above is okay, just communicate what your availability will be up front (which seems to go against their other policies of "work in a nuclear fallout shelter away from all distractions and you better have no other responsibilities at the same time either — we own you").
I think this is hyperbole. They all basically boil down to: if you work from home, please work from home. And keep in touch.
I work from home. As a rule, the best-running projects are those with daily video meetings. The 2nd best involve phone calls. The worst involve emails.
Faces have enormous bandwidth. Voices a bit less. Email has bugger all for the things that matter.
If a company offered me the choice between working from home under the conditions listed for Fog Creek or not working from home at all, I'd choose the latter and consider option c) quitting to obtain employment with a company that recognizes I'm not in kindergarten anymore, and don't care to be treated like I am.
They pay us to make business problems go away. It just so happens that our tool for that is usually software.
A major insight of agile methods is to put the developers close to the coalface, because infrequent or indirect contact leads to the wrong thing being built.
I frequently find while working with customers that we have entirely different mental models of the project. And I only find that out because I am constantly asking them questions about their business.
Perhaps "insane number" is wrong. I probably meant "insanely specific requirements."
The 1 wasn't even running to rector st this evening, so I couldn't get to work even if I wanted to.
Do they have a "if you work in the office, please work in the office" list of rules?
My experience has been that most people "working" in an office aren't working at all for the overwhelming majority of their day. But that's just office life and it's just the way it is. Marissa Mayer wants everyone in the office because she wants to set a "good" example: businesses like Yahoo absolutely depend upon vacuuming away the activities of people sitting in droll offices.
For their sake I hope they take some of the sage advice offered in this thread from the numerous people who have run profitable businesses with multiple employees for several years.
1. Be able to communicate with your team.
2. Have a place where you can work, distraction free.
3. Get approval from your team lead. (This one barely counts, since the answer would never be no.)
From working remotely for the last year, I've found that basically any table is a fine remote work spot for me. Kitchen table, Starbucks, whatever. I have learned that I don't get appreciably distracted by ambience or even really by light conversation (unless doing something particularly out-of-the-ordinary in terms of difficulty, in which case it's lock-the-doors time); if I did have concentration issues, don't you--y'know--think that I wouldn't do the things that triggered them. Because I'm an adult and I'm competent? The assumption that people aren't is why, to me, these edicts read as kind of wacky.
 - Hell, I'm getting a coworking space because I find that that ambience and that light social friction makes me better at what I do. =)
>Approval from your team lead. Basically, just tell someone well in advance if you’re going to be altering your work arrangement, temporarily or permanently.
seems counterproductive. Sometimes problems come up and you suddenly need to be at home tomorrow to meet the cable guy, who has committed to come between 6 AM and 9 PM, but will only be there for 15 minutes.
Use this as a reminder about why it's important to ask probing questions whenever you interview for a job. Find out what the culture is like and if it is a good fit for you. I know several developers who thrive with the environmental conditions listed here and would love having the company have rules to enforce these conditions. I also know several developers who would burn out.
It's vitally important to find something that's a good fit for you. No need to hate on their rules if it works for their team.
Edit: Also, if you don't like this list, what would rules does your team have in place to ensure an effective, productive remote work policy? Does it scale up with the team?
When I've worked with teams where everybody gets along, there's always updates or chats flying around with everybody telling everybody else when and where they'll be doing what for how long without any guidelines, prompting, or pompousness.
 As mentioned elsewhere, I was Fog Creek's first full-time remote dev.
Well that's a dumb assumption. The managers at Fog Creek don't do code reviews, don't look at commit logs, don't look at the features that developers have built? They just assume that everyone is being productive because they are in the office.
>When you step outside the HQ work environment, you should flip that burden of proof. The burden is on you to show that you’re being productive.
At my job productivity is shown by the code I commit and the features I build, not the time that I visibly appear to be typing away at my keyboard. Apparently Fog Creek does it a little differently. I'm glad I don't work there.
It’s because a few normal ways of staying involved (face time, informal chats, lunch) have been removed.
From experiences of my own and from stories of my co-workers', this is the most brutal part of WFH. It takes a lot more of yourself to work diligently when you're alone and don't get the same face time, and this is about, frankly, stating how to achieve the same advantages in the next best way. Your co-workers may not know how to get that face-time back from you either; you need to initiate.
Correct. The only managers are the founders and maybe one other person. Everyone else is part of a dev team. The managers trust the teams to do what they need to do.
> At my job productivity is shown by the code I commit and the features I build, not the time that I visibly appear to be typing away at my keyboard.
What gives you the impression that anyone is counting time at the keyboard? Having been both an on-site employee and the first remote dev, I can tell you it was very much about getting your code written, nothing more.
Otherwise, wherever and whenever you're working, you should be judged on the outcome of those projects for which you're responsible, nothing else. If collaboration is required, your smart people (you hire people that are smarter than you in their field right?) will know they need to deliver their best in order to keep their jobs so they will work it out themselves. How that's going to happen, whether if it means getting together in an office, temporary conference room, Skype, or google hangout they probably know more options than you do. If you want to reasonably keep status on them, hold a standup once a day. Anything regularly beyond that specifically for no other purpose than management is telling them that you don't trust them and therefore they shouldn't trust you.
How about this: hire smart people you trust, give them whatever tools and support they need to do their jobs most productively, then get out of the way.
"* great work environment, with the goal of every engineer having an office with a door that closes"
And, in an oft-cited "Joel Test" :
"8. Do programmers have quiet working conditions?"
Furthermore, the company itself says :
"The average Fog Creek developer has 694 square inches of screen real-estate, 2 desktop computers, and an Aeron chair. Most have private offices with windows and doors."
Googling for "Joel on software door that shuts" will turn up similar results.
A shutting door is clearly important to the management, remote or no.
I'll hazard a guess that you're "older", like me. I don't think Joel Spolsky has a high profile at all with forum active programmers, I mean, when did he drop out of public writing, it was many years ago.
At least to me, most of the criticism here is generally of the nature "you're wrong"....not subtle, considering the variety of things involved, just that programmers are, without exception, incredibly productive, and all work should be able to be performed asynchronously (or you're doing it wrong).
I just don't find the comments in this thread very reasonable, it seems like a bunch of young and very smart/competent kids assuming everyone is as smart and competent as them.
Do you get a sense of humility from very many of the comments here?
I also spent three years recently working for a company with < 10 employee's and no office, we all worked online from around the world. I don't think we followed any of the listed requirements. No video chat, no headsets(just text communication, same as how we developed open source software). Team members took care of their children whenever necessary and we did not have specific start/end times to our day. Some days i would take off for a 3 hour "lunch" (really an energizing ride through the mountains) and no-one ever asked about it. I believe they never asked because I was judged by my deliverables, little else mattered. We also didn't have any specific "work hours". Having team members from both coasts of America, Brazil, Bulgaria, Zimbabwe and the Philippines meant time of day meant rather little. Not having a specific start/end of my day often meant i worked much more than a 40 hour week, but it was a labor of love anyways.
Is he wrong? Hard to say, many different things work for different people. Is it right for me? Certainly not. Do the other people in this thread saying he's wrong believe they work better in alternate conditions to the ones proposed? Probably.
I would say one of the tools required to be productive as a programmer is a focused work space. You can give that tool to people who come to the office. But if someone works from home, that's the one tool they have to provide themselves.
Yes. Seriously: http://www.dorsethouse.com/books/pw.html
> How about this: hire smart people you trust, give them whatever tools and support they need to do their jobs most productively, then get out of the way.
Good idea: http://www.dorsethouse.com/books/pw.html
Secondly I was pointing out that the same book also tells managers to recruit bright people, give them goals, enable their work, and then go away.
I suspect Peopleware is the most widely not-actually-read book in this industry.
"Can I work remotely?"
"Will you have a room to work in?"
"But does it have a door?"
"Well, no, it's a desk in the living room, but I'll be home alone all day."
"Sorry, no door, no remote work."
Consider, Fog Creek has spent substantial funds making sure that their on-site devs have offices with doors that close. Is it unreasonable, then, to expect a remote worker to have a distraction-free work environment?
> I bet the managers or whatever they fancy themselves to be at Fog Creek have very little appreciation for all of the small yet tangible things that employees go out of their way to do for them.
I simply can't imagine any reasonable person who is familiar with Joel writing such a thing.
Yes. People sometimes spend too much time parsing tone of written text (hmm, I wonder why the OP talks about using video for face-to-face communication?).
I can't tell you how many times I've told people working for me to stop spending time parsing the tone of an email from a coworker or client and just pick up the phone and call them. Most of the time, any concerns with a poorly worded (or angry-sounding) e-mail are cleared up with a 2 minute conversation.
There are quite a few negative comments in this thread that I just can't understand.
Fog Creek are transparent on who earns what. For those who have complained in this thread, I'd love to know how much more you are earning, and can I have a job there too!
But the one thing which just seemed weird to read was that it gives the impression of everyone being constantly chatting and doing video calls at a moment's notice, which seems to run counter to the "give every developer their own office" and create a distraction-free environment for programmers. I think I would feel constantly interrupted working in that environment, which seems counter to Fogcreek's whole persona as a place that's "developer-oriented".
While companies come up with all sorts of reasons to deny work-from-home during the day, they some how assume all those reasons(which they them self give) will magically vanish while employees reach home in the evening and now employees should be able to work late nights from home.
How does this work out? During the day you don't want employees to work from home, telling them they won't be productive and after office hours you expect them to be most productive while working from home?
I'm the sole back-end Rails developer at my company and I like it that way. At my last job there was one other guy I could have been working with, but it was much faster just doing everything myself. (we weren't just coders) When I freelanced, I ended up having to run a front-end guy off a project because his work wasn't good enough and it was holding everything up. Once I redid his work the rest of the job went swimmingly.
I'm the kind of dev you can hand a vague idea to and leave me for three weeks and I'll come back with a finished project that's exactly what you were looking for and more. It just seems like that's the right way to make stuff, and I don't think I could work any other way anymore. I couldn't work at Fog Creek because I can just tell I wouldn't be half as productive there.
You can't take your child to a non-remote job, you can't have your friends or parents dropping by, and and can't isolate yourself from others. It is strange that working remotely would allow for those things. Not really. Less so when the work is programming. Which requires a good amount of concentration and quietness.
yet, as others have said, there's a bad vibe to this article. i do these things because they make sense for me. maybe they make sense for many others too. but what i expect from an employer is the trust that i will know what works for myself.
working from home depends completely on trust. if you need rules like these it sounds like you're either making bad hires, or you have control issues.
couldn't you replace them with: "you can work remotely, but it's your responsibility to make it work"? and if you really must, add "here are some things you should probably consider: good bandwidth; remote desktop access; time zones; ..."
Isolated office space, all those things are nice to have, but without having everything available via TCP/IP, it's a nonstarter.
I've worked from many an airport that essentially fits none of these criteria without too many problems aside from reliable power supply - the nice thing about working remotely is that you can tune your environment to your own tastes.
However, the tone of this post honestly sounds a little frustrated with remote work rather than supportive of it, and I think that is what is leading to the comments here. After reading this, my impression is the author doesn't trust remote developers (despite a claim to the contrary) and that he generally looks down on remote developers. I would worry that remote developers are not seen as first-class citizens of the developer ecosystem at the company.
In short, even though I agree with these rules for the most part, remote development is something that needs to either be rejected or embraced, not regulated. There's not much middle-ground, because that's going to lead to micro-management.
To be fair,I have never run a company of any appreciable size, so I really can't argue with the way Fog Creek chooses to run things (they know what works best for them) ... but it just left me a little dismayed because either all the aspirational ideas I have about work will eventually be dashed when I do get to a position to run a company of my own, and I'll have to write things like "The burden is on you to show that you’re being productive" in the company handbook or Fog Creek just stopped being a company I looked up to in terms of company culture, neither of which is good.
In fact, these rules make sense, to the point if one could be hired by FC, they have no reason not to know these. If rules need to be explicitly spelled out, I am worried the issue would be far more subtle than written rules can address. (hint: cancelling WFH by Yahoo)
There are essentially two main themes here. The first is communication. When I started work, we hadn't been doing video chats, since everyone was on site. A lot of communication happened in HipChat and everything else was either at the weekly stand-up or impromptu meetings between two devs. However, once someone is offsite, all of the in-person communication is cut off. This removes context from the chat rooms, and filling in that context over chat is often more difficult than just explaining it. In our case, this was compounded by us being forced to abandon our chat software to find a new system and going through two inferior systems, which cut me off even more from the teams. If regular video calls had been policy, it would have been much easier to work out the chat situation.
The second is distraction-free work environments. Early in my remote work, I went to visit my significant other in another country for several weeks, working remotely while she was at work. Unfortunately, there was a problem getting her internet installed before I got there, so I spent the first week working from a McDonald's (it had the most reliable wifi). I know my productivity suffered for it during that week. Fortunately, we got internet working and I had a better environment to work from after that.
I left the company about 18 months ago, but from what I understand, none of these policies are due to any intentional abuse of the system, but more from experience with the difficulties of remote work in a company that is used to having everyone on site.
The place I work has similar guidelines and we communicate via Skype instead of Google Hangouts - and it works very well. There has to be _some_ interaction between team members, otherwise you're just a code-spitting robot, no? I enjoy the daily meetings as it lets me see what everyone is up to and let's me share what I've been doing as well.
I guess I like working in a team that talks.
There is an easy way to communicate clear goals and principles without sounding passive aggressive and authoritarian. This writer obviously wasn't aware of it didn't care. I can handle high expectations. But I would be miserable somewhere where poor communication was the norm.
a) Make sure your team knows where you're at.
b) Get the job done.
No approval, know anal micromanagement about how you do your job. If you can deliver whilst sitting in the garden watching the kids, kudos to you.
Not coincidentally, the same policy applies to working in the office...
What made it possible:
1. Strict work hours - I must be online at 0900 and respond on IMs and such until 1800. You can work outside of that time if feeling like it and the occasional long lunch break is not a problem as long as you have a phone with you.
2. Fast broadband.
3. Dedicated room.
>Be a little paranoid for this time about showing your work. It will help you feel good about your time, and us feel good about granting it.
The last section is just ridiculous imo. If someone is doing their job, you should know it. If they aren't doing their job, you should know that as well. Being paranoid about my job is not going to help me feel good about my time. Promise. It might make me start looking for a new place to work though.
There seems to be some confusion and questions in this thread, so let's do this:
AMA (Ask Me Anything)
What if your company gave you 2 options: 1. Work in the office. 2. Work wherever you like, but let us install software on your computer that will monitor what you are doing at all times.
Would you be offended? Would you consider the work from home option?
Bollocks. Just bollocks.
BTW are you guys using reportsfortrello.com yet? I think it would help with your "Team Awareness" rule since it allows you see all of the recent activities of other board members.
full disclosure: I created reportsfortrello.com.
But remote desktop just sucks no matter how fast your connection is.