5 ms·
If you are a developer who has to check in code, then you need a quiet place for focused work. You can try to argue that some developers don't need that, but th
by rsj_hn 9y ago
If you are a developer who has to check in code, then you need a quiet place for focused work. You can try to argue that some developers don't need that, but those who can achieve peak concentration while context switching and talking to others are biological curiosities, if they exist at all. I haven't met anyone like that.
Now most employees working in tech companies are not developers. There is a whole "developer abstraction layer" (https://www.joelonsoftware.com/2006/04/11/the-development-abstraction-layer-2/ https://www.joelonsoftware.com/2006/04/11/the-development-ab...) but tech companies should at least have a place for all of their engineers to do quiet, focused work that is free of distraction.
I would also say that many people who are managers and do marketing also need a quiet place for focused work. So do QA people, infrastructure engineers, etc.
A larger point is that there are so many easy ways to communicate and collaborate now that to fix the physical plant to optimize for communication is just plain nuts. Why not use something that is very expensive to change, like the architecture, to meet needs that can't be met with software. Software can let you talk to someone easily, but it can't give you a quiet space. Only the architecture can do that. So I would err on the side of giving everyone an office with a door and then creating some common meeting spaces for them rather than building the office to have open offices and then adding a few multi-use closed door areas.
- stale2002 9y agoHypothetical scenario here: Lets say that you have a 5 minute question, that would save you an hour of work. In a closed/cubicle style office, you may be less willing to bug your expert co-worker. In an open office, it may be perfectly normal to turn to your left, and quickly ask you question. Sure, you are taking time out of your co-worker's day, but even so, on the net whole, asking the question is probably a net benefit time saver to the company. In closed-style offices, it is a big gesture to walk into someone's office and ask a question. I'd feel less comfortable doing that. Even sending a slack message still feels less comfortable than just turning your head and asking a quick question. Coding is a collaborative process to many people. I don't want to schedule a freaking meeting for my simple question, or walk into someone's office. I'd probably just not ask if I felt like I was bothering someone.
- Kluny 9y agoThat five minute question may well save you an hour of work, but it's just as likely - I'd say_more_ likely - to steal an hour of productivity from the person you ask. Just send them a message in slack. Don't be so obnoxious as to assume that whatever's bugging you at this moment is automatically more important than whatever your co-worker is on. I don't know why it feels weirder to slack them then it does to turn your head and ask. One demands immediate attention, the other allows them to answer when they have bandwidth for it. It seems obvious enough to me which is more polite.
- danpalmer 9y agoAgreed. I think teams need the discipline to _not_ just turn around and start talking, but to message on Slack/etc. However, once that has been done, having the person right next to you can make the process of answering the question much quicker and easier when they are ready.
- m1dnigh7 9y agoBut there is the whole glass castle principle you forgot to me too. That 5 minute break does not take 0 minutes to recover from in some cases. You need to rebuild your glass castle in your head over and over again. So in reality it might take just as much time to go back to full productivity.
- EliRivers 9y agoReducing interruptions from people is a feature; not a bug. Maybe you would only do it when it would save you an hour; more commonly, people have a much lower "interrupt someone trying to work" threshold.
- rsj_hn 9y agoInterrupting other people to ask your question doesn't mean that you are engaging in collaborative coding. Collaborative coding in the sense you describe, doesn't really exist. What does exist is multiple people working on the same project, with their code communicating via interfaces, etc. Each person needs quiet focused time to do that. The other issue you raised is that sure, your productivity may go up if you interrupt someone and get a question. It's clear that we don't want to optimize for that, because the interruption may cause someone else a loss of 30 minutes before they get back into the zone. It's not just 5 minutes. And 20 minutes into that recovery of concentration, someone else will interrupt them and ask another question. And they will also interrupt you. That creates a very frustrating experience. So it's better to ask your question asynchronously. You will get your answer when the person takes a break and relaxes their concentration. Both of you will be able to exercise control over when you can concentrate on getting your work done. Having that sense of control and ability to concentrate is critical to being productive.
- Joeri 9y agothose who can achieve peak concentration while context switching and talking to others are biological curiosities, if they exist at all You've just described everyone who has ever programmed against the clock in a hollywood movie.
- aembleton 9y agoHow would pair programming work? Wouldn't that contribute to a noisy environment as the two developers talk to each other? I don't like large open plan offices, but I think a small room just for my team (6 devs) would be helpful.
- deleted 9y ago[deleted]
- madeofpalk 9y ago> If you are a developer who has to check in code, then you need a quiet place for focused work Don't talk on behalf of me. Maybe because I'm relatively younger and I've mainly worked in open-plan offices, but I have zero problems with them. I'm not so easily distracted that simply having someone else's presence is enough to throw me off. When I need to buckle down and get some 'serious developing' going on, I just put on some headphones and listen to The Social Network soundtrack. I am more productive by having my colleges around me so I can easily pair-program or pair-design. The point still remains: everyone is different and what works for one person won't work for everyone (I for one could never work remotely for any serious period of time). Again, we need to make sure we're building office spaces that can adopt to these different people and the ways they work.
- ChrisLTD 9y ago> When I need to buckle down and get some 'serious developing' going on, I just put on some headphones More proof that a noisy "collaborative" environment is not conducive to work that requires deep concentration.
- loco5niner 9y ago>When I need to buckle down and get some 'serious developing' going on, I just put on some headphones by "serious developing", I'm guessing you mean "actually programming".
- poopoopoopoo 9y agoThere are at least two gears: 1. Code you have worked on before and can extend and maintain in your sleep. 2. Deep spaghetti WTF code that someone else wrote 5 years ago, makes no sense, the code IS the documentation, and you need to extend. #2 might require some silence.