ariejan wrote:[...]When a member leaves, a part of the knowledge you build up leaves. Also, the code is very likely to turn into a mess, because every developer has his own coding style.[...]
in my opinion whats not correct. If somebody comes and leave i dont loose the knowledge i gained from it. The thing with the code depends on the state. If it is finished, stable and fits the coding style rules of the project maintaining the code isnt s hard. But in the other cases dropping the code is mostlikely necessary. But anyway. The learned thing dont get lost
Let me tell you true story. In Eindhoven there was a computer science guy working for Philips. He was obsessed with algorithms in general and compression algorithms in particular. On a good day, this man creates in his spare time a compression algorithm so good that it can compress any file to 10% it's size. Leaving other algorithms like those used by ZIP and RAR far behind.
The guy is afraid that his idea will be stolen by a big corporation, so he keeps it all in his head and starts talking to his employer about licensing the compression algorithm. This would make him a huge load of money.
Then, as this guy is leaving his house for Philips to give them the algorithm and sign the contract that is going to make him a millionaire, he drops dead in his front yard.
No one ever found any evidence of the algorithm and no one has ever come close the compression rates he achieved. Now, some will say he never had the algorithm, but that's not the point of this story.
You're the guy having a complete overview of your project. If you drop out for some reason, the project is lost. The same is true for developers that have a lot of knowledge about a specific part of the code base, and then leave. You lose their knowledge and it'll take you time and effort to continue development.
Having developers walk in and out is not a good idea. Especially if your betting your own or someone else's money on it (through investments).