It's a balance, isn't it?
- People who work from home have more time, maybe an entire 10 hours a week for some people, measured from when you are able to start work. In high autonomy roles, you feel some ownership over your work and you are happy to share some of that 10 hours with work.
- If you are set up to work from home, you can finish off bits and pieces when you find the time. So you're also happy to share some of the other hours with work, eg if something breaks.
- With high autonomy, you can also decide to "share" some of the official work hours. What's the big deal if I have my shower after dropping off the kids? Most people wouldn't take the piss but I guess some people do. These are the ones the bosses are scared of having on their team.
- Bosses are also aware if their job is low-autonomy, low ownership. It's hard to get someone to just do whatever is needed in these roles, so the boss feels he needs to be able to oversee everyone in the office. Of course there are ways to skive off while sitting in the office too, but the budget is already planned according to that kind of loss. This new kind of loss from someone skiving off completely at home is not something he wants to embarrass him.
- There's a distinction between jobs where the output is linearly related to the input and those where it isn't. If you're stacking shelves, being there another hour gets another hour's worth of shelves stacked. If you're writing a complicated program, hanging around an extra hour might do nothing at all to shorten the time to finish it. At the same time a good hour spent coding could reduce the remaining time by 10 hours, weirdly. If you have a linear-output job, your boss wants you on your butt working constantly. If you have a fluctuating output job, he wants you to work just the productive hours.
To the point about having more choice vs having everyone in one place:
- Once you specify a few skills, it becomes quite rare to find a person with the skills who is open to being hired. How many people in London can do you your average Django stack, with a bit of SQL + React, are currently free, have seen your advert, will pass your silly test, and want to work for you rather than your competitor? Even a pretty broad spec like that does not actually give you a huge number of people. Let people work from home and you gather up several times the number.
- Having everyone in one place is more important for socializing than for working. It's actually easy to discuss technical things online. There's a bunch of tools for it, like GitHub, Slack, Zoom, and so on. It's not hard to get across a technical point. "Code doesn't work in this case, let's debug..."
- What's harder is getting a rapport with people on an emotional level. Something about being able to see the whole person's body language, being able to eat a meal with them, talk to them about non-work stuff, makes you feel more connected. But think about it, you are not doing this most of the time in the office. You might do drinks once a week, or you might have the occasional teambuilding. You might as well rent a smaller office and fly people in to do your paintballing or whatever.