This is a (very belated) response to Joel Spolsky’s article about giving programmers separate offices.
I strongly beleive that communication is good, especially when you have new team members unfamiliar with the inner workings and coding style of a large and mature system. If I’m new on a team, or in a company, and ask a question of a real developer I work with, they might realise that I’m asking the wrong question (c.f. Raymond Chen’s regular advice about people asking the wrong question – for example here, here and here) – if I search Google I’ll find the answer, but I might fundamentally be going down the wrong tack. This will cause even more lost time down the line as subtle, hard-to-find bugs have been introduced.
StackOverflow is littered with people asking a specific question (‘How do I achieve blah in Javascript?’) with answers that say ‘You can do it like this, but why not just do it in CSS instead?’ or similar. It’s very easy to think yourself into a hole while programming and not notice or realise that you’re going down the wrong path (not to mix metaphors too hideously). By speaking to a real person they are much more likely than a web search to say ‘hang on, why would you want to do that?’
As a response to the Joel’s argument that a huge amount of time is wasted by a simple request I’d say if you work sensibly that shouldn’t be a huge problem; if you make notes as you go along, and ask people to wait while you tie up loose ends before asking you something then there’s no reason to lose very much time at all by leaving ‘the zone’. I don’t personally know of any developers who go into some kind of zen trance while programming, or whose eyes turn white – a short question shouldn’t ever disturb your mental stack too egregiously.
I say far better to foster an environment where everyone feels free to ask questions of others and is happy to answer others’ questions. Programmers are introverted enough as it is!
Mark
