I like the "bus factor" discussion. It's #3 in the article. In the projects I've been a lead on, the bus factor is in a sense 1: each hacker is responsible for their own module, and while others might read their code, they don't contribute (except report bugs).<p>However, the modules are set up so that there is a clean separation between them, with all interaction being through well defined API's. In fact, each hacker typically uses their own server unless/until efficiency constraints force us to do otherwise. So far it's worked well. If one person goes away, the project can continue until they come back or one of the others can learn/duplicate their module.<p>This allows us to dramatically increase prototyping speed, but may not be sustainable as project size increases.<p>I'm fairly inexperienced, so I'd like to know what you guys think about this practice, since it's something I think about a lot.