Ryan Tomayko (@rtomayko) is a genius. He was employee #8 at GitHub and has been crucial (as one of the early employees) in molding the work environment at GitHub. In this post, he describes the way GitHub works — and the way he thinks your team should work. Ideally, your team will work as an open-source project: async, no managers, etc. I won’t spoil it for you — go take a look.
I like to call it “learning by lurking.” … So people [e.g. new hires] are able to learn all kinds of new things just by essentially sitting in a chat room…
Anything that you do has to be available to everyone in a way that is asynchronous. … This is really powerful. It means we can have people in Australia that are just as in tune with what’s going on in the company as people [in the main office]. So we try to build [asynchronous tooling] into every part of the GitHub process. … Everything should have a URL.
Be lock free. Don’t require people to synchronize on a single resource in order for people to get work done. Try to automate things to make sure that people can act independently or with as little friction as possible.
Speaking on company hiring:
A lot of companies are using open source to find people that they like [and want to hire], but they’re really not offering them this kind of work environment where they excel. [i.e. in open source workflow]