I've played with the thought of how I would construct my dream company and how one could make it highly attractive to great programmers. If one could employ a few superstar programmers instead of many good ones.One thing I personally would enjoy is the freedom to work from whenever I wanted. So I could travel around different cities if I felt like it and work remotely, or I could simply sit at home when there was crunch mode. In my experience however you do want some kind of office with peers where you can discuss things and have company culture.So say you wanted to hire a bunch of top talent programmers, possibly from different countries and cities. How would one set it up to compete with campuses? Having a completely office-less company seems a bit sub-optimal, you probably want some office space where people can meet and chose to work from.I guess what one could do is have small offices in different countries  and let people work from the ones they chose. Programmer's could take off for crunch-modes when warranted but also work from location when teamwork and face to face was needed.Another model would be to instead of having offices of your own hire seats in offices where other programmers work. That way even if there's only one or two employees in your city you could still get some company if you felt lonely from working remotely.Another idea is that like one week every other month you take the whole team to the same location. Which might not be an office but could be just some interesting city or attractice resort and work together from there. People with spouses might have a problem with things like that though.You might also have a network of company apartments in different cities (for 2-3 people), both where you have offices and also in some other locations so programmers or teams or programmers could roam around and clump together as they wish. If it was legal (I'm not sure how it differs from country to country) you could even swat two flies in one go and have combined office/apartments in different cities. Hack Pad: London  Hack Pad:Berlin  etca) So I guess my questions are,  would a setup like this be viable? How could one improve the concept?b) Would you find a company which gives you this kind of freedom attractive or would you prefer one with a big office you go into every day?So basically, what would make a superstar programmer chose working with a company setup like this instead at the Google, Facebook or Microsoft campus where you get the fun and company of lots of talented individuals.
The distributed office, is it viable?
productivity;teamwork;communication
Here is what I've observed while working with distributed team (offshore and not offshore) for the past 10 years in both large enterprise projects and startups.Having a distributed has a cost. It can be huge if the team works on the same parts of a project. So this is true for large enterprise projects which requires high collaboration and communication.However it works pretty well in small startups. My current team is spread all over the world, but it works because they have a very well defined role (not recommended in a team at the same location) and the API they work on is pretty well defined. People that works on the same module are at the same geographical position.I think it's how SO do things. Many large open source projects work like that too.However always remind yourself that, in most case:it is viable, but a distributed team cost more that a colocated one in most casesDon't forget the social aspect too. I've been working for a year alone at home, and while I enjoyed that the first month, I try to avoid it now. Because of the social aspects. I also observed that when a team membere is located at a different place, he is not really part of the team in the collective unconscious.Costs are increased due to:comunication problems (more frequent than you think in that setup) in the team, with users or management (have you tried to resolve a conflict in emails or phone?)inability for your team to learn from each other effectively (great impact)inability for your team to help each other effectively (huge impact)reduced feeling of being in a (real) team reduce motivationprocrastination is more frequent when you are alone. You are not in the pace of the team. Not everybody has the self discipline to work remotely.since you don't feel part a something physically, there is a higher turnover