6 ms·
Yes. Agreed. Too many times we programmers view programming as if it is a transfer of bits over a wire somewhere. You shove a pizza under the door, email some
by DanielBMarkham 15y ago
Yes. Agreed.
Too many times we programmers view programming as if it is a transfer of bits over a wire somewhere. You shove a pizza under the door, email some requirements, and out pops a solution.
It doesn't work that way at all. Most of the really cool things that happen with teams can't be predicted ahead of time. You just put some really smart people together in a room, throw a tough problem at them, get out of the way, and watch the magic happen.
The magic doesn't happen when nobody has met each other and communication is limited to telephone, email, and IM. I'd rather have 5 guys who weren't so smart all working together in an awesome team than 10 guys who were rocket scientists all plugged in remotely.
Having said that, there are ways to get where everybody wants to go. Hire locally and then let folks work remotely from time to time. Hire people who have already worked closely together and have developed a great relationship. Hire in clusters, etc.
I like 37Signals, but too many times much of their blogging and communication consists of "look how awesome we are!" I am all for people self-promoting, but this schtick starts to become annoying to me after a while. It sounds a bit like pandering and easy sophistry. Things are not that simple. We would not all be awesome if we worked like 37Signals and things would not be better if we all suddenly switched to remote workers overnight.
- plinkplonk 15y ago"You just put some really smart people together in a room, throw a tough problem at them, get out of the way, and watch the magic happen. The magic doesn't happen when nobody has met each other and communication is limited to telephone, email, and IM." Someone should tell the Linux Kernel (and other Open Source dev, where a lot of terrific "as magic as it can get" sw dev happens) guys. No, I am not saying that OS dev is the same as commercial dev, or even that what you are saying is essentially wrong. I am just challenging the absolute nature of "The magic doesn't happen when nobody has met each other and communication is limited to telephone, email, and IM." Plenty of "magic" does happen every day when people who know each other only by their irc handles or email ids work together on a codebase. Whether such activity can be harnessed to help a commercial dev effort is certainly debatable (and there are many good points on either side of the issuel), but the idea of confining "magic" in software dev to only dev teams working in the same room is somewhat dubious (imho, ymmv etc). That said, time to party here in Bangalore. Happy New Year, everyone!
- DanielBMarkham 15y agoFair point. I over-generalized as well. Just note that I am all in favor of remote work. The trick is reproducing those teams that kick ass. I've seen a lot of configurations, and from what I've seen it usually doesn't work that well. The dream is awesome, and it's the future. It's the damn execution that's tough. The trick in addressing technology development is to choose the right level of generalization. At some point, you're going to be communicating in leaky abstractions no matter what you say. My overall critique of the article was that the few paragraphs the author provided wasn't deep enough and led to a false impression, not that remote work is somehow unworkable. I could easily post some HN click-bait like "SOPA is the Devil!" and watch the votes climb. What would be tough to do -- and much more useful -- is to provide some kind of analysis where both sides were presented, along with some possible solutions. The first kind of article is a waste of my Saturday morning. The second kind gets me to thinking some. I like that a lot better.
- projectileboy 15y agoBut the Linux community didn't appear overnight. It's grown very slowly over twenty years.
- paulhauggis 15y ago"Someone should tell the Linux Kernel (and other Open Source dev, where a lot of terrific "as magic as it can get" sw dev happens) guys." Open source projects generally have no deadlines. It's always a work in progress. So, team "magic" isn't really necessary.
- reinhardt 15y agoAgreed, in fact for non trivial problems almost the opposite is true in my experience. For me at least spontaneous brainstorming meetings are usually a waste of time; I'd much rather take some time alone to think over a problem and put my thoughts on paper or email than coming up with half-baked brainfarts on the spot. Similarly for understanding and evaluating what others have to say, the signal-to-noise ratio of a well thought written paper/email/presentation is more meaningful than a bunch of random ideas thrown around in a meeting. Once there is a basic plan in place, face time (or phone/IM) are fine to flesh out smaller issues, Q&A, etc.
- dhh 15y agoWhen we developed Basecamp, I had only met Jason and Ryan once. We met zero times during the development phase. I agree that face-to-face is great, but I also believe that it's vastly overrated as a necessity for "magic" to appear. Tons of remote teams crank out magic all the time.
- drumdance 15y agoFor me it's as much about not liking working at home as wanting face to face. I'm too easily distracted at home.
- christkv 15y agoI think that raises the most important point. People are different. I prefer the quiet at home because I can concentrate (I like to talk to people A LOT :) so I spend to much time talking to people at an office). Heading into a 100% remote situation myself I'm still conscious about grabbing a desk in a co-working space for at least 1-2 days a week to socialize a bit and not turn into a hermit. I do think remote teams can work very well but it has to be built with people who love to work remotely from the start. If you have a mix of people who can't work from home and need social interactions to be productive and combine it with people who want the opposite you are probably going to have problems. I think it comes down to hiring for one concept or the other.
- elviejo 15y agoThen a coworking space could provide you with the separation between home/office that some of us need.
- MartinCron 15y agoYes! If I were to be a remote worker, I would make a co-working space a requirement.
- cunac 15y agoI worked 15 months for startup company in California (I am in Toronto Canada) one week on site one week off site so 50% telecommute and that worked exceptionally well product was done and company is highly successful in own field. Sure you have to make boundaries and it helps if you have office so you can close door and isolate from rest. Nowdays I try to teach my customers that I will work at least 1-2 days from home. Most times it works but some are not equipped for remote work at all. It also takes discipline not to slack but that goes for on site worker as well or even more because they get more benefit of doubt being "seen to work"
- jebblue 15y ago>> It doesn't work that way at all. Most of the really cool things that happen with teams can't be predicted ahead of time. Teams are people, people make really cool things happen regardless where their butt is planted. If cool things aren't happening whether they are in the same room or not might be an indication that you're building the wrong product or service. If you trust them, ask them what they think about what they are supposed to be working on. >> You just put some really smart people together in a room, throw a tough problem at them, get out of the way, and watch the magic happen. For how long? Do you come back in 3 hours like Dilbert's boss wondering if the product is built yet?
- technomancy 15y ago> It doesn't work that way at all. Most of the really cool things that happen with teams can't be predicted ahead of time. You just put some really smart people together in a room, throw a tough problem at them, get out of the way, and watch the magic happen. This seems to imply that remote teams don't interact with each other as much. I've found in my experience that pair programming on a remote team is actually a lot more important than locally precisely because it enables this kind of "magic". If you've got the right (free) tools, it's easy to set up an environment where you spend all your time on voip collaborating directly with teammates over SSH and tmux. Sure you don't see the other guy's face and can't have lunch with him (which is why as dhh mentions below that periodic team summits are also important) but the claim that you can't have the same level of focused communication is silly. There will be less cross-pair communication obviously, but it's easy enough to rotate up the pairs.